如何根据分组列的值的频率从 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
执行上述脚本后,将生成以下输出(由于随机化,此输出可能会因您的系统而异):
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 Rank <chr> <int> 1 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
广告