Какова была бы наилучшая практика для получения длинного формата данных о ценах акций (содержащего несколько акций) и создания нового кадра данных со сводной статистикой доходности для каждой акции? Я думаю о каком-то решении с помощью dplyr, group_by и суммирования. Мой фрейм входных данных имеет столбцы: Дата, Тикер и Цена. Мне бы хотелось, чтобы в выводе был столбец для тикера, а затем несколько столбцов для каждой возвращаемой статистики c. Я хочу, чтобы статистика возврата была настраиваемой, поэтому у меня могут быть «возврат за 1 месяц», «год к дате» и даже такие вещи, как «возврат с 3 марта 2019 года по 14 февраля 2020 года».
Вот пример того, как выглядит мой ввод:
library(lubridate)
set.seed(100)
d_start <- as.Date("2019-01-01")
input <- data.frame(
Date = rep(seq(d_start, today(), by = "1 day"), 3),
Ticker = c(rep("AAPL", today() - d_start + 1),
rep("MSFT", today() - d_start + 1),
rep("NFLX", today() - d_start + 1)),
Price = c(runif(today() - d_start + 1, min = 20, max = 40),
runif(today() - d_start + 1, min = 50, max = 90),
runif(today() - d_start + 1, min = 150, max = 400))
)
А вот как я ожидаю, что результат будет выглядеть. С: r1 как доход за прошедший 1 месяц, r2 как доход с года на дату и r3 как доход с 3 марта 2019 года по 14 февраля 2020 года
Ticker r1 r2 r3
1 AAPL 0.1788484 0.1370241 0.24244384
2 MSFT -0.1466788 -0.2850910 -0.06895183
3 NFLX -0.4755626 -0.4964146 -0.06005490