需要將多個col轉換成一個col。
類似以下這張圖。
例如當要篩選出多個col的值>0的資料,
轉換成右方格式即能很快的處理。
這部分真的還是要自己去實作比較能感受到實際狀況。
下面為範例,melt 為左圖格式轉到右圖格式,
dcast 則是右圖格式轉為左圖格式。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
library(reshape2) | |
head(airquality) | |
## 保留 Month 跟 Day,其他col轉為 variable 與 value 兩個col,variable 為"原本沒保留"(Month跟Day之外)的col名稱,value 則是其對應值。 | |
## 簡單講是將所有其他未指定的col轉為剩下兩個col,分別為原本名稱以及其對應的值 | |
melt.df <- melt(airquality, id=c("Month", "Day")) | |
head(melt(airquality, id=c("Month", "Day"))) | |
names(melt.df) | |
##將轉換過的 melt.df 轉成原本的 airquality | |
dcast.df <- dcast(melt.df, Month + Day ~ variable, value.var="value") | |
dcast.df <- dcast.df[,c("Ozone", "Solar.R", "Wind", "Temp", "Month", "Day")] |
您的這篇文章 相當好用 且 容易理解
回覆刪除謝謝分享.....想請問這跟spread gather是否幾乎一樣
回覆刪除