Нахождение ежедневной доходности в R для нескольких столбцов и строк
У меня есть этот фрейм данных с именем finaldf, который выглядит примерно так: в общей сложности 70 различных цен на криптовалюту и данные за 2-3 года
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
1 ответ
Решение
Мы можем использовать mutate_at
от dplyr
указать столбцы, которые начинаются с 'P' и разделить последующие значения на текущие значения, чтобы создать столбцы 'DR'
library(dplyr)
df1 %>%
mutate_at(vars(starts_with('P')), funs(DR = (lead(.)- .)/.))