计算R中的百分比变化,其中NA或0作为R中的值

时间:2016-03-23 16:52:14

标签: r

我有一个dataframe由df组成,如下所示:

Name      values   percertage_change
N1        2.000                          
N1        2.075     0.0375
N1        2.150     0.0361
N1        2.225     0.0348
N1        2.300     0.0337
N2         NA         
N2         3          ?
N2         4        0.333
N2         0        1.000
N2         3          ?

计算百分比变化的公式由下式给出:

Percentage_change[i+1]=(values[i+1]-values[i])/value[i]

当我的值[i]为NA或0时,如何在R中计算?

1 个答案:

答案 0 :(得分:1)

install.packages("zoo")
library(zoo)

df <- zoo(df)
df$percentage_change <- df$values / lag(df$values, -1, na.pad = TRUE) - 1

这应该使用NA填充第一行,然后在适当的时候返回NA