2017-06-16 9 views
1
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%を計算したいと思います。すなわち実際の変化% - 製品変化%。 これを行う最良の方法は何ですか相対的な変化の計算

答えて

1

Lets 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)) 
関連する問題