这是非常基本的,但我在网上找不到答案.我使用R并有一个类似以下的数据集(但要大得多):
set.seed(123)
id<-c(1,1,1,2,2,3,3,3,3,3,4,5,5,6,6,6)
week<-c(1,2,3,1,2,1,2,3,4,5,1,1,2,1,2,3)
value<-rnorm(16, mean=5, sd=1)
mydf<-data.frame(id, week, value)
ID指的是特定的人,所以一些人比其他人有更多的观察.我想从数据帧中抽取individuals个样本,这样对于每个被采样的个体,该个体的所有行都将包含在该样本中.如果我这么做了
mydf[sample(nrow(mydf),3),]
很明显,我只是随机得到三行,当我想得到,例如,
id week value
1 1 4.439524
1 2 4.769823
1 3 6.558708
4 1 6.224082
6 1 5.110683
6 2 4.444159
6 3 6.786913
如何对具有此约束的行进行抽样?提前谢谢您!