如何根据条件值获取随机样本。例如,我有以下数据框:
GROUP CLASS AGE
A 1 10
A 2 15
B 1 10
B 2 17
C 1 12
C 2 14
我需要为每个GROUPS获取30条记录的样本,但只有CLASS = 1才能在样本日期框架中进行编译。
我知道如何获取30条记录的样本,但我不知道如何创建一个循环通过不同的GROUPS并过滤CLASS的条件
ran.sample = sample(nrow(df_all), 30)
df = df_all[ran.sample, ]
有什么想法吗?
由于
答案 0 :(得分:1)
试试这个:
newdf <- df[df$CLASS==1,]
do.call(rbind, lapply(split(newdf, newdf$GROUP), function(x) x[sample(nrow(x), 30),]))