如何在R中从向量中抽取N个随机样本?

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

1
因为您正在使用“table”,所以频率只是1,因为您使用了“replace=FALSE”。 - akrun
1个回答

6

replicate会起作用。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接