如何根据分组列中值的频率从 R 数据框中删除行?
要根据分组列中值的频率从R数据框中删除行,我们可以按照以下步骤操作-
首先,创建一个数据框。
然后,使用dplyr包的filter和group_by函数根据分组列中值的频率删除行。
创建数据框
例子
让我们创建一个数据框,如下所示-
> Group<-sample(c("I","II","III","IV"),20,replace=TRUE) > Rank<-sample(1:10,20,replace=TRUE) > df<-data.frame(Group,Rank) > df
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
输出
Group Rank 1 IV 7 2 I 8 3 IV 2 4 I 9 5 III 9 6 IV 5 7 II 8 8 III 2 9 III 3 10 I 6 11 II 3 12 II 1 13 IV 7 14 III 4 15 III 5 16 IV 3 17 II 2 18 III 8 19 I 5 20 III 4
根据分组列中的频率从数据框中删除行
例子
加载dplyr包并根据基于Group列的值的频率从df中删除行-
> Group<-sample(c("I","II","III","IV"),20,replace=TRUE) > Rank<-sample(1:10,20,replace=TRUE) > df<-data.frame(Group,Rank) > library(dplyr) > df %>% group_by(Group) %>% filter(n()>4)
输出
# A tibble: 12 x 2 # Groups: Group [2] Group Rank1 IV 7 2 IV 2 3 III 9 4 IV 5 5 III 2 6 III 3 7 IV 7 8 III 4 9 III 5 10 IV 3 11 III 8 12 III 4