2017年10月19日 星期四

by + scale 資料物件轉換為資料框並與原始資料合併




關鍵字:

  • scale 資料標準化
  • by 依群組計算
  • rbind 列合併
  • do.call 執行R函數
  • cbind 行合併

分析:

  • by 函數:提供不同群組資料執行計算. by 的結果為 list, 使用 as.data.frame 會有錯誤, 此時改用 data.frame(do.call("rbind" , x)) 即可解決此問題. 
  • scale 函數: 將資料值進行標準化轉換, (x - u)/s, u:平均值, s:標準差.
  • rbind 函數是上/下資料的列結合.
  • cbind 函數是左右資料的行結合.


R程式解說:

  • [#1] 先將 by的結果儲存成資料物件x.
  • [#2] 使用 data.frame, do.call, rbind 將by結果合併.
  • [#3] 使用 cbind 將by 結果與原有資料物件進行行合併.
  • [#4] head 函數預設顯示前6筆資料.

R程式:

x <- by(iris[-5], iris$Species, scale) # list
tmp <- data.frame(do.call("rbind", x))
iris.scale <- cbind(iris, tmp)
head(iris.scale)
# end



沒有留言:

張貼留言