我想把我的变量放在循环中,如:
d1,d2,d3,...,d100
其中di是向量。如何将它们放在R中循环:
for (i in 1:100){
paste0("d",i)= ....
}
这不起作用!
答案 0 :(得分:1)
我们可以使用mget
返回list
中的对象,然后使用lapply
进行处理
lapply(mget(paste0("d", 1:100)), yourfunction)
paste
是矢量化的,因此我们不需要使用for
循环,但是如果我们需要在for
循环中处理对象,并且我们正在全球环境中创建对象(不推荐)
for(i in 1:100) {
assign(paste0("d", i), rnorm(5))
}
而不是分配多个对象,可以在list
中完成相同的操作,而无需创建任何对象
replicate(100, rnorm(5), simplify = FALSE)
或者
lapply(1:100, function(i) rnorm(5))
注意:rnorm
仅用于演示