【发布时间】:2020-09-23 15:00:47
【问题描述】:
寻找巧妙的方法在具有相同前缀的连续变量之间自动创建百分比变化列。我还想为每个第二个变量创建类似的变量。我们可以假设这些变量代表年份,我们希望每年和每两年之间的百分比变化。
library(tidyverse)
df <- data.frame(xx = c(1, 2, 3),
a_12 = c(10, 20, 20),
a_13 = c(30, 40, 10),
a_14 = c(23, 34, 56),
a_15 = c(25, 34, 56),
a_16 = c(23, 34, 56))
df
# xx a_12 a_13 a_14 a_15 a_16
# 1 1 10 30 23 23 23
# 2 2 20 40 34 34 34
# 3 3 20 10 56 56 56
我想要的是自动化以下操作:
df %>%
mutate(a_diff_12_13 = ((a_13 - a_12)/a_12)*100,
a_diff_13_14 = ((a_14 - a_13)/a_13)*100,
a_diff_14_15 = ((a_15 - a_14)/a_14)*100,
#ALSO EVERY SECOND YEAR
a_diff_12_14 = ((a_14 - a_12)/a_12)*100,
a_diff_14_16 = ((a_16 - a_14)/a_14)*100)
# xx a_12 a_13 a_14 a_15 a_16 a_diff_12_13 a_diff_13_14 a_diff_14_15 a_diff_12_14 a_diff_14_16
# 1 1 10 30 23 25 23 200 -23.3 8.7 130 0
# 2 2 20 40 34 34 34 100 -15.0 0.0 70 0
# 3 3 20 10 56 56 56 -50 460.0 0.0 180 0
谢谢
【问题讨论】: