我有一个包含 3 列的数据框:日期、代码(即金融工具)和价格。我只想计算每个股票的回报。
一些数据可以玩:
AsofDate = as.Date(c("2018-01-01","2018-01-02","2018-01-03","2018-01-04","2018-01-05",
"2018-01-01","2018-01-02","2018-01-03","2018-01-04","2018-01-05",
"2018-01-01","2018-01-02","2018-01-03","2018-01-04","2018-01-05"))
Tickers = c("Ticker1", "Ticker1", "Ticker1", "Ticker1", "Ticker1",
"Ticker2", "Ticker2", "Ticker2", "Ticker2", "Ticker2",
"Ticker3", "Ticker3", "Ticker3", "Ticker3", "Ticker3")
Prices =c(1,2,7,4,2,
6,5,7,9,12,
11,11,16,14,15)
df = data.frame(AsofDate, Tickers, Prices)
我的第一个想法是按(代码价格)订购价格,然后计算所有向量并在第一天设置为 NA ......
TTR::ROC(x=Prices)
它适用于 Excel,但我想要更漂亮的东西
所以我尝试了这样的事情:
require(dplyr)
ret = df %>%
select(Tickers,Prices) %>%
group_by(Tickers) %>%
do(data.frame(LogReturns=TTR::ROC(x=Prices)))
df$LogReturns = ret$LogReturns
但是在这里我得到了太多的值,似乎计算不是由 Tickers 完成的。
你能给我一个提示吗?
谢谢 !!