如何在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
廣告