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!

推薦閱讀: