概述
分析数据时,需要通过一些工具,把数据转换成,我们能直观理解处理的数据,频数表和列联表比较容易理解;
生成频数表方法
函数 | 描述 |
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)
最后
以上就是自由水池为你收集整理的R语言与统计基础 二 频数表与列联表的全部内容,希望文章能够帮你解决R语言与统计基础 二 频数表与列联表所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复