🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 資料變形 在第三章常提到 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、名稱等。