在 R 中查詢基於多個分類列的互斥組組合的頻率。


為了在 R 資料框中查詢互斥組組合的頻率,我們可以使用 dplyr 包的 count 函式以及 ungroup 函式。

例如,如果我們有一個名為 df 的資料框,其中包含四個分組列,例如 Grp1、Grp2、Grp3 和 Grp4,那麼我們可以使用以下命令計算 df 中唯一的組組合:

count(df,Grp1,Grp2,Grp3,Grp4)%%ungroup()

示例 1

以下程式碼段建立了一個示例資料框:

Class1<-sample(c("First","Second","Third"),20,replace=TRUE)
Class2<-sample(c("First","Second","Third"),20,replace=TRUE)
Class3<-sample(c("First","Second","Third"),20,replace=TRUE)
Score<-sample(1:50,20)
df1<-data.frame(Class1,Class2,Class3,Score)
df1

輸出

如果將以上所有程式碼段作為一個程式執行,則會生成以下輸出:

  Class1 Class2 Class3 Score
1    Third  First Third 40
2    First  First Second 38
3    First Second Third 25
4    First Second Second 2
5    First  Third Third 12
6    First Second First 13
7   Second  Third Third 31
8    First  First First 15
9    First  Third Third 43
10  Second  First Second 28
11   First First Third 22
12   Third  Third First 50
13   First Second Second 39
14   First  First First 41
15  Second  Third Third 49
16  Second  First First 36
17   Third  Third First 20
18  Second Second Second 19
19   First  Third First 5
20  Second  First Third 47

要載入 dplyr 包並查詢上面建立的資料框中 Class1、Class2 和 Class3 組的互斥組組合的頻率,請將以下程式碼新增到以上程式碼段中:

Class1<-sample(c("First","Second","Third"),20,replace=TRUE)
Class2<-sample(c("First","Second","Third"),20,replace=TRUE)
Class3<-sample(c("First","Second","Third"),20,replace=TRUE)
Score<-sample(1:50,20)
df1<-data.frame(Class1,Class2,Class3,Score)
library(dplyr)
count(df1,Class1,Class2,Class3)%%ungroup()

輸出

如果將以上所有程式碼段作為一個程式執行,則會生成以下輸出:

   Class1 Class2 Class3 n
1   First  First First 2
2   First  First Second 1
3   First  First Third 1
4   First Second First 1
5   First Second Second 2
6   First Second Third 1
7   First  Third First 1
8   First  Third Third 2
9  Second  First First 1
10 Second  First Second 1
11 Second  First Third 1
12 Second Second Second 1
13 Second  Third Third 2
14  Third  First Third 1
15  Third  Third First 2

示例 2

以下程式碼段建立了一個示例資料框:

Grp1<-sample(1:2,20,replace=TRUE)
Grp2<-sample(1:2,20,replace=TRUE)
Grp3<-sample(1:2,20,replace=TRUE)
df2<-data.frame(Grp1,Grp2,Grp3)
df2

建立以下資料框

  Grp1 Grp2 Grp3
1  2     1   1  
2  1     1   1
3  1     2   1
4  2     1   1
5  2     2   2
6  1     2   2
7  2     1   2
8  1     1   2
9  2     2   1
10 1     2   2
11 2     2   2
12 1     1   1
13 2     1   1
14 1     1   2
15 2     2   2
16 1     1   2
17 2     2   2
18 1     2   2
19 2     1   1
20 2     2   2

要查詢上面建立的資料框中 Grp1、Grp2 和 Grp3 組的互斥組組合的頻率,請將以下程式碼新增到以上程式碼段中:

Grp1<-sample(1:2,20,replace=TRUE)
Grp2<-sample(1:2,20,replace=TRUE)
Grp3<-sample(1:2,20,replace=TRUE)
df2<-data.frame(Grp1,Grp2,Grp3)
count(df2,Grp1,Grp2,Grp3)%%ungroup()

輸出

如果將以上所有程式碼段作為一個程式執行,則會生成以下輸出:

   Grp1 Grp2 Grp3 n
1   1    1     1  2
2   1    1     2  3
3   1    2     1  1
4   1    2     2  3
5   2    1     1  4
6   2    1     2  1
7   2    2     1  1
8   2    2     2  5

更新於: 2021年11月2日

460 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.