我有一张数据,看起来是这样的:
Year Iteration Production Technology
2015 1 200 Gas
2015 1 305 Gas
2016 1 150 Gas
2016 1 200 Gas
2015 2 200 Gas
“技术”栏说明了发电厂的类型。因此,对于每一年和每一次迭代,技术专栏中都可以有多个工厂。
我想把这些数据汇总起来,这样我就有了今年的一个值,所有迭代的平均值,以及该特定技术的所有发电厂的总和。
在本例中,如下所示:
Year Iteration Production Technology
2015 1.5 705 Gas
2016 1.5 350 Gas
我尝试过各种使用聚合函数的方法,但都失败了,因为它也会聚合技术栏(将总产量除以发电厂的数量)。
发布于 2019-06-19 14:56:10
一种选择是tidyverse
按“年份”、“技术”分组,获得“迭代”的mean
和“生产”的sum
library(tidyverse)
df1 %>%
group_by(Year, Technology) %>%
summarise(Iteration = mean(Iteration),
Production = sum(Production))
# A tibble: 2 x 4
# Groups: Year [2]
# Year Technology Iteration Production
# <int> <chr> <dbl> <int>
#1 2015 Gas 1.33 705
#2 2016 Gas 1 350
数据
df1 <- structure(list(Year = c(2015L, 2015L, 2016L, 2016L, 2015L), Iteration = c(1L,
1L, 1L, 1L, 2L), Production = c(200L, 305L, 150L, 200L, 200L),
Technology = c("Gas", "Gas", "Gas", "Gas", "Gas")),
class = "data.frame", row.names = c(NA,
-5L))
https://stackoverflow.com/questions/56670632
复制相似问题