關鍵字:
- 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