R 使用id变量进行采样

R 使用id变量进行采样,r,sampling,R,Sampling,我知道如何使用R进行普通随机抽样: mysample <- mydata[sample(1:nrow(mydata), 100),] 现在,我想随机抽取一个样本,比如说,2个身份证号码。假设随机样本产生id 1和4,那么我的样本将如下所示: 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 var1 var2 ... 1 5.1 1.2 1 4.7 0.9 4 7.9

我知道如何使用R进行普通随机抽样:

mysample <- mydata[sample(1:nrow(mydata), 100),]
现在,我想随机抽取一个样本,比如说,2个身份证号码。假设随机样本产生id 1和4,那么我的样本将如下所示:

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 var1 var2 ...
1  5.1  1.2
1  4.7  0.9
4  7.9  1.3
换句话说,我抽取了2个身份证号码,但实际上我得到了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)
提取子集:

mydata[mydata$id %in% ids, ]
#   id var1 var2
# 3  2  3.3  1.6
# 5  4  7.9  1.3
mydata[mydata$id %in% ids, ]
#   id var1 var2
# 3  2  3.3  1.6
# 5  4  7.9  1.3