rc列联表_R语言入门之频率表和列联表

本文介绍了如何在R语言中创建频率表和列联表,包括使用`table()`、`xtabs()`和`CrossTable()`函数。通过实例展示了如何进行独立性检验和数据可视化,特别提到了`ftable()`函数在处理高维数据表时的优势。
摘要由CSDN通过智能技术生成

在这一期我们将要学习如何针对分类变量数据创建频率表和列联表,并且在此基础之上进行独立性检验、关联度测量以及相关数据的可视化。

创建频率表和列联表

R语言提供了许多方法来创建频率表和列联表,在这里我们主要介绍三种常用的函数,它们虽有各自的特点,但大同小异,大家在学习中能细细体会出来。

1. 函数table()

#首先自己创建训练数据(这里的数据是随手编写的,不具有科学性)

#所有的数据都是分类变量(这里选择的是二分类变量)

#建立2维频率表

A

B

C

mydata

attach(mydata) #固定目标数据集

mytable

mytable # 输出表格

margin.table(mytable, 1) # 对每一行的数据求和

margin.table(mytable, 2) # 对每一列的数据求和

prop.table(mytable) # 计算每一格数据占总数的比例

prop.table(mytable, 1) # 以行为单位,计算其中每个变量的占比,每行求和为1

prop.table(mytable, 2) # 以列为单位,计算其中每个变量的占比,每列求和为1

当然table()函数也可以生成高维的数据表(3个及以上的变量),不过这时候使用ftable()函数可能会得到更好的展示效果。

# 创建3维频数表

mytable

table(A,B,C)

ftable(A,B,C)

从上述结果来看,确实是ftable()函数最后输出的效果更好。

这里需要注意一点,table()函数在生成表格的时候会默认去除NA值,如果想要保留NA,则需要添加参数exclude=NULL。如果在转换成因子时想保留NA值,则需要使用如下方法:

newfactor

2. 函数xtabs()

在xtabs()函数里你可以使用公式来进行交叉制表:

# 构建3维频数表

mytable

ftable(mytable) # 使用ftable()函数简洁输出3维表格

summary(mytable) # 独立性检验(列联表的卡方检验)

加入一个变量出现在了公式的左侧,那么它就是一个计算好的频数向量

# 例如

DF

xtabs(Freq ~ Gender + Admit, DF) #将不同类的频数相加

3. 函数CrossTable()

CrossTable()是一个来自“gmodel”包的强大制表函数,它有很多功能选项,可以进行卡方检验,Fisher检验,McNemar检验,相关残差项的计算以及数据标准化等等。但是由于这些功能我们也可以通过R的基本函数来实现,所以这里就不对CrossTable()这个函数进行过多讲解,感兴趣的朋友可以使用?CrossTable()自行了解和学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值