当我们有两个因子列和一个数字列时,我们可以基于因子列为数字值的总数创建一个列联表。这可以借助基本R中的xtabs函数来完成。例如,如果我们有一个名为df的数据框,其中包含两个因子列(例如f1和f2)和一个数字列(例如Y),则可以创建df的列联表通过使用命令xtabs(Y〜f1 + f1,df)。
考虑以下数据帧-
> x1<-sample(LETTERS[1:4],20,replace=TRUE) > x2<-sample(letters[1:4],20,replace=TRUE) > y1<-rpois(20,5) > df1<-data.frame(x1,x2,y1) > df1输出结果
x1 x2 y1 1 B a 5 2 B c 6 3 D b 3 4 D c 5 5 C b 8 6 D c 4 7 B c 8 8 A a 3 9 D c 6 10 D d 2 11 D c 9 12 D c 5 13 C d 8 14 C d 6 15 D d 4 16 C c 4 17 D d 5 18 A c 2 19 A c 4 20 B d 5
为df1中的数据创建列联表-
> xtabs(y1~x1+x2,df1) x2输出结果
x1 a b c d A 3 0 6 0 B 5 0 14 5 C 0 8 4 14 D 0 3 29 11
> var1<-sample(c("G1","G2","G3","G4"),20,replace=TRUE) > var2<-sample(c("C1","C2","C3","C4"),20,replace=TRUE) > Response<-rpois(20,2) > df2<-data.frame(var1,var2,Response) > df2输出结果
var1 var2 Response 1 G3 C2 1 2 G2 C4 4 3 G4 C2 3 4 G2 C3 4 5 G3 C4 1 6 G3 C3 1 7 G4 C1 1 8 G1 C4 3 9 G2 C3 1 10 G2 C1 0 11 G3 C1 1 12 G3 C4 0 13 G1 C1 2 14 G3 C1 1 15 G4 C1 3 16 G1 C2 4 17 G2 C4 2 18 G4 C4 4 19 G2 C4 1 20 G3 C3 0
为df2中的数据创建列联表-
> xtabs(Response~var1+var2,df2)输出结果
var2 var1 C1 C2 C3 C4 G1 2 4 0 3 G2 0 0 5 7 G3 2 1 1 1 G4 4 3 0 4