我知道如何使用 R 进行普通随机抽样:
mysample <- mydata[sample(1:nrow(mydata), 100),]
但是,我想通过 id 变量进行采样。让我解释一下 - 我的数据集如下所示:
id var1 var2 ...
1 5.1 1.2
1 4.7 0.9
2 3.3 1.6
3 3.4 5.7
4 7.9 1.3
现在,我想通过 id 编号随机抽取 2 个样本。假设随机样本产生 id 1 和 4,那么我的样本将如下所示:
id var1 var2 ...
1 5.1 1.2
1 4.7 0.9
4 7.9 1.3
换句话说,我正在采样 2 个 ID 号,但实际上我得到了 3 个案例。
我怎样才能在 R 中做到这一点?
最佳答案
您的数据:
mydata <- read.table(text = "id var1 var2
1 5.1 1.2
1 4.7 0.9
2 3.3 1.6
3 3.4 5.7
4 7.9 1.3", header = TRUE)
sample 二
id
值(value)观:set.seed(1)
ids <- sample(unique(mydata$id), 2) # important: the UNIQUE id numbers
# [1] 2 4
提取子集:
mydata[mydata$id %in% ids, ]
# id var1 var2
# 3 2 3.3 1.6
# 5 4 7.9 1.3
关于r - 使用 id 变量进行采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21237675/