Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为列表中的每个向量创建for循环_R_List_For Loop_Vector - Fatal编程技术网

如何为列表中的每个向量创建for循环

如何为列表中的每个向量创建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,包含四个向量,每个向量包含多个元素,向量的长度不同

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