如何为R数据帧中的两个类别变量创建离散变量和表?

如果我们要为两个类别变量创建一个离散变量和表,则可以使用xtabs函数。输出将是看起来像矩阵的列联表或交叉表。例如,如果我们有一个带有两个分类列x和y以及一个计数列freq的数据帧df,则可以使用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

以上是 如何为R数据帧中的两个类别变量创建离散变量和表? 的全部内容, 来源链接: utcz.com/z/330818.html

回到顶部