如何根据分组列的值的频率从 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

更新于:2021年8月13日

740 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告