如何解决如何使用dplyr R在多个列上应用汇总
我对2019年至2050年的不同地区和充电器类型有一些电动汽车充电容量预测。我想对整个区域中的值求和并按充电器类型分组,如下所示:
df %>%
group_by(ChargerType) %>%
summarise(sum2019 = sum(df$`2019`))
但是我想在2019年到2050年的所有时间里都这样做。这可以单独完成,但非常繁琐,我敢肯定有一种很好的方法可以一次完成所有工作!
供您尝试的示例数据如下所示:
Area <- c(1,1,2,3,3)
ChargerType <- c("Domestic","Public","Fast","Domestic","Fast")
`2019` <- c(0.1,0.3,0.5,0.1,0.2,0.1)
`2020` <- c(0.2,0.4,0.6,0.2)
`2021` <-c(0.4,0.8,0.3)
df <- data.table(Area,ChargerType,`2019`,`2020`,`2021`)
这个小例子可以为您提供帮助,显然直到2021年,但您随时可以创建更多数据!
希望您能提供帮助,确保在那里的某个人会很容易!
解决方法
您可以获取长格式的数据,并为每个sum
和列名ChargerType
获取值。
library(dplyr)
df %>%
tidyr::pivot_longer(cols = -c(Area,ChargerType)) %>%
group_by(ChargerType,name) %>%
summarise(sum = sum(value))
如果您有data.table
,则可以执行以下操作:
library(data.table)
dt <- melt(df,id.vars = c("Area","ChargerType"))
dt[,.(value = sum(value)),.(ChargerType,variable)]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。