我有一个包含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列的数据框。

最佳答案

replicate将起作用

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

10-08 17:25