如何在R資料框中為兩個分類變數建立一個離散變數的和的表?


如果我們想要為兩個分類變數建立一個離散變數的和的表,可以使用`xtabs`函式。輸出將是一個列聯表或交叉表,看起來像一個矩陣。例如,如果我們有一個數據框`df`,其中包含兩個分類列`x`和`y`以及一個計數列`freq`,那麼可以使用`xtabs(freq~x+y,data=df1)`建立`freq`的和的表。

示例

考慮以下資料框:

 線上演示

x1<-sample(c("A","B"),20,replace=TRUE)
x2<-sample(c("I","II"),20,replace=TRUE)
y1<-rpois(20,5)
df1<-data.frame(x1,x2,y1)
df1

輸出

  x1 x2 y1
1  A II 10
2  A I   5
3  B II  7
4  B I   5
5  B I   7
6  A II  1
7  B II  2
8  B II  3
9  B I   8
10 A I   5
11 A II  8
12 A II  4
13 B I   7
14 B II  4
15 B II  3
16 A I   6
17 A I   4
18 A I   5
19 A II  8
20 A II  7

交叉表的建立:

示例

xtabs(y1~x1+x2,data=df1)
x2

輸出

x1 I II
A 25 38
B 27 19

示例

 線上演示

z1<-sample(c("G1","G2","G3","G4"),20,replace=TRUE)
z2<-sample(c("S1","S2","S3"),20,replace=TRUE)
y2<-sample(1:10,20,replace=TRUE)
df2<-data.frame(z1,z2,y2)
df2

輸出

  z1 z2 y2
1  G2 S1 3
2  G2 S2 9
3  G2 S1 7
4  G2 S3 7
5  G4 S2 3
6  G3 S2 7
7  G2 S2 10
8  G3 S3 1
9  G1 S1 3
10 G4 S1 10
11 G3 S2 4
12 G3 S2 9
13 G2 S1 6
14 G1 S3 3
15 G2 S3 9
16 G1 S3 4
17 G1 S1 9
18 G3 S1 4
19 G4 S2 9
20 G1 S1 6

交叉表的建立:

示例

xtabs(y2~z1+z2,data=df2)
z2

輸出

z1 S1 S2 S3
G1 18 0  7
G2 16 19 16
G3 4 20  1
G4 10 12 0

更新於:2020年12月7日

449 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始
廣告