在R中进行多次无重复抽样

12 浏览
0 Comments

在R中进行多次无重复抽样

我有一个大小为M = 2630的向量,我该如何抽取4个大小为M/4的样本。\n以下代码无法正常工作\n

M <- c(1:2630)
mysample <- split(sample(M), 1:(length(M)/4))

\n由于(length(M)/4)不是整数,所以我想将三个样本的大小设置为相等的657,第四个样本大小为659。\n非常感谢您的帮助。

0
0 Comments

在R中,有时需要从一个数据集中进行多次随机抽样,但是不能重复抽样。下面是一个例子,说明了这个问题的出现原因和解决方法。

问题出现的原因是,我们需要从数据集M中进行多次随机抽样,但是每次抽样不能重复选择相同的样本。这意味着我们需要一个方法来生成一个不重复的随机索引向量。

解决方法有两种。第一种方法是使用一个单独的索引向量idx。我们可以首先计算数据集M的长度n,并设置一个随机种子。然后,我们使用sample函数生成一个重复的索引向量,使得每个元素重复出现的次数不超过n/4(向上取整)。最后,我们根据idx的值将数据集M分成四个不同的子集M1、M2、M3和M4。

第二种方法是使用split函数。我们可以直接使用split函数将数据集M按照idx的值进行分组。这将生成一个列表,其中每个元素是一个子集,对应于相同的idx值。

需要注意的是,为了使结果可重现,我们使用set.seed函数设置了一个随机种子。我们还可以使用table函数来检查idx的值,确保每个值都有相同的重复次数。

我们可以通过使用单独的索引向量idx或使用split函数来实现在R中进行多次不重复的随机抽样。这些方法能够确保每次抽样都是随机且不重复的。

0