相对变化计算
Relative Change Calculation
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%。即实际变化 % - 产品变化 %。
最好的方法是什么
让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))
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%。即实际变化 % - 产品变化 %。 最好的方法是什么
让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))