【发布时间】:2018-03-09 17:20:21
【问题描述】:
我正在使用 For 循环根据某些规范创建 100 个数据集。我的最终目标是拥有一个包含每个迭代数据集的数据集(即数据集 1 到 100)。
我目前的解决方案不优雅。我将每个单独的数据框(称为数据集)导出到 csv,然后将它们合并到 R 之外。对于 For 循环的每次迭代 i,我的数据框都会被覆盖。
Trackfile=1:100
for (i in Trackfile){
d.cor <- .10 # Desired correlation
Dataset <- as.data.frame(mvrnorm(20, mu = c(0,0),
Sigma = matrix(c(1,d.cor,d.cor,1), ncol = 2),
empirical = TRUE))
write.csv(Dataset, paste0("C:/",d.cor," ",i,".csv"))
}
我认为解决方案是根据迭代(i)动态命名数据框,使数据框命名为 dataset1、dataset2...dataset100,然后将它们合并。但是我一直在努力寻找一种动态命名嵌入在 For 循环中的数据帧的解决方案。我是R新手,请帮忙!
【问题讨论】:
-
“我相信解决方案是动态命名数据框”:不!请不要!初始化一个长度为 100 的空列表,将每个数据集依次放入列表中。然后可以在 R 中将它们组合成一个对象。不过,如何做到这一点取决于“合并”的含义。
-
为什么不创建一个数据框并继续从
for循环向其中添加行。或者,您可以创建数据帧的列表/数组/向量。
标签: r for-loop dataframe dynamic naming