gpt4 book ai didi

r - group_by 总计汇总值

转载 作者:行者123 更新时间:2023-12-05 03:09:05 27 4
gpt4 key购买 nike

我有数据和图表,就像我在下面给出的示例一样。

我想要第三个“条件”,即给定年份和月份的条件 A 和条件 B 的总金额。我不知道该怎么做,因为 Condition 包含在 group_by 语句中。特别是,我希望能够将它绘制在与下面显示的相同的图上(因此每年都会有第三行显示总计)。

library(ggplot2)
library(dplyr)
data <- data.frame(Amount = sample(1:100, replace=T),
Condition = sample(c("A","B"), 100, replace=T),
Year = sample(2015:2017, 100, replace=T),
Month = sample(1:12, 100, replace=T))
dataGrouped <- data %>%
group_by(Year, Month, Condition) %>%
summarize(sumAmount = sum(Amount))
ggplot(dataGrouped, aes(x=Month, y=sumAmount, color=factor(Year), linetype=Condition)) +
geom_line(size=1) + scale_x_continuous(breaks = 1:12)

enter image description here

我考虑过先做一个 group_by(Year, Month),然后添加一个 Total,但仍然不确定哪种方法最好(或者是否有更好的选择)。

最佳答案

这里有一个dplyr解决方案,按年和月汇总总计,然后将其绑定(bind)到条件值为“总计”的分组数据,这样ggplot() 将把它作为你情节中的一条新线。

library(ggplot2)
library(dplyr)

data <- data.frame(Amount = sample(1:100, replace=T),
Condition = sample(c("A","B"), 100, replace=T),
Year = sample(2015:2017, 100, replace=T),
Month = sample(1:12, 100, replace=T))

dataGrouped <- data %>%
group_by(Year, Month, Condition) %>%
summarize(sumAmount = sum(Amount))

ggplot(dataGrouped, aes(x=Month, y=sumAmount, color=factor(Year), linetype=Condition)) +
geom_line(size=1) + scale_x_continuous(breaks = 1:12)

dataWithTotal <- data %>%
group_by( Year, Month ) %>%
summarize( sumAmount = sum(Amount) ) %>%
mutate( Condition = 'Total' ) %>%
ungroup() %>%
rbind( ungroup(dataGrouped) ) %>%
mutate( Condition = as.factor(Condition) )

ggplot(dataWithTotal, aes(x=Month, y=sumAmount, color=factor(Year), linetype=Condition)) +
geom_line(size=1) + scale_x_continuous(breaks = 1:12)

关于r - group_by 总计汇总值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43840086/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com