我有一个包含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)))