首页 > 解决方案 > 在 r 中生成大量样本

问题描述

我有一个 50 行 4 列的数据框。我想获得许多 12 行的样本数据框可能是一百万,我不希望我的两个样本数据框相同。我使用了以下代码

    df_l <- list()
    for(i in 1:6000000) {
    set.seed(100+i)
    a <- df[sample(nrow(df),12,replace=T),]
    df_l[[i]] <- a
   rownames(df_l[[i]]) <- 1:12 
   }

但我的困惑是,这可能不是有效的方法,而且我不知道两个示例数据框是否相同。

标签: rsampling

解决方案


是的,这不是很有效。

1)您只需要设置一次种子。

2) R 是一种解释型语言,在使用基本的分支函数(例如,if、for、while ...)或变量操作(例如,a <- a+1)时非常慢。对于只需要很短时间的功能,翻译尤其需要时间。因此,您想调用一个同时执行很多操作的函数,因为当说明时,它很快,因为它可能以更快的方式实现(它们通常是编译的)。

只需将 1:6000000 与 1:12 交换并获取 6000000 的样本向量,这将使您的程序运行得更快。您只需要安排如何安排数据。

3)尝试复制


推荐阅读