在R中找到多个列和行的每日回报

  • 本文关键字:每日 回报 r time-series
  • 更新时间 :
  • 英文 :


我有这个名为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(.)- .)/.))

最新更新