为了重现性,我想创建10个(在工作中:50,000个)随机数据帧和设置种子。每个数据框的种子应该是不同的,它的名称也应该从df_01,df_02 ...增加到df_10。在@akrun' s answer的帮助下,我编写了一个这样的循环:
# Number of data-frames to be created
n <- 10
# setting a seed vector
x <- 42
# loop
for (i in 1:10) {
set.seed(x)
a <- rnorm(10,.9,.05)
b <- sample(8:200,10,replace=TRUE)
c <- rnorm(10,80,30)
lst <- replicate(i, data.frame(a,b,c), simplify=FALSE)
x <- x+i
}
# name data-frames
names(lst) <- paste0('df', 1:10)
现在我有了数据框架,但似乎无法让他随机生成。所有数据都相似。当我用以下代码替换第一行时,至少种子随机化工作:
print(data.frame(a,b,c))
额外的crackajack将提示dfs-names中的前导零,以便对它们进行排序。
任何帮助表示感谢,谢谢!
答案 0 :(得分:1)
您在所有列表元素中获得相同的结果,因为您使用if-else
在每次迭代中从头开始创建列表并替换先前创建的列表。如果您使用replicate
循环,则不需要for
。
为了重现性,我会在循环之前创建种子矢量,然后在每次迭代中设置种子。可以使用replicate
:
sprintf