# 資料變形
在第三章常提到 as 開頭的函數,例如:as.vector、as.array、as.matric、as.data.frame 等,其實就是資料變形函數的一種,以下介紹其他常用到的資料變形函數。
- stack 與 unstack 函數
- reshape 函數
~~~
> data <- iris # 使用 R 內建的資料。
> stack_data <- stack(data) # stack 函數將各行資料排成一直行,unstack 則是還原成未 stack 之前形態。
> library("longitudinalData")
> data <- artificialJointLongData # 此種資料稱作為縱向資料(Longitudinal Data),通常是單一物體重複測量值所產生的資料,記錄方式可以用長型資料(long format)或寬型資料(wide format)。
> data_long = reshape(data, direction="long", varying = list(c("v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v8", "v9", "v10"), c("w0", "w1", "w2", "w3", "w4", "w5", "w6", "w7", "w8", "w9", "w10"), c("x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10")), v.names = c("v", "w", "x"), idvar = "id") # 利用 reshape 函數將資料從 wide 轉成 long
> data_wide = reshape(data_long, direction="wide",v.names = c("v", "w", "x"), idvar = "id") # 利用 reshape 函數將資料從 long 轉成 wide
~~~
解釋以上 reshape 函數一些參數的用意。
- direction:資料要轉成哪種類型,long 或 wide。
- varying:用於 wide 轉 long 時,哪些欄位要變成一個欄位的長期觀察資料,例如 v0 ~ v1 要變成 v,w0 ~ w10 變成 w,x0 ~ x10 變成 x。
- v.names:對於 wide 轉 long 時,當作是 long 資料的欄位,對於 long 轉 wide,哪些欄位要變成多個欄位觀察值。
- idvar:非重複性觀察資料,多半是可以分辨觀察物體的變數,,例如:id、名稱等。
- Introduction
- Chapter 1 - 環境建置
- 安裝與更新 R
- 安裝 RStudio
- Rstudio 基本介紹
- 切換 R 的版本
- Console 開啓 R console
- 安裝載入 package
- Chapter 2 - 基本運算
- 資料屬性
- 常見運算
- Chapter 3 - 變數與資料
- 變數
- 向量
- 陣列
- 矩陣
- 因子
- 列表
- 資料框架
- Chapter 4 - 資料匯入與輸出
- 匯入資料
- 輸出資料
- 讀取資料庫的資料
- Chapter 5 - 流程控制
- 邏輯判斷式
- 條件執行
- 迴圈結構
- Chapter 6 - 資料整理
- 重新編碼
- 資料變形
- 資料合併與分割
- Chapter 7 - 自訂函數
- 定義函數
- 建立 .First 與 .Last 函數