我有一个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中计算?
答案 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
。