如何将行百分比添加到 R 中的列联表?
要将行百分比添加到R中的列联表,我们可以使用rowSums和sum函数与表值,并将它们与cbind函数结合。
例如,如果我们有一个名为TAB的表,那么我们可以使用以下命令将行百分比添加到TAB-
cbind(TAB,rowSums(TAB),rowSums(TAB)/sum(TAB))
示例1
以下代码段创建了一个示例数据框-
Grp1<-sample(LETTERS[1:5],20,replace=TRUE) Grp2<-sample(letters[1:5],20,replace=TRUE) df1<-data.frame(Grp1,Grp2) df1
创建了以下数据框
Grp1 Grp2 1 A b 2 D d 3 A c 4 A b 5 D a 6 D a 7 A b 8 B b 9 A d 10 A d 11 B d 12 B d 13 E e 14 C b 15 E b 16 E d 17 C c 18 E c 19 E e 20 E d
要根据上面创建的数据框中的Grp1和Grp2列创建列联表,请将以下代码添加到上面的代码段中-
Grp1<-sample(LETTERS[1:5],20,replace=TRUE) Grp2<-sample(letters[1:5],20,replace=TRUE) df1<-data.frame(Grp1,Grp2) C_Table1<-table(df1$Grp1,df1$Grp2) C_Table1
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
a b c d e A 0 3 1 2 0 B 0 1 0 2 0 C 0 1 1 0 0 D 2 0 0 1 0 E 0 1 1 2 2
要在上面创建的数据框中查找C_Table1的行百分比,请将以下代码添加到上面的代码段中-
Grp1<-sample(LETTERS[1:5],20,replace=TRUE) Grp2<-sample(letters[1:5],20,replace=TRUE) df1<-data.frame(Grp1,Grp2) C_Table1<-table(df1$Grp1,df1$Grp2) cbind(C_Table1,rowSums(C_Table1),rowSums(C_Table1)/sum(C_Table1))输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
a b c d e A 0 3 1 2 0 6 0.30 B 0 1 0 2 0 3 0.15 C 0 1 1 0 0 2 0.10 D 2 0 0 1 0 3 0.15 E 0 1 1 2 2 6 0.30
示例2
以下代码段创建了一个示例数据框-
f1<-sample(1:4,20,replace=TRUE) f2<-sample(c(5,10,15,20),20,replace=TRUE) df2<-data.frame(f1,f2) df2
创建了以下数据框
f1 f2 1 1 20 2 2 5 3 4 5 4 3 20 5 1 15 6 2 5 7 1 10 8 4 5 9 1 5 10 1 10 11 2 15 12 3 20 13 4 5 14 1 10 15 4 5 16 2 10 17 2 10 18 2 15 19 1 5 20 4 15
要根据上面创建的数据框中的f1和f2列创建列联表,请将以下代码添加到上面的代码段中-
f1<-sample(1:4,20,replace=TRUE) f2<-sample(c(5,10,15,20),20,replace=TRUE) df2<-data.frame(f1,f2) C_Table2<-table(df2$f1,df2$f2) C_Table2
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
5 10 15 20 1 2 3 1 1 2 2 2 2 0 3 0 0 0 2 4 4 0 1 0
要在上面创建的数据框中找到C_Table2的行百分比,请将以下代码添加到上面的代码段中-
f1<-sample(1:4,20,replace=TRUE) f2<-sample(c(5,10,15,20),20,replace=TRUE) df2<-data.frame(f1,f2) C_Table2<-table(df2$f1,df2$f2) cbind(C_Table2,rowSums(C_Table2),rowSums(C_Table2)/sum(C_Table2))输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
5 10 15 20 1 2 3 1 1 7 0.35 2 2 2 2 0 6 0.30 3 0 0 0 2 2 0.10 4 4 0 1 0 5 0.25