【问题标题】:How to draw N random samples from a vector in R?如何从 R 中的向量中抽取 N 个随机样本?
【发布时间】:2017-06-22 05:49:09
【问题描述】:

我有一个包含 663 个元素的向量。我想从等于向量长度(即 663)的向量中创建随机样本。换句话说,我想从 663 个元素的所有可能排序中随机抽取样本。我的目标是创建 N 个随机样本或随机选择的排列的数据框。

我尝试了以下方法:

library(combinat)
perms <- as.data.frame(permn(1:663))

由于有很多可能的排列,我会收到一条错误消息。

我的下一个想法是创建一个数据框,其中包含与我想要的样本/排列一样多的行以及与元素一样多的变量(即 663),并使用sapply()sample() 之类的函数。但是,我认为这种方法效率不高。

我也试过了:

samples <- replicate(100, table(sample(1:663, 663,replace = F))) 

但我只得到一个包含 100 列的数据框。

【问题讨论】:

  • 因为您使用的是table。当您使用replace=FALSE 时,频率仅为 1

标签: r random permutation sampling


【解决方案1】:

replicate 可以工作

a <- 1:663 #vector of 663 elements
perms <- as.data.frame(replicate(100, sample(a)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多