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

以上是 如何根据分组列中值的频率从 R 数据框中删除行? 的全部内容, 来源链接: utcz.com/z/341430.html

回到顶部