我有一个由df组成的dataFrame,如下所示:
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中计算?
install.packages("zoo")
library(zoo)
df <- zoo(df)
df$percentage_change <- df$values / lag(df$values, -1, na.pad = TRUE) - 1
这应该用NA
填充第一行,然后在适当的情况下返回NA
。