R博客上有一篇博客文章如何将R中的股票价格转换为回报。它会将第一行转换为1,然后跟踪前进的回报。因此,他们有股票数据的这个例子:了解一行R代码
## AAPL.Close MSFT.Close GOOG.Close
## 2016-01-04 105.35 54.80 741.84
## 2016-01-05 102.71 55.05 742.58
## 2016-01-06 100.70 54.05 743.62
## 2016-01-07 96.45 52.17 726.39
## 2016-01-08 96.96 52.33 714.47
## 2016-01-11 98.53 52.30 716.03
当加载库magittr
(这显然是一个“管道”运营商),并运行此行代码:
stock_return <- apply(stocks, 1, function(x) {x/stocks[1,]}) %>% t %>% as.xts
你这个:
AAPL.Close MSFT.Close GOOG.Close
2016-01-04 1.0000000 1.0000000 1.0000000
2016-01-05 0.9749407 1.0045620 1.0009975
2016-01-06 0.9558614 0.9863139 1.0023994
2016-01-07 0.9155197 0.9520073 0.9791734
2016-01-08 0.9203607 0.9549271 0.9631052
2016-01-11 0.9352634 0.9543796 0.9652081
我不明白这行代码如何工作。我知道apply
函数将在每一行操作(参数1
完成该操作)。我知道在理论上我想自己划分第一行(这将给出该行1),然后将第一行除以第一行,这将显示投资如何随时间变化。
所以这部分代码的功能是:
{x/stocks[1,]}) %>% t %>%
它是与“管道运营商”和业务工作的左到右,而不是里面出来。有人能帮助我理解这个函数的语法,以及它如何完成它应该做的事情?我可以使用它,但我宁愿不要让它成为黑盒子。谢谢!
我真的很感谢你的帮助,回答了@alex,并道歉,这不是发布此问题的正确地方。我不确定如何关闭此功能,因为这是我第一次发布,但在下次发布时我会更加谨慎。谢谢! –