长格式表 - 根据行位置计算

时间:2017-04-10 11:46:16

标签: r

我以长格式设置的数据集abweichung。每行对应一次计算。列Berechnung包含原始值 - " EconoMe Original"和50个修改 - " Berechnung"。我想计算一下" EconoMe原创"之间的变化(%)。和#34; Berechnung"并将输出保存在数据集的nwe列中。

问题是我有多个" Econome原创"值,每个都有50个修改。它们在长格式数据表中合并在一起。 如何编码计算?

我尝试写一个函数,但它没有用。我是R的新手,但我相信这有一个简单的解决方案。

1 个答案:

答案 0 :(得分:2)

使用dplyr,设置一个变量来记录案例编号(即每个块以'EconoMe'开头),然后按案例编号分组,并计算每个组的百分比差异...... < / p>

library(dplyr)
abweichung <- abweichung %>% mutate(Case=cumsum(Berechnung=="EconoMe original")) %>% 
            group_by(Case) %>% 
            mutate(Differenz=100*(NK/NK[Berechnung=="EconoMe original"]-1))