Quantmod 包在 R 中传递参数

Quantmod package passing arguments in R

我想在 R 中构建自定义股票估值函数。我的代码是:

stock_valuation <- function(company1 = "GOOGL", start = "2018-04-01", end = "2018-06-01"){


stock1 = getSymbols(company1, src = "yahoo", from = start, to = end)  

}


stock_valuation()

我也想拥有这些默认值。但是,当我 运行 函数(如代码所示)时,我没有收到任何答复——什么也没有。我究竟做错了什么?如何正确传递这些参数?

或者也许有更好的方法来废弃股票报价?

换句话说,我希望它 return 数据框到全局环境。

有可能的答案吗?

通过在 getSymbols 中使用默认参数 auto.assign = TRUE,您的 getSymbols 调用将 GOOGL 数据传递到函数内部的环境中,并分配字符串名称 "GOOGL"到你的变量 stock1 (不是数据),默认情况下 getSymbols 预期。

试试这个:

library(quantmod)
stock_valuation <- function(company1 = "GOOGL", start = "2018-04-01", end = "2018-06-01"){


  stock1 = getSymbols(company1, src = "yahoo", from = start, to = end, auto.assign = FALSE)  
  stock1
}


res <- stock_valuation()

res 是一个 xts 对象,但您可以轻松地将其转换为 data.frame,例如:

df <- data.frame(time = index(res), coredata(res))