如何从R中的向量中抽取N个随机样本?
How to draw N random samples from a vector in R?
我有一个包含 663 个元素的向量。我想从等于向量长度(即 663)的向量中创建随机样本。换句话说,我想从 663 个元素的所有可能顺序中随机抽样。我的目标是创建 N 个随机样本或随机选择的排列的数据框。
我尝试了以下方法:
library(combinat)
perms <- as.data.frame(permn(1:663))
由于可能的排列太多,我会收到一条错误消息。
我的下一个想法是创建一个数据框,其中包含我想要的行数 samples/permutations 和与元素一样多的变量(即 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)))
我有一个包含 663 个元素的向量。我想从等于向量长度(即 663)的向量中创建随机样本。换句话说,我想从 663 个元素的所有可能顺序中随机抽样。我的目标是创建 N 个随机样本或随机选择的排列的数据框。
我尝试了以下方法:
library(combinat)
perms <- as.data.frame(permn(1:663))
由于可能的排列太多,我会收到一条错误消息。
我的下一个想法是创建一个数据框,其中包含我想要的行数 samples/permutations 和与元素一样多的变量(即 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)))