|
谢谢帮顶的兄弟哈~
这里要用reshape2包
全部命令示范都在这里了——
比如data:
# ozone wind temp
# 1 23.62 11.623 65.55
# 2 29.44 10.267 79.10
# 3 59.12 8.942 83.90
# 4 59.96 8.794 83.97
And this is long-format data:
# variable value
# 1 ozone 23.615
# 2 ozone 29.444
# 3 ozone 59.115
# 4 ozone 59.962
# 5 wind 11.623
# 6 wind 10.267
# 7 wind 8.942
# 8 wind 8.794
# 9 temp 65.548
# 10 temp 79.100
# 11 temp 83.903
# 12 temp 83.968
names(airquality) <- tolower(names(airquality))
head(airquality)
# 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
aql <- melt(airquality) # [a]ir [q]uality [l]ong format
head(aql)
# variable value
# 1 ozone 41
# 2 ozone 36
# 3 ozone 12
# 4 ozone 18
# 5 ozone NA
# 6 ozone 28
tail(aql)
# variable value
# 913 day 25
# 914 day 26
# 915 day 27
# 916 day 28
# 917 day 29
# 918 day 30
aql <- melt(airquality, id.vars = c("month", "day"))
head(aql)
# 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
aql <- melt(airquality, id.vars = c("month", "day"),
variable.name = "climate_variable",
value.name = "climate_value")
head(aql)
# month day climate_variable climate_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
aql <- melt(airquality, id.vars = c("month", "day"))
aqw <- dcast(aql, month + day ~ variable)
head(aqw)
# 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
head(airquality) # original 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
dcast(aql, month ~ variable)
# month ozone solar.r wind temp
# 1 5 31 31 31 31
# 2 6 30 30 30 30
# 3 7 31 31 31 31
# 4 8 31 31 31 31
# 5 9 30 30 30 30
dcast(aql, month ~ variable, fun.aggregate = mean,
na.rm = TRUE)
# month ozone solar.r wind temp
# 1 5 23.62 181.3 11.623 65.55
# 2 6 29.44 190.2 10.267 79.10
# 3 7 59.12 216.5 8.942 83.90
# 4 8 59.96 171.9 8.794 83.97
# 5 9 31.45 167.4 10.180 76.90
试一试吧~
|