R条件随机样本

时间:2016-11-26 13:54:41

标签: r dataframe random conditional

如何根据条件值获取随机样本。例如,我有以下数据框:

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, ]

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

试试这个:

newdf <- df[df$CLASS==1,]
do.call(rbind, lapply(split(newdf, newdf$GROUP), function(x) x[sample(nrow(x), 30),]))