【发布时间】:2017-05-10 09:46:48
【问题描述】:
为了可重复性,我想创建 10 个(工作中:50,000)随机数据帧并设置种子。每个数据帧的种子应该不同,其名称也应该从 df_01、df_02 ... 增加到 df_10。在@akrun 的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)
现在我有了我的数据框,但似乎我无法让他随机生成运行。所有数据都相似。当我用以下代码替换 lst-line 时,至少种子随机化有效:
print(data.frame(a,b,c))
一个crackajack extra 将提示dfs 名称中的前导零以便对它们进行排序。
感谢任何帮助,谢谢!
【问题讨论】:
-
你使用了
set.seed(42)。如果你删除它,它应该是随机的。或者n1 <-sample(5000, 1); set.seed(n1) -
即使使用 settiing.seed 仅一次代码也不会产生不同的帧,谢谢!