创建名称数量越来越多的随机数据帧列表

时间:2017-05-10 09:46:49

标签: r random

为了重现性,我想创建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中的前导零,以便对它们进行排序。

任何帮助表示感谢,谢谢!

1 个答案:

答案 0 :(得分:1)

您在所有列表元素中获得相同的结果,因为您使用if-else在每次迭代中从头开始创建列表并替换先前创建的列表。如果您使用replicate循环,则不需要for

为了重现性,我会在循环之前创建种子矢量,然后在每次迭代中设置种子。可以使用replicate

生成前导零
sprintf