如何使用 dplyr R 跨多个列应用汇总
How to apply a summarise across multiple columns using dplyr R
我有一些 2019 年到 2050 年针对不同地区和充电器类型的电动汽车充电容量预测。我想按充电器类型对总面积和分组的值求和,如下所示:
df %>%
group_by(ChargerType) %>%
summarise(sum2019 = sum(df$`2019`))
但我想从 2019 年到 2050 年的所有年份都这样做。这可以单独完成,但会非常乏味,我相信有一种很好的方法可以一次完成!
供您尝试的示例数据如下所示:
Area <- c(1,1,1,2,2,2,3,3,3)
ChargerType <- c("Domestic", "Public", "Fast", "Domestic", "Public", "Fast", "Domestic", "Public", "Fast")
`2019` <- c(0.1,0,0.3,0.5,0.1,0.2,0,0,0.1)
`2020` <- c(0.2,0.2,0.4,0.6,0.2,0.2,0.1,0,0.2)
`2021` <-c(0.4,0.3,0.4,0.8,0.3,0.2,0.2,0.2,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)]
我有一些 2019 年到 2050 年针对不同地区和充电器类型的电动汽车充电容量预测。我想按充电器类型对总面积和分组的值求和,如下所示:
df %>%
group_by(ChargerType) %>%
summarise(sum2019 = sum(df$`2019`))
但我想从 2019 年到 2050 年的所有年份都这样做。这可以单独完成,但会非常乏味,我相信有一种很好的方法可以一次完成!
供您尝试的示例数据如下所示:
Area <- c(1,1,1,2,2,2,3,3,3)
ChargerType <- c("Domestic", "Public", "Fast", "Domestic", "Public", "Fast", "Domestic", "Public", "Fast")
`2019` <- c(0.1,0,0.3,0.5,0.1,0.2,0,0,0.1)
`2020` <- c(0.2,0.2,0.4,0.6,0.2,0.2,0.1,0,0.2)
`2021` <-c(0.4,0.3,0.4,0.8,0.3,0.2,0.2,0.2,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)]