我试图从一组5655个观测中挑选3500个随机观测值。但是当我这样做时,R会抛出一个奇怪的错误,说“当'replace = FALSE'时,”不能采取大于人口的样本“
我试图取一个小于人口的样本。为什么R会抛出这个错误?
> nrow(males)
[1] 5655
> m = sample(males, 3500, replace = FALSE, prob = NULL)
Error in sample.int(length(x), size, replace, prob) :
cannot take a sample larger than the population when 'replace = FALSE'
答案 0 :(得分:33)
您需要从数字中抽样,而不是从数据框中抽样。然后使用结果获取采样行。
m <- males[sample(nrow(males), 3500, replace = FALSE, prob = NULL),]
答案 1 :(得分:1)
您还可以使用$来选择要从中采样的数据集中的特定列。 例如:m&lt; - sample(dataframename $ variable,3500)
答案 2 :(得分:1)
将替换从False更改为True
m = sample(males, 3500, replace = True, prob = NULL)