R语言分类变量的统计描述
目录
一、一维列联表
二、二维列联表
三、多维列联表
上篇介绍了连续变量的统计描述的R语言相关函数,计算数值的相关统计指标。本文介绍分类变量的统计描述及如何在R语言中实现。
不同于连续变量,在统计分析中,分类变量的统计描述主要是汇总分类变量各类别例数及百分比。后续举例以R自带数据集mtcars为例。
一、一维列联表
1、table()函数
在对分类变量的统计描述中,table()函数是我们常用的一维列联表函数。
table(mtcars$cyl) 可以获取各类的频数。值得注意的是,如果想显示缺失数据,需要加上参数useNA="ifany"。
> table(mtcars$cyl)4 6 8
11 7 14> table(mtcars$am)0 1
19 13
2、prop.table()函数
prop.table(table(mtcars$cyl)) 可以获得各类占总体的频率。
> prop.table(table(mtcars$cyl))4 6 8
0.34375 0.21875 0.43750 > prop.table(table(mtcars$cyl))*100 #*100可以获得百分比4 6 8
34.375 21.875 43.750
二、二维列联表
1、table()函数
table(A,B) ,A是行变量,B是列变量;
由结果可知,am=0列,cyl=4、6、8的频数依次是3、4、12;am=1列,cyl=4、6、8频数依次是8、3、2。
> table(mtcars$cyl,mtcars$am)0 14 3 86 4 38 12 2> prop.table(table(mtcars$cyl,mtcars$am)) #各单元占总体百分比0 14 0.09375 0.250006 0.12500 0.093758 0.37500 0.06250> prop.table(table(mtcars$cyl,mtcars$am),1)#各单元占行百分比0 14 0.2727273 0.72727276 0.5714286 0.42857148 0.8571429 0.1428571
> prop.table(table(mtcars$cyl,mtcars$am),2)#各单元占列百分比0 14 0.1578947 0.61538466 0.2105263 0.23076928 0.6315789 0.1538462
2、xtabs()函数
表达式为:xtabs(~A+B,data=mydata),结果同table()函数一致。求得各单元百分比用prop.table()函数。addmargins()函数可求边际和。
> xtabs(~cyl+am,data = mtcars)am
cyl 0 14 3 86 4 38 12 2> addmargins(xtabs(~cyl+am,data = mtcars)) #addmargins()函数可以求边际和am
cyl 0 1 Sum4 3 8 116 4 3 78 12 2 14Sum 19 13 32
3、CrossTable()函数
> library(gmodels)
> CrossTable(mtcars$cyl,mtcars$am)Cell Contents
|-------------------------|
| N |
| Chi-square contribution |
| N / Row Total |
| N / Col Total |
| N / Table Total |
|-------------------------|Total Observations in Table: 32 | mtcars$am mtcars$cyl | 0 | 1 | Row Total |
-------------|-----------|-----------|-----------|4 | 3 | 8 | 11 | | 1.909 | 2.790 | | | 0.273 | 0.727 | 0.344 | | 0.158 | 0.615 | | | 0.094 | 0.250 | |
-------------|-----------|-----------|-----------|6 | 4 | 3 | 7 | | 0.006 | 0.009 | | | 0.571 | 0.429 | 0.219 | | 0.211 | 0.231 | | | 0.125 | 0.094 | |
-------------|-----------|-----------|-----------|8 | 12 | 2 | 14 | | 1.636 | 2.391 | | | 0.857 | 0.143 | 0.438 | | 0.632 | 0.154 | | | 0.375 | 0.062 | |
-------------|-----------|-----------|-----------|
Column Total | 19 | 13 | 32 | | 0.594 | 0.406 | |
-------------|-----------|-----------|-----------|
三、多维列联表
如果有三个及以上的分类变量进行交叉汇总频数,就要生成多维列联表。table()函数和xtabs()函数都可以基于三个或者更多的分类变量生成多维列联表。prop.table()、addmargins()函数都可以推广使用。
> table(mtcars$cyl,mtcars$am,mtcars$gear)
, , = 30 14 1 06 2 08 12 0, , = 40 14 2 66 2 28 0 0, , = 50 14 0 26 0 18 0 2> xtabs(~cyl+am+gear,data = mtcars)
, , gear = 3am
cyl 0 14 1 06 2 08 12 0, , gear = 4am
cyl 0 14 2 66 2 28 0 0, , gear = 5am
cyl 0 14 0 26 0 18 0 2
R语言分类变量的统计描述相关推荐
- r语言 分类变量 虚拟变量_R语言中的变量
r语言 分类变量 虚拟变量 R语言| 变数 (R Language | Variables) In the previous tutorial, we have come across the bas ...
- R语言分类变量进行回归时的编码方案
本文首发于公众号:医学和生信笔记,完美观看体验请至公众号查看本文. 文章目录 演示数据 Dummy Coding simple coding Deviation coding Orthogonal P ...
- R语言使用table函数统计dataframe数据中的离散变量(分类变量、因子变量)数据列的每一种水平的统计计数
R语言使用table函数统计dataframe数据中的离散变量(分类变量.因子变量)数据列的每一种水平的统计计数 目录
- ISLR统计学习导论之R语言应用(六):R语言实现变量选择和岭回归
ISLR统计学习导论之R语言应用(六):R语言实现变量选择和岭回归
- R语言进行变量编码(recode):把dataframe中连续变量基于条件表达式转化为多个类别的离散变量(分类变量)、使用attach函数绑定数据
R语言进行变量编码(recode):把dataframe中连续变量基于条件表达式转化为多个类别的离散变量(分类变量).使用attach函数绑定数据 目录
- R语言分类模型:逻辑回归模型LR、决策树DT、推理决策树CDT、随机森林RF、支持向量机SVM、Rattle可视化界面数据挖掘、分类模型评估指标(准确度、敏感度、特异度、PPV、NPV)
R语言分类模型:逻辑回归模型LR.决策树DT.推理决策树CDT.随机森林RF.支持向量机SVM.Rattle可视化界面数据挖掘.分类模型评估指标(准确度.敏感度.特异度.PPV.NPV) 目录
- R语言进行数据聚合统计(Aggregating transforms)计算滑动窗口统计值(Window Statistics):使用R原生方法、data.table、dplyr等方案、计算滑动分组统计
R语言进行数据聚合统计(Aggregating transforms)计算滑动窗口统计值(Window Statistics):使用R原生方法.data.table.dplyr等方案.计算滑动分组统计 ...
- R语言进行数据聚合统计(Aggregating transforms)实战:使用R原生方法、data.table、dplyr等方案、计算分组均值并添加到可视化结果中
R语言进行数据聚合统计(Aggregating transforms)实战:使用R原生方法.data.table.dplyr等方案.计算分组均值并添加到可视化结果中 目录
- R创建分类变量(categorical variable)
R创建分类变量(categorical variable) 目录 R创建分类变量(categorical variable) 创建分类变量
- r语言与多维统计_Kaukatcr:多维空间语言设计的实验
r语言与多维统计 与Project Xanadu™[1]相关的各种项目之一是ZigZag™,ZigZag™是一种组织器系统或思维导图工具,围绕着称为ZZStructures的扭曲多维空间构建. 从一开 ...
最新文章
- 在Ubuntu上编译opencv 2.4.13源码支持android平台操作步骤
- ASP.NET之间数据的传递(未完)
- 火车站购票系统c语言编程,用c语言编写火车购票系统怎么编写,在线等,急!!!...
- 如何关闭SAP Fiori的病毒扫描设
- 在Winform程序中设置管理员权限及为用户组添加写入权限
- 前端学习(2349):tabber的其他属性
- NOIP 2015 提高组 Day2
- python替换文件内容_使用python替换文件内容
- Serverless 会终结 Kubernetes 吗?
- Indigo Untyped Channel
- IPTV机顶盒和网络盒子及转换
- 学以致用——使用莱斯利矩阵模型预测蠵龟种群数量的演变(Demographics of the Loggerhead Sea Turtle using Leslie population model)
- sqluldr2的介绍
- 雷电3接口能干嘛_【分享帖】3块钱一斤的水泥能干嘛?600多万网友看完后都跪了:水泥竟然这么神…...
- 浙江大学计算机博士申请考核,考博经验 | 2020年浙江大学博士申请考核经验分享...
- 关于SSD寿命问题的探讨
- centos6.10 mysql 5.7_如何在CentOS6.10安装MySQL5.7
- SpringBoot个人总结
- 女生长高的方法有哪些?怎么可以快速长高?
- STM32 软件模拟IIC