相对变化计算

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))