標籤:abs 提取 函數 nbsp 多個 比較 使用 方法 選擇
可以使用table()函數建立、修改、編輯表格對象,還可以以此函數建立更複雜的列聯表。
一、製作列聯表
1.對向量建立列聯表
對於向量data=3 5 7 5 3 2 6 8 5 6 9 4 5 7 3 4,建立的列聯表形式如下
> table(data)
data
2 3 4 5 6 7 8 9
1 3 2 4 2 2 1 1
第一行為向量中出現的數字,第二行為數位頻數
如果是字元向量也是一樣的,如:
data2="mow" "mow" "mow" "mow" "mow" "unmow" "unmow" "unmow" "unmow"
> table(data2)
data2
mow unmow
5 4
2.對資料框建立列聯表
如果對資料框直接使用table()函數,得到的列聯表通常比較複雜,當資料框的資料都是數值時,情況會更複雜,甚至會分裂為多個表格。
我們可以通過選擇列,從資料框中提取想要的列,進而組成列聯表,這需要使用$符號進行選擇,並使用dnn=進行行列命名
如果要在資料框中提取想要的行,首先要將資料框轉換成矩陣,再進行提取,轉換的方法有使用as.matrix()或者使用轉置函數t()。
3.對矩陣建立列聯表
可以直接使用table()函數對矩陣,但是得到的結果和對向量使用一樣,只是每個數位頻數列表,矩陣不能使用$符號,但是可以使用[]選擇行或列。
二、建立複雜的列聯表
table()函數可以設定條件以製作不同的列聯表,但是這樣的話,結果會被分為若干個表格,如果使用ftable(),則可以避免此類情況,使用ftable()得到的結果資料類型為ftable()。
ftable()除了可以使用$符合進行選擇變數之外,還有一個通用格式為:
ftable(column~row1+row2+...,data)
~符號用來建立一個公式,左側為列變數、右側為行變數,多個行或列變數可以通過+組合。
三、在列聯表的基礎上再製表
如果面對一個已經是列聯表的對象,只是希望將其重新組合,那麼需要使用xtabs()函數,
格式為:xtabs(freq~cateories11+cateories2+...,data)
~左側為頻數,右側為分類,預設第一個變數為行分類、第二個變數為列分類
R語言進行製表