R语言与统计基础 二 频数表与列联表

分析数据时,需要通过一些工具,把数据转换成,我们能直观理解处理的数据,频数表和列联表比较容易理解;

生成频数表方法

函数描述
table使用N个类别型变量(因子)创建一个N维列联表,向量是列变量
xtabs根据公式和一个矩阵或数据框创建一个N维列联表,类似excel公式处理
prop.tables依margins 定义的边际列表将表中条目表示为分数形式
margins.table

依margins 定义的边际列表计算表中条目的和

addmagins将概述边margins (默认求和结果)放入表中
ftable创建一个紧凑的 “平铺” 式列联表
  

例子:

#把 Improved 列的取值,分组求和,sql对一列 相当于 group by Improved,
mytable <- table(Arthritis.Improved)
mytable

#转换成比例 ,将每个单元格换算成跟行列总数的占比
prop.table(mytable,1)
prop.table(mytable,2)

#xtabs 创建格式 xtabs(~A+B,data = mydata)
#获取两列的
mytable <- xtabs(~Treatment + Improved,data= Arthritis)
mytable

#提取行频数和
margin.table(mytable,1)

#提取列频数和
margin.table(mytable,2)

#求和
addmargins(prop.table(mytable))

#crossTable

library(gmodels)
CrossTable(Arthritis$Treatment,Arthritis$Improved)

#三维列联表
mytable <- xtabs(~Treatment + Sex + Improved, data = Arthritis)
mytable


#独立性检验 检验变量是否独立
#H0:治疗情况和改善情况独立,H1:治疗情况和改善情况不独立
library(vcd)
mytable <- xtabs(~Treatment + Improved,data=Arthritis)
mytable
chisq.test(mytable)
#p = 0.001463 < 0.01 拒绝原假设 

#H0:性别和改善情况独立,H1:性别和改善情况不独立
mytable <- xtabs(~Sex + Improved,data=Arthritis)
mytable
chisq.test(mytable)
#p =0.0899 > 0.01 不拒绝原假设

#Fisher精确检验,Fisher 原假设是:边界固定的列联表中的行和列是互相独立的,
#可用于大于 2*2 列联表,不能用于2*2 列联表
mytable <- xtabs(~Treatment + Improved,data=Arthritis)
mytable
fisher.test(mytable)

#cochran-Mantel-Haenszel检验 原假设是 两个名义变量在第三个变量的每一层中都是条件独立的,
#下列代码检验 治疗情况和改善情况在性别的每一水平下是否独立 此检验不存在三阶交互作用,治疗情况* 改善情况*性别

mytable <- xtabs(~Treatment + Improved+Sex,data=Arthritis)
mytable
mantelhaen.test(mytable)


#相关的度量 ,phi系统,列联系统
library(vcd)
mytable <- xtabs(~Treatment + Improved,data=Arthritis)
mytable
assocstats(mytable)


 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页