我有这个名为finalDF的数据框
Date P1 P2 P3 P4...........P70
28-Apr-13 135.3 135.98 132.1 134.2
29-Apr-13 134.44 147.49 134 144.54
30-Apr-13 144 146.93 134.05 139
1-May-13 139 139.89 107.72 116.99
我想将一个公式应用于所有P1至P70,以进行每日返回。例如,我要根据示例数据应用的公式看起来像(134.44-135.3)/135.3,但对于所有日期,它将涵盖从P1到P70的所有数据。我正在寻找的最终输出将有点像这样
dr =每日返回
Date P1 DR1 P2 DR2.......P70 DR70
我们可以使用dplyr
中的mutate_at
指定以'P'开头的列,并将连续值与当前值分开以创建'dr''列
library(dplyr)
df1 %>%
mutate_at(vars(starts_with('P')), funs(DR = (lead(.)- .)/.))