如何根据分组列中值的频率从 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(this output will vary on your system due to randomization)-
输出
Group Rank1 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
以上是 如何根据分组列中值的频率从 R 数据框中删除行? 的全部内容, 来源链接: utcz.com/z/341430.html