【发布时间】:2019-05-28 00:47:32
【问题描述】:
我想计算百分比份额并使用 mutate 创建新列。我有以下数据:
country, metric, segment, value1990, value2000, value2010
canada, abc, rural, 10, 15, 16
canada, abc, urban, 12, 12, 18
canada, abc, total, 22, 27, 34
canada, xyz, rural, 6, 9, 10
canada, xyc, urban, 7, 8, 8
canada, xyc, total, 13, 17, 18
canada, population, rural, 80, 86, 95
canada, population, urban, 102, 110, 121
canada, population, total, 182, 196, 216
数据框包含来自多个国家和多年的数据。我想创建一个具有以下值的新列
country, metric, segment, value, percent1990, percent2000, percent2010
canada, abc, rural, 10, 15, 16, 12.5%, 17.4%, 16.8%
canada, abc, urban, 12, 12, 18, 11.7%, 10.9%, 14.8%
canada, abc, total, 22, 27, 34, 12.1%, 13.7%, 15.7%
canada, xyz, rural, 6, 9, 10, 7.5%, 10.4%, 10.5%
canada, xyc, urban, 7, 8, 8, 6.8%, 7.2%, 6.6%
canada, xyc, total, 13, 17, 18, 7.22%, 8.6%, 8.3%
canada, population, rural, 80, 86, 95, 100%, 100%, 100%
canada, population, urban, 102, 110, 121, 100%, 100%, 100%
canada, population, total, 182, 196, 216, 100%, 100%, 100%
基本上,我想计算价值变量在人口中所占的百分比,具体取决于它是农村/城市/总人口,跨越多年。
例如
(第 1 行)percent_share = (10/80)*100 = 12.5%
(第 2 行)percent_share = (10/102)*100 = 11.76%
(第 3 行)percent_share = (10/182)*100 = 12.09%
我无法超越 group_by 链接来确定如何输入必要的函数
df = df %>%
group_by (country, metric) %>%
mutate(...)
【问题讨论】:
标签: r dplyr percentage