這一節(jié)我們來復(fù)習(xí)一下shape2的用法:
reshape2包的主要功能函數(shù)是melt()和cast(),其實現(xiàn)了長數(shù)據(jù)和寬數(shù)據(jù)之間的轉(zhuǎn)換。
melt的功能
用處:將列名作為行的值,減少列的個數(shù),增加行的個數(shù)。
用法: melt(data, id.vars, measure.vars, variable.name = "variable", ..., na.rm = FALSE, value.name = "value")
其中id.vars是指定固定的列(原始的列仍然在列名上)
measure.vars是需要合并的列
variable.name是指合并后原來列名的新名字
value.name是相對應(yīng)的值的新名字
library(reshape2)
md <- melt(airquality, id=c("Month", "Day"))
head(md, 20)
## Month Day variable value
## 1 5 1 Ozone 41
## 2 5 2 Ozone 36
## 3 5 3 Ozone 12
## 4 5 4 Ozone 18
## 5 5 5 Ozone NA
## 6 5 6 Ozone 28
## 7 5 7 Ozone 23
## 8 5 8 Ozone 19
## 9 5 9 Ozone 8
## 10 5 10 Ozone NA
## 11 5 11 Ozone 7
## 12 5 12 Ozone 16
## 13 5 13 Ozone 11
## 14 5 14 Ozone 14
## 15 5 15 Ozone 18
## 16 5 16 Ozone 14
## 17 5 17 Ozone 34
## 18 5 18 Ozone 6
## 19 5 19 Ozone 30
## 20 5 20 Ozone 11
可以發(fā)現(xiàn),標(biāo)為id的變量都沒有改變寻定,而其他變量都變成一個新生變量的值,另外一列變量記錄對應(yīng)的數(shù)值結(jié)果精耐。
md <- melt(airquality, id.vars = c("Month", "Day"), value.name = "New_Value", variable.name = "Class")
head(md, 20)
## Month Day Class New_Value
## 1 5 1 Ozone 41
## 2 5 2 Ozone 36
## 3 5 3 Ozone 12
## 4 5 4 Ozone 18
## 5 5 5 Ozone NA
## 6 5 6 Ozone 28
## 7 5 7 Ozone 23
## 8 5 8 Ozone 19
## 9 5 9 Ozone 8
## 10 5 10 Ozone NA
## 11 5 11 Ozone 7
## 12 5 12 Ozone 16
## 13 5 13 Ozone 11
## 14 5 14 Ozone 14
## 15 5 15 Ozone 18
## 16 5 16 Ozone 14
## 17 5 17 Ozone 34
## 18 5 18 Ozone 6
## 19 5 19 Ozone 30
## 20 5 20 Ozone 11
上述的用法是melt函數(shù)的標(biāo)準(zhǔn)用法狼速。