循环遍历r中的向量列表

时间:2017-05-16 08:15:26

标签: r vector

我试图在列表中循环一个向量并在路上分配值: 我生成了10个这样的矢量:

for(i in 1:10){
  vecname <- paste('blub',i,sep='')
  assign(vecname,vector(mode='numeric',length = my_len))
} 

ls() = blub1, blub2 .... blub10

现在我有了另一个向量bla <- 100:109

我基本上想做的是

blub1[1] <- bla[1]
blub2[1] <- bla[2]
blub3[1] <- bla[3]
...
blub10[1] <- bla[10]

我很确定他的问题有一个更优雅的解决方案。 非常感谢帮助。

谢谢,祝你有愉快的一天!

1 个答案:

答案 0 :(得分:7)

按照“列表,而不是循环”的“R方式”,我将按照以下方式执行此操作:

my_len <- 3
blub <- replicate(10, vector(mode = "numeric", length = my_len), simplify = FALSE)
bla <- 100:109
blub <- Map(function(a, b) {
  a[1] <- b
  a
}, blub, bla)
# [[1]]
# [1] 100   0   0
# 
# [[2]]
# [1] 101   0   0
# 
# [[3]]
# [1] 102   0   0
# 
# [[4]]
# [1] 103   0   0
# 
# [[5]]
# [1] 104   0   0
# 
# [[6]]
# [1] 105   0   0
# 
# [[7]]
# [1] 106   0   0
# 
# [[8]]
# [1] 107   0   0
# 
# [[9]]
# [1] 108   0   0
# 
# [[10]]
# [1] 109   0   0