我下载财务数据的部分代码:
library(quantmod)
tickers <- c("XOM", "DIS")
stock1 <- getSymbols(tickers[1], from="2010-03-01", to="2011-02-28", auto.assign=F)
stock2 <- getSymbols(tickers[2], from="2010-03-01", to="2011-02-28", auto.assign=F)
pair <- merge(Ad(stock1), Ad(stock2), all=F) # 'xts' object, merge adjusted close
pair.DF <- data.frame(pair) # data frame
但我想调用这样的函数:
tickers <- function(x, y) {
stock1 <- getSymbols(x, from="2010-03-01", to="2011-02-28", auto.assign=F)
stock2 <- getSymbols(y, from="2010-03-01", to="2011-02-28", auto.assign=F)
pair <- merge(Ad(stock1), Ad(stock2), all=F)
pair.DF <- data.frame(pair)
}
然后:
tickers("XOM", "DIS")
或类似的东西。但我得到的是糟糕的结果。在这种情况下,“x”和“y”不是数字,而是字符。 这似乎很容易,但.. 感谢您的任何建议。
答案 0 :(得分:1)
tickers <- function(x, y) {
stock1 <- getSymbols(x, from="2010-03-01", to="2011-02-28", auto.assign=F)
stock2 <- getSymbols(y, from="2010-03-01", to="2011-02-28", auto.assign=F)
pair <- merge(Ad(stock1), Ad(stock2), all=F)
pair.DF <- data.frame(pair)
return(pair.DF)
}
只要你返回该对,就可以为我工作.DF结尾。这是你的问题吗?
我认为角色类不是问题所在:
class(tickers[1])==class("XOM")
TRUE