如何在R中格式化我的数据,以便显示一个新列,其值为每个相关期间列总数的百分比?

时间:2017-07-12 15:05:40

标签: r dataframe percentage

我是R的新手,我有以下csv格式的数据框(称为mydata1):

Period     Market     Amount
FY 15-16    UK        500
FY 15-16    France    200
FY 15-16    Germany   300
FY 15-16    Poland    100
FY 16-17    UK        700
FY 16-17    France    500
FY 16-17    Germany   200
FY 16-17    Poland    100

我需要该数据框向我显示一个新列,其中每个市场的权重(以百分比表示)超过其相关期间的总金额。

我在下面显示使用相同数据制作的Excel数据透视表(以便更好地帮助理解我要查找的内容):

Screenshot 1

我希望R中的新数据框(让我们称之为mydata2)如下所示:

Screenshot 2

我如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

试试这个:

library(dplyr)
df <- df %>%
  group_by(Period) %>%
  mutate(pct_year = Amount/sum(Amount)*100) %>%
  ungroup()