【发布时间】:2020-06-30 02:16:45
【问题描述】:
采用长格式的股票价格数据框(包含多只股票)并生成包含每只股票的汇总回报统计数据的新数据框的最佳做法是什么?我正在考虑使用 dplyr、group_by 和 summarise 的一些解决方案。我的输入数据框有列:日期、代码和价格。我希望输出有一个 Ticker 列,然后每个返回统计数据有多个列。我希望退货统计是可定制的,所以我可以有“1 个月退货”、“年初至今”,甚至是“2019 年 3 月 3 日至 2020 年 2 月 14 日之间退货”之类的信息。
这是我的输入的示例:
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 作为 2019 年 3 月 3 日至 2020 年 2 月 14 日的回报
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
【问题讨论】:
-
请提供一个可重现的示例,包括您的数据集样本和预期结果。还包括您已经尝试过的任何代码