溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R 語言筆記 頻數(shù)表和列聯(lián)表

發(fā)布時間:2020-07-22 08:36:33 來源:網(wǎng)絡 閱讀:14841 作者:jackwxh 欄目:開發(fā)技術


我們將著眼于類別型變量的頻數(shù)表和列聯(lián)表,以及相應的獨立性檢驗、相關性的

度量、圖形化展示結果的方法還將連帶使用vcd包和gmodels包中的函數(shù)。

數(shù)據(jù)來自vcd包中的Arthritis數(shù)據(jù)集

library(vcd)

一維列聯(lián)表

可以使用table()函數(shù)生成簡單的頻數(shù)統(tǒng)計表

> mytables<-with(Arthritis,table(Improved))

> mytables

Improved

  None   Some Marked 

    42     14     28 

可以用prop.table()將這些頻數(shù)轉化為比例值

> prop.table(mytables)

Improved

     None      Some    Marked 

0.5000000 0.1666667 0.3333333 

或使用prop.table()*100轉化為百分比:


> prop.table(mytables)*100

Improved

    None     Some   Marked 

50.00000 16.66667 33.33333 

---

二維列聯(lián)表

對于二維列聯(lián)表,table()函數(shù)的使用格式為:

其中的A是行變量,B是列變量

table(A,B)

其中的mydata是一個矩陣或數(shù)據(jù)框

xtabs(~A+B,data=mydata)



> mytable <- xtabs(~ Treatment+Improved,data=Arthritis)

> mytables

Improved

  None   Some Marked 

    42     14     28 

你可以使用margin.table()和prop.table()函數(shù)分別生成邊際頻數(shù)和比例。行和與行比

例可以這樣計算:

> margin.table(mytable,1)

Treatment

Placebo Treated 

     43      41 

> margin.table(mytable,2)

Improved

  None   Some Marked 

    42     14     28 

下標1指代table()語句中的第一個變量,行變量
下標2指代table()語句中的第二個變量,列變量

---

各單元格所占比例可用如下語句獲取

> prop.table(mytable)

         Improved

Treatment       None       Some     Marked

  Placebo 0.34523810 0.08333333 0.08333333

  Treated 0.15476190 0.08333333 0.25000000

每個單元格比例加起來為1

> prop.table(mytable,1)

         Improved

Treatment      None      Some    Marked

  Placebo 0.6744186 0.1627907 0.1627907

  Treated 0.3170732 0.1707317 0.5121951

> prop.table(mytable,2)

         Improved

Treatment      None      Some    Marked

  Placebo 0.6904762 0.5000000 0.2500000

  Treated 0.3095238 0.5000000 0.7500000

計算每個行或者列占比,1為計算列,2為計算行
---

你可以使用addmargins()函數(shù)為這些表格添加邊際和

> addmargins(prop.table(mytable,2))

         Improved

Treatment      None      Some    Marked       Sum

  Placebo 0.6904762 0.5000000 0.2500000 1.4404762

  Treated 0.3095238 0.5000000 0.7500000 1.5595238

  Sum     1.0000000 1.0000000 1.0000000 3.0000000

> addmargins(prop.table(mytable,1))

         Improved

Treatment      None      Some    Marked       Sum

  Placebo 0.6744186 0.1627907 0.1627907 1.0000000

  Treated 0.3170732 0.1707317 0.5121951 1.0000000

  Sum     0.9914918 0.3335224 0.6749858 2.0000000


計算每個行或者列和


> addmargins(mytable)

         Improved

Treatment None Some Marked Sum

  Placebo   29    7      7  43

  Treated   13    7     21  41

  Sum       42   14     28  84


> addmargins(prop.table(mytable))

         Improved

Treatment       None       Some     Marked        Sum

  Placebo 0.34523810 0.08333333 0.08333333 0.51190476

  Treated 0.15476190 0.08333333 0.25000000 0.48809524

  Sum     0.50000000 0.16666667 0.33333333 1.00000000


table()函數(shù)默認忽略缺失值(NA)。要在頻數(shù)統(tǒng)計中將NA視為一個有效的類別,請設

定參數(shù)useNA="ifany"。

-------

使用gmodels包中的CrossTable()函數(shù)是創(chuàng)建二維列聯(lián)表的第三種方法

。CrossTable()

函數(shù)仿照SAS中PROC FREQ或SPSS中CROSSTABS的形式生成二維列聯(lián)表

用CrossTable生成二維列聯(lián)表

> library(gmodels)

> CrossTable(Arthritis$Treatment,Arthritis$Improved)

   Cell Contents

|-------------------------|

|                       N |

| Chi-square contribution |

|           N / Row Total |

|           N / Col Total |

|         N / Table Total |

|-------------------------|

Total Observations in Table:  84 

                    | Arthritis$Improved 

Arthritis$Treatment |      None |      Some |    Marked | Row Total | 

--------------------|-----------|-----------|-----------|-----------|

          Placebo |        29 |         7 |         7 |        43 | 

                    |     2.616 |     0.004 |     3.752 |           | 

                    |     0.674 |     0.163 |     0.163 |     0.512 | 

                    |     0.690 |     0.500 |     0.250 |           | 

                    |     0.345 |     0.083 |     0.083 |           | 

--------------------|-----------|-----------|-----------|-----------|

          Treated |        13 |         7 |        21 |        41 | 

                    |     2.744 |     0.004 |     3.935 |           | 

                    |     0.317 |     0.171 |     0.512 |     0.488 | 

                    |     0.310 |     0.500 |     0.750 |           | 

                    |     0.155 |     0.083 |     0.250 |           | 

--------------------|-----------|-----------|-----------|-----------|

    Column Total |        42 |        14 |        28 |        84 | 

                    |     0.500 |     0.167 |     0.333 |           | 

--------------------|-----------|-----------|-----------|-----------|


CrossTable()函數(shù)有很多選項,可以做許多事情:計算(行、列、單元格)的百分比;指

定小數(shù)位數(shù);進行卡方、Fisher和McNemar獨立性檢驗;計算期望和(皮爾遜、標準化、調整的

標準化)殘差;將缺失值作為一種有效值;進行行和列標題的標注;生成SAS或SPSS風格的輸出。




向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI