如何使用dplyr包在R資料框中根據另一列查詢特定字串在某列中的頻率?


當我們在R資料框中擁有兩個或多個分類列,其類別級別為字串或數字作為字串/整數時,我們可以根據另一列查詢一個列的頻率。這將幫助我們識別跨列頻率,並可以理解一個分類列基於另一個列的分佈。要使用dplyr包做到這一點,我們可以使用filter函式。

示例

 線上演示

考慮以下資料框:

Group<−sample(1:5,20,replace=TRUE)
Standard<−sample(c("I","II","III"),20,replace=TRUE)
df1<−data.frame(Group,Standard)
df1

輸出

Group Standard
1 3 III
2 5 III
3 5 I
4 3 I
5 2 II
6 4 II
7 3 III
8 2 I
9 1 II
10 4 III
11 3 II
12 4 III
13 4 III
14 4 III
15 4 III
16 4 III
17 5 III
18 3 II
19 5 III
20 1 III

查詢標準的組頻率:

library(dplyr)
df1%>%filter(Standard=="I")%>%count(Group)

輸出

Group n
1 2 1
2 3 1
3 5 1

示例

df1%>%filter(Standard=="II")%>%count(Group)

輸出

Group n
1 1 1
2 2 1
3 3 2
4 4 1

示例

df1%>%filter(Standard=="III")%>%count(Group)

輸出

Group n
1 1 1
2 3 2
3 4 6
4 5 3

讓我們來看另一個例子:

 線上演示

Class<−sample(c("First","Second","Third"),20,replace=TRUE)
Gender<−sample(c("Male","Female"),20,replace=TRUE)
df2<−data.frame(Gender,Class)
df2

輸出

Gender Class
1 Female Third
2 Female First
3 Female Second
4 Male Third
5 Male Third
6 Female Second
7 Male First
8 Female Third
9 Female Second
10 Female Second
11 Female First
12 Female Second
13 Male First
14 Female Third
15 Female Third
16 Male Third
17 Male Third
18 Male Second
19 Female Second
20 Male Second
df2%>%filter(Class=="Third")%>%count(Gender)
Gender n
1 Female 4
2 Male 4
df2%>%filter(Class=="First")%>%count(Gender)
Gender n
1 Female 2
2 Male 2
df2%>%filter(Class=="Second")%>%count(Gender)
Gender n
1 Female 6
2 Male 2

更新於:2020年11月7日

459 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.