R语言列联表

R语言列联表

主要聚焦于类别变量的频数表和列联表,以下是常用的函数和方法:

  • table():使用 N 个类别型变量(因子)创建一个 N 维列联表

  • xtab():根据一个公式和一个矩阵或数据框创建一个 N 维列联表

  • CrossTable(): 函数有很多选项,可以做许多事情:计算(行、列、单元格)的百分比;指
    定小数位数;进行卡方、Fisher和McNemar独立性检验;计算期望和(皮尔逊、标准化、调整的
    标准化)残差;将缺失值作为一种有效值;进行行和列标题的标注;生成SAS或SPSS风格的输出。

  • ftable():以一种紧凑而吸引人的方式输出多维列联表。

一维列联表

可以使用table(x)、xtab(formula = ~)、crosstable()来创建。

library(vcd)
library(gmodels)
#生成一维列联表
table(Arthritis$Improved) #方法一
xtabs(formula = ~Arthritis$Improved) #方法二
CrossTable(Arthritis$Improved) #方法三

prop.table(table(Arthritis$Improved)) #转化为比例值
xtabs(formula = ~Arthritis$Improved) #生成一维列联表

二维列联表

顾名思义,相对于一维列联表,二维列联表具有行和列两个维度,用于对两个因子变量一起分析。

library(gmodels)
library(vcd)
#生成二维列联表
table(Arthritis$Improved,Arthritis$Treatment) #方法一
xtabs(formula = ~Arthritis$Improved+Arthritis$Treatment) #方法二
gmodels::CrossTable(Arthritis$Improved,Arthritis$Treatment) #方法三

prop.table(table(Arthritis$Improved,Arthritis$Treatment)) #生成比例
margin.table(table(Arthritis$Improved,Arthritis$Treatment),1) #生成边际频数
addmargins(table(Arthritis$Improved,Arthritis$Treatment)) #添加边际和
addmargins(table(Arthritis$Improved,Arthritis$Treatment),1) #添加列边际和
addmargins(table(Arthritis$Improved,Arthritis$Treatment),2) #添加行边际和

多维列联表

table()xtabs() 都 可 以 基 于 三 个 或 更 多 的 类 别 型 变 量 生 成 多 维 列 联 表 。
margin.table()prop.table()addmargins() 函数可以自然地推广到高于二维的情况。
另外, ftable() 函数可以以一种紧凑而吸引人的方式输出多维列联表。

library(gmodels)
library(vcd)
#生成多维列联表
table(Arthritis$Improved,Arthritis$Treatment,Arthritis$Sex) #方法一
xtabs(~Arthritis$Improved+Arthritis$Treatment+Arthritis$Sex) #方法二
ftable(table(Arthritis$Improved,Arthritis$Treatment,Arthritis$Sex)) #输出更紧凑的形式

prop.table(table(Arthritis$Improved,Arthritis$Treatment,Arthritis$Sex))
margin.table(table(Arthritis$Improved,Arthritis$Treatment,Arthritis$Sex))
margin.table(table(Arthritis$Improved,Arthritis$Treatment,Arthritis$Sex),1)
margin.table(table(Arthritis$Improved,Arthritis$Treatment,Arthritis$Sex),-1)
addmargins(table(Arthritis$Improved,Arthritis$Treatment,Arthritis$Sex)) #三维都加和
addmargins(table(Arthritis$Improved,Arthritis$Treatment,Arthritis$Sex),1) #行加和

你可能感兴趣的:(R语言)