R实战 第十篇:列联表和频数表

 列联表是观测数据按两个或更多属性(定性变量)分类时所列出的频数分布表,它是由两个以上的变量进行交叉分类的频数分布表。交互分类的目的是将两变量分组,然后比较各组的分布状况,以寻找变量间的关系。

按两个变量交叉分类的,该列联表称为两维列联表;若按3个变量交叉分类,所得的列联表称为3维列联表,依次类推。一维列联表就是频数分布表。频数就是各个分组中属性出现的次数。

频数也称“次数”,对样本数据按某些属性进行分组,统计出各个组内含个体的个数,就是频数。

本文使用vcd包中的Arthritis数据集来演示如何创建列联表。

一,创建频数表

频数表用于探索类别型变量,常用table()和 xtabs()来创建频数表:

复制代码
table(var1, var2, ...,varN) xtabs(formula, data)
复制代码

参数注释:

  • table()函数:使用N个类别变量(因子)创建一个N维列联表,
  • xtabs()函数:根据一个公式(~var1+var2+...+varN)创建一个N维列联表。

总体来说,要进行交叉分类的变量应出现在公式的右侧,即 ~ 符号的右方,以+  作为分割符。本文重点介绍一维列联表和二维列联表,对于高维列联表,不做介绍。

函数prop.table()以列联表作为参数,以margins定义的边际把列联表中的频数表示为比例关系。

prop.table(table,margins)

参数注释:table是列联表,margins是边际列表,1是第一个分类变量,2是第二个分类变量

函数margin.table()以列联表作为参数,以margins定义的边际列表来计算频数的和。

margin.table(table,margins)

参数注释:table是列联表,margins是边际列表,1是第一个分类变量,2是第二个分类变量

1,创建一维列联表

一维列联表是根据一个分类变量列出变量各个值得频数:

复制代码
with(Arthritis,table(Improved)) xtabs(~Improved,data=Arthritis)
复制代码

Improved是分类得变量名,None、Some和Marked是变量的值,数值是各个变量值出现的次数(频数)。

复制代码
Improved   None   Some Marked      42     14     28 
复制代码

2,创建二维列联表

二维列联表是指按照两个分类变量列出的频数表:

复制代码
with(Arthritis,table(Improved,Sex)) xtabs(~Improved+Sex,data=Arthritis)
复制代码

Sex和Improved是分类的变量名,两个分类交叉分类,查看两个分类之间的关系:

复制代码
        Sex Improved Female Male   None       25   17   Some       12    2   Marked     22    6
复制代码

3,把列联表的频数转换为比例值

使用prop.table(),把列联表的频数转换为比例值

复制代码
mytable <- xtabs(~Improved+Sex,data=Arthritis) prop.table(mytable)          Sex Improved     Female       Male   None   
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信