失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > R语言分类变量的统计描述

R语言分类变量的统计描述

时间:2022-10-15 20:24:05

相关推荐

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可以获得百分比468 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)amcyl 0 14 3 86 4 38 12 2> addmargins(xtabs(~cyl+am,data = mtcars)) #addmargins()函数可以求边际和amcyl 0 1 Sum4 3 8 116 4 3 78 12 2 14Sum 19 13 32

3、CrossTable()函数

gmodels包中的CrossTable()函数也可以创建二维列联表。其函数表达式和table()函数相似。

> 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 = 3amcyl 0 14 1 06 2 08 12 0, , gear = 4amcyl 0 14 2 66 2 28 0 0, , gear = 5amcyl 0 14 0 26 0 18 0 2

如果觉得《R语言分类变量的统计描述》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。