R语言常用的数据处理的包(2)

这一节我们来复习一下shape2的用法:
reshape2包的主要功能函数是melt()和cast(),其实现了长数据和宽数据之间的转换。

melt的功能

用处:将列名作为行的值,减少列的个数,增加行的个数。
用法: melt(data, id.vars, measure.vars, variable.name = "variable", ..., na.rm = FALSE, value.name = "value")
其中id.vars是指定固定的列(原始的列仍然在列名上)
measure.vars是需要合并的列
variable.name是指合并后原来列名的新名字
value.name是相对应的值的新名字

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

可以发现,标为id的变量都没有改变,而其他变量都变成一个新生变量的值,另外一列变量记录对应的数值结果。

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函数的标准用法。

你可能感兴趣的:(R语言常用的数据处理的包(2))