如何用R数据帧的边距创建和表?
列联表中的空白行和列的总和总是有用的,因为它们用于不同类型的计算,例如比值比,概率等。如果R数据帧具有因子列,那么我们可以为此创建列联表数据帧,可以使用addmargins函数来完成。
示例
请看以下数据帧-
x1<-sample(LETTERS[1:4],20,replace=TRUE) x2<-sample(c("India","USA","China"),20,replace=TRUE) df1<-data.frame(x1,x2) df1
输出结果
x1 x2 1 B China 2 B India 3 B India 4 D India 5 B India 6 D USA 7 D USA 8 A USA 9 D USA 10 C India 11 B China 12 D China 13 D China 14 A India 15 D USA 16 A China 17 D India 18 A China 19 B China 20 A India
为x1和x2创建列联表,并在边距上加和-
示例
>CT1<-addmargins(table(df1$x1,df1$x2),c(1,2)) >CT1
输出结果
China India USA Sum A 2 2 1 5 B 3 3 0 6 C 0 1 0 1 D 2 2 4 8 Sum 7 8 5 20
让我们看另一个例子-
示例
y1<-sample(c("John","Christina","Michael","Sona"),20,replace=TRUE) y2<-sample(c("1","2","3","4"),20,replace=TRUE) df2<-data.frame(y1,y2) df2
输出结果
y1 y2 1 Sona 2 2 John 3 3 John 4 4 Sona 2 5 Christina 4 6 Michael 2 7 Michael 4 8 John 1 9 John 4 10 John 1 11 Michael 3 12 Sona 1 13 Sona 2 14 Michael 2 15 Michael 2 16 Michael 1 17 Michael 3 18 Christina 1 19 Christina 4 20 Sona 1
创建y1和y2的列联表,并在边距上加和-
示例
>CT2<-addmargins(table(df2$y1,df2$y2),c(1,2)) >CT2
输出结果
1 2 3 4 Sum Christina 1 0 0 2 3 John 2 0 1 2 5 Michael 1 3 2 1 7 Sona 2 3 0 0 5 Sum 6 6 3 5 20