R語言的xtabs函數實例講解
今天在做一個列聯表獨立性檢驗的時候,總是無法處理好要求的數據類型,偶然的機會,看到瞭xtabs()函數,感覺很適合用來做列聯表,適合將一列數據轉換成列聯表。
shifou <- c("yes","yes","no","no") xinbie <- c("nan","nv","nan","nv") freq <- c(34,38,28,50) (exer6_2 <- data.frame(shifou,xinbie,freq)) (count22 <- xtabs(freq~.,data = exer6_2))#這個點表示shifou + xinbie,這個和lm()用法差不多 assocstats(count22)
運行過程與結果如下:
> shifou <- c("yes","yes","no","no")#是否逃課 > xinbie <- c("nan","nv","nan","nv")#性別 > freq <- c(34,38,28,50) > (exer6_2 <- data.frame(shifou,xinbie,freq))#“nan”表示男,“nv”表示女,yes表示逃課,no表示不逃課 shifou xinbie freq 1 yes nan 34 2 yes nv 38 3 no nan 28 4 no nv 50 > (count22 <- xtabs(freq~.,data = exer6_2))#這個數據表示性別與性別是否有關 xinbie shifou nan nv no 28 50 yes 34 38 > assocstats(count22) X^2 df P(> X^2) Likelihood Ratio 1.9830 1 0.15908 Pearson 1.9802 1 0.15937<br>#這個p值為0.15937大於0.05,表示與性別沒有關系 Phi-Coefficient : 0.115 Contingency Coeff.: 0.114 Cramer's V : 0.115
接下來,創建一個更加難的數據集
(價格 <- rep(c("10萬以下","10~20萬","20~30萬","30萬以上"),each = 3)) (地區 <- rep(c("東部","中部","西部"),each = 1,times = 4)) (數量 <- c(20,40,40,50,60,50,30,20,20,40,20,10)) (銷售情況 <- data.frame(價格,地區,數量)) (count2 <- xtabs(數量 ~ (價格 + 地區),data = 銷售情況))
運算過程:
> (價格 <- rep(c("10萬以下","10~20萬","20~30萬","30萬以上"),each = 3)) [1] "10萬以下" "10萬以下" "10萬以下" "10~20萬" "10~20萬" "10~20萬" "20~30萬" [8] "20~30萬" "20~30萬" "30萬以上" "30萬以上" "30萬以上" > (地區 <- rep(c("東部","中部","西部"),each = 1,times = 4)) [1] "東部" "中部" "西部" "東部" "中部" "西部" "東部" "中部" "西部" "東部" "中部" [12] "西部" > (數量 <- c(20,40,40,50,60,50,30,20,20,40,20,10)) [1] 20 40 40 50 60 50 30 20 20 40 20 10 > (銷售情況 <- data.frame(價格,地區,數量)) 價格 地區 數量 1 10萬以下 東部 20 2 10萬以下 中部 40 3 10萬以下 西部 40 4 10~20萬 東部 50 5 10~20萬 中部 60 6 10~20萬 西部 50 7 20~30萬 東部 30 8 20~30萬 中部 20 9 20~30萬 西部 20 10 30萬以上 東部 40 11 30萬以上 中部 20 12 30萬以上 西部 10 > (count2 <- xtabs(數量 ~ (價格 + 地區),data = 銷售情況)) 地區 價格 東部 西部 中部 10~20萬 50 50 60 10萬以下 20 40 40 20~30萬 30 20 20 30萬以上 40 10 20
可以看出這個count2也構成瞭這個列聯表的形式,接下來,使用chisq.test()函數便可進行卡方檢驗
> chisq.test(count2) Pearson's Chi-squared test data: count2 X-squared = 29.991, df = 6, p-value = 3.946e-05
到此這篇關於R語言的xtabs函數實例講解的文章就介紹到這瞭,更多相關R語言的xtabs函數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- R語言關於卡方檢驗實例詳解
- R語言多元Logistic邏輯回歸應用實例
- python光學仿真學習wxpython創建手速測試程序
- R語言中矩陣matrix和數據框data.frame的使用詳解
- python實現貝葉斯推斷的例子