如何根據分組列的值的頻率從 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 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告