rc列联表_R语言入门之频率表和列联表
在這一期我們將要學習如何針對分類變量數據創建頻率表和列聯表,并且在此基礎之上進行獨立性檢驗、關聯度測量以及相關數據的可視化。
創建頻率表和列聯表
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()自行了解和學習。
總結
以上是生活随笔為你收集整理的rc列联表_R语言入门之频率表和列联表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hive常用函数之七字符串函数
- 下一篇: 基于FPGA的频率计设计