按年份对数据求和,并将其用作所选行的分母

时间:2018-11-08 22:17:50

标签: r math data-manipulation

我有这个data.frame:

       Country_ID    Partner_ID     Export_Value

1995   CZE           CHN            50
1996   CZE           CHN            60
1997   CZE           CHN            90
1998   CZE           CHN            100
1995   CZE           DEU            50
1996   CZE           DEU            160
1997   CZE           DEU            500
1998   CZE           DEU            400

现在这还不是全部数据。,年份为1995-2016年,Partner_ID由196个国家/地区组成。因此,我只显示了一张图片。

我想要实现的是给定年份中所有可能的Partner_ID的Export_Value之和。在上面的数据中,应该是1995 = 100,1995 = 220等。

然后,我将这些数字用作支配符,以获取Export_Value旁边的 Export_Value _%列。

      Country_ID    Partner_ID     Export_Value   Export_Value_%

1995   CZE           CHN            50            0.5 (50%)            
1996   CZE           CHN            60            0.27
1997   CZE           CHN            90            0.15
1998   CZE           CHN            100           0.2
1995   CZE           DEU            50            0.5
1996   CZE           DEU            160           0.73
1997   CZE           DEU            500           0.85
1998   CZE           DEU            400           0.8

我可能想到的另一种可能是创建一个新列,其中填充与所有合作伙伴的年度总值相加的结果。但是,它的长度不会与数据框中的其他列一样长(通过年度导出,我可以在excel中进行数学运算,并且可以得到以后的工作结果。)

1 个答案:

答案 0 :(得分:0)

查看dplyr软件包和tidyverse。

library(dplyr)
df<- df %>% 
  group_by(Year, Partner_ID) %>% 
  summarise(Totals = sum(Export_Value),
  Rate = (n()/sum(Export_Value))
)

n()是该组中的条目数。