Prod T1 T2
A 42 48
A 21 18
B 38 37
B 57 68
B 38 30
C 51 54
C 47 49
C 22 15
对于每一行,我想添加与每个产品相对应的相对变化。例如,对于第1行,产品A的变化是((48 + 18) - (42 + 21))/(42 + 21)= 4.7%,第1行的变化是(48-42)/ 42 = 14%。因此,在新专栏中,我想计算14% - 4.7%= 9.3%。即实际变化% - 产品变更%。 什么是最好的方法
答案 0 :(得分:1)
让df
成为您的data.frame。
我们按行计算更改并按产品更改,为此值创建新列。然后我们进行您需要的计算,只保留一个名为RelativeChange的新列。
df %>%
mutate(by_row = (T2 - T1) / T1) %>%
group_by(Prod) %>%
mutate(by_prod = ( sum(T2) - sum(T1) ) / sum(T1),
RelativeChange = by_row - by_prod) %>%
ungroup() %>%
select(-c(by_row, by_prod))