字符变量作为函数的参数

时间:2011-03-25 21:34:48

标签: r loops quantmod

我下载财务数据的部分代码:

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”不是数字,而是字符。 这似乎很容易,但.. 感谢您的任何建议。

1 个答案:

答案 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