ggplot2

时间:2017-01-25 14:12:58

标签: r ggplot2 weekday

我想要在R中分析两年的交易数据。它具有以下结构:

date                   weekday  salesval
1 2003-10-31           Mi        425.36
2 2003-10-31           Mi       1504.50
3 2003-10-31           Mi        170.14
4 2002-03-12           Mo       -215.80
5 2002-02-08           Mi          0.00
6 2002-04-17           Do        215.80

我想通过使用ggplot2图形系统来说明每个工作日的平均销售总额。

我已经尝试使用stat_summary功能,但正如您所看到的,我的方法只计算每个工作日每笔交易的平均销售价值。但我想要每个工作日的平均总销售额。

ggplot(data, aes(weekday, salesval)) + 
    stat_summary(fun.y = function(x) { sum(x) / length(x) }, geom = "bar") +
    scale_y_continuous(labels = dollar) +
    ylab("Sales") +
    xlab("Weekday") +
    ggtitle("Average Sales per Weekday")

enter image description here

我知道我的代码有什么问题,但我不知道如何实现我的实际目标。

希望有人可以帮助我。

祝福, 马库斯

2 个答案:

答案 0 :(得分:2)

您可以提供聚合功能作为数据

ggplot(data = aggregate(df$salesval, list(df$weekday), mean), aes(Group.1, x)) +
     geom_col()

根据样本数据,这将创建此

答案 1 :(得分:0)

使用dplyr

library(dplyr)
df %>% group_by(weekday) %>% summarise(salesval=mean(salesval)) %>% 
  ggplot(aes(weekday, salesval)) + geom_bar(stat='identity')

enter image description here