【发布时间】:2017-11-01 12:41:50
【问题描述】:
我有一个数据框,其中包含 2 周的数据,这些数据表明每天有多少乘客乘坐火车。每个观察值包含 3 个值,日期、乘客人数和星期几。我想比较从前一周到本周(周一到周一,周二到周二等)每天的乘客。这是数据:
structure(list(total = structure(c(17455, 17456, 17457, 17458,
17459, 17460, 17461, 17462, 17463, 17464, 17465, 17466, 17467,
17468), class = "Date"), passengers = c(9299L, 9166L, 10234L,
10176L, 10098L, 2867L, 5416L, 9312L, 10555L, 10858L, 10169L,
9515L, 2679L, 5490L), dow = c("Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday", "Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday", "Saturday", "Sunday")), .Names =
c("total", "passengers", "dow"), class = "data.frame")
(创建报告的自动化系统使用术语“总计”来表示日期,我觉得有必要指出这一点,因为它可能会造成混淆)。
当我创建一个 ggplot 时,它只为条形图映射 1 个 y 值,而不是并排映射 2 个:
ggplot(x, aes(x=dow, y=passengers), fill=variable) +
geom_bar(stat = "identity", position = "dodge")
我已经看到 reshape 用于熔化此类实例的数据,但是当我使用星期几作为 id.vars 值熔化时,日期被转换为科学记数法(小问题)但 ggplot 找不到乘客变量(大问题)。
【问题讨论】: