在R中随机选择组(以及每组所有病例)?
我有一个R数据框,它有两个级别的数据:在R中随机选择组(以及每组所有病例)?,r,sample,R,Sample,我有一个R数据框,它有两个级别的数据:id和year。在由id定义的组中,年数增加(整个数据集每个组的年数相同,如下所示: id year var1 var2 11A 2001 ... ... 11A 2002 ... ... 11A 2003 ... ... 11A 2004 ... ... 13B 2001 ... ... 13B 2002 ... ... 13B
id
和year
。在由id
定义的组中,年数增加(整个数据集每个组的年数相同,如下所示:
id year var1 var2
11A 2001 ... ...
11A 2002 ... ...
11A 2003 ... ...
11A 2004 ... ...
13B 2001 ... ...
13B 2002 ... ...
13B 2003 ... ...
13B 2004 ... ...
22Z 2001 ... ...
我的数据中有大约20000组,当然太多了,无法绘制出好的增长曲线图。我如何随机选择大约20个id?(那么:也选择与该id对应的所有4行年份?)如果您使用
示例,然后使用索引,这是非常简单的。下面是一个虚构的示例,看起来与您所展示的类似。它实际上只有两行代码,如果您愿意,可以在一行代码中完成
dat <- data.frame(id=paste0(LETTERS[1:8], rep(1:1250, 8)),
year=as.factor(as.character(sample(c(1990:2012, 20000, T)))),
var1=rnorm(20000), var2=rnorm(20000))
#a look at the data
head(dat)
#sample 20 id's randomly
(ids <- sample(unique(dat$id), 20))
#narrow your data set
dat2 <- dat[dat$id %in% ids, ]
dat
这是假设您的数据帧被称为df
,并且您的id
是一个因素(如果不是,则使用unique
而不是levels
)
subset(df, id %in% sample(levels(df$id), 20))