我有这个
for(i in 1:10)
在其中,我有一个数据框: e.g。
df<-1:100
我希望将数据框分配给我想要创建的特定名称
类似的东西:(不是它有效)
paste("name", variable[i])<- df
编辑:
然后我将如何在另一个循环中访问这些构造的值(假设我已经使用了assign)
datalist <- paste("a",1:100,sep="")
for (i in 1:length(datalist)){
}
答案 0 :(得分:7)
我建议assign
,如下所示:
for(i in 1:100){
df <- data.frame(x = rnorm(10),y = rpois(10,10))
assign(paste('df',i,sep=''),df)
}
答案 1 :(得分:0)
您可以将循环的输出存储在列表中:
set.seed(10)
x = list()
for(i in 1:10){
x[[i]] <- data.frame(x = rnorm(100), y = rnorm(100))
}
然后x将是长度为10的列表,列表中的每个元素都是dim c(100,2)
> length(x)
[1] 10
> dim(x[[1]])
[1] 100 2
>
当然,您也可以为列表中的元素命名:
names(x) = letters[1:10]
x[["a"]]
x y
1 0.01874617 -0.76180434
2 -0.18425254 0.41937541
3 -1.37133055 -1.03994336
4 -0.59916772 0.71157397
5 0.29454513 -0.63321301
6 0.38979430 0.56317466
...