如何在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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP