如何为列表中的每个向量创建for循环
我有一个列表l,包含四个向量,每个向量包含多个元素,向量的长度不同如何为列表中的每个向量创建for循环,r,list,for-loop,vector,R,List,For Loop,Vector,我有一个列表l,包含四个向量,每个向量包含多个元素,向量的长度不同 l<- list(2:4,3:5,4:7,5:7) for ( i in length(l)){ print(l) } [[1]] [1] 2 3 4 [[2]] [1] 3 4 5 [[3]] [1] 4 5 6 7 [[4]] [1] 5 6 7 请注意:原始列表包含389个向量,每个向量包含不少于45个元素 一个更快更干净的方法是不使用循环。这里,我们将l中的每个向量.x映射到.x+
l<- list(2:4,3:5,4:7,5:7)
for ( i in length(l)){
print(l)
}
[[1]]
[1] 2 3 4
[[2]]
[1] 3 4 5
[[3]]
[1] 4 5 6 7
[[4]]
[1] 5 6 7
请注意:原始列表包含389个向量,每个向量包含不少于45个元素 一个更快更干净的方法是不使用循环。这里,我们将
l
中的每个向量.x
映射到.x+2
purrr::map(l, ~.x + 2)
# [[1]]
# [1] 4 5 6
#
# [[2]]
# [1] 5 6 7
#
# [[3]]
# [1] 6 7 8 9
#
# [[4]]
# [1] 7 8 9
如果您确实需要循环版本,只需循环通过l
的索引,并向每个向量添加2
for (i in seq_along(l)) {
l[[i]] <- l[[i]] + 2
}
print(l)
# [[1]]
# [1] 4 5 6
#
# [[2]]
# [1] 5 6 7
#
# [[3]]
# [1] 6 7 8 9
#
# [[4]]
# [1] 7 8 9
用于(沿(l)的顺序i){
l[[i]]刚好lappy(l,`+`,2)
谢谢,Sotos我只想使用for-loop。为什么呢?for-loop通常不是R中的最佳选择;在这种情况下,使用lappy
是我所知道的最佳选择,上面的示例只是为了理解for-loop的概念,主任务包含许多条件,我正在尝试一步一步地解决该任务,这就是为什么我要e选择了循环。您也可以通过*apply
一步一步地执行。
for (i in seq_along(l)) {
l[[i]] <- l[[i]] + 2
}
print(l)
# [[1]]
# [1] 4 5 6
#
# [[2]]
# [1] 5 6 7
#
# [[3]]
# [1] 6 7 8 9
#
# [[4]]
# [1] 7 8 9