我有一个273个人(组)的数据集和超过2000个测量(不平衡)。我想创建一个随机样本,替换个体,包括他们的所有测量。
有没有聪明的方法来做或者我必须创建新的数据集并逐行重复添加新数据?
编辑:
我的数据集如下所示:
id time quantil
1 124 0.245
1 178 0.324
2 304 0.124
5 102 0.178
5 752 0.724
5 822 0.687
...
我想创建一个新的数据集,其中包含273个随机替换及其测量的随机样本。因此,如果我的invidiuals样本将是2,5,2,...我的新数据集将是
id time quantil
2 304 0.124
5 102 0.178
5 752 0.724
5 822 0.687
2 304 0.124
...
答案 0 :(得分:3)
命令
samp <- sample(unique(dat$id), 273, replace = TRUE)
将抽样273个ID。这些可用于创建新数据集。 data.table
包允许有效处理:
library(data.table)
datDT <- as.data.table(dat)
setkey(datDT, "id")
# create the new data set
dat_new <- datDT[J(samp), allow.cartesian = TRUE]