R
reshape2
data
data<-airquality
head(data)
Ozone Solar.R Wind Temp Month Day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
6 28 NA 14.9 66 5 6
melt 宽数据to长数据
usage: melt(data,id.vars,measure.vars,na.rm = FALSE, value.name = "value")
data1<-melt(data,id.vars=c("Month","Day"))
head(data1)
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
dcast 长数据to宽数据
usage:
dcast(data, formula, fun.aggregate = NULL, ..., margins = NULL,
subset = NULL, fill = NULL, drop = TRUE,
value.var = guess_value(data))
head(dcast(data1,Month+Day~variable))
Month Day Ozone Solar.R Wind Temp
1 5 1 41 190 7.4 67
2 5 2 36 118 8.0 72
3 5 3 12 149 12.6 74
4 5 4 18 313 11.5 62
5 5 5 NA NA 14.3 56
6 5 6 28 NA 14.9 66
7 5 7 23 299 8.6 65
8 5 8 19 99 13.8 59
9 5 9 8 19 20.1 61
10 5 10 NA 194 8.6 69
head(dcast(data1,Month~variable+Day))
Month Ozone_1 Ozone_2 Ozone_3 Ozone_4 Ozone_5 Ozone_6 Ozone_7 Ozone_8 Ozone_9
1 5 41 36 12 18 NA 28 23 19 8
2 6 NA NA NA NA NA NA 29 NA 71
3 7 135 49 32 NA 64 40 77 97 97
4 8 39 9 16 78 35 66 122 89 110
5 9 96 78 73 91 47 32 20 23 21
Ozone_10 Ozone_11 Ozone_12 Ozone_13 Ozone_14 Ozone_15 Ozone_16 Ozone_17
1 NA 7 16 11 14 18 14 34
2 39 NA NA 23 NA NA 21 37
3 85 NA 10 27 NA 7 48 35
4 NA NA 44 28 65 NA 22 59
5 24 44 21 28 9 13 46 18