【问题标题】:ROC function in package TTR throws an error: unused argument (na.pad=na.pad)包 TTR 中的 ROC 函数抛出错误:未使用的参数 (na.pad=na.pad)
【发布时间】:2014-10-28 05:46:44
【问题描述】:

以下代码一直有效,直到最近。

library("quantmod")
library("PerformanceAnalytics")
library("ggplot2")
library("fPortfolio")
library("fAssets")
library("reshape2")
library("corrplot")
library("gridExtra")    
library("dplyr")

Data_SP <- new.env()

### Download the data from yahoo finance
SP_tickers<-c("SPY","AAGPX","AUIAX","BHBFX","CABDX","CGRWX","EHSTX","HDGYX","KDCAX","LEIFX","NBPBX","OLVAX","PGRWX")

start.time<-proc.time()
getSymbols(SP_tickers, from="1998-12-29", env=Data_SP)    
Returns <- eapply(Data_SP, function(s) ROC(Ad(s), type="discrete"))
proc.time()-start.time

系统返回以下错误:

 Error in lag(x, n, na.pad = na.pad) : unused argument (na.pad = na.pad) 

有什么建议可以让上面的工作再次运行吗?

(出现此错误后所有包都已更新)

回溯之下:

4 lag(x, n, na.pad = na.pad) 
3 ROC(Ad(s), type = "discrete") 
2 FUN(list(structure(c(20.7, 20.57, 20.49, 20.52, 20.76, 21.2, 
21.22, 21.42, 21.21, 20.84, 20.73, 20.27, 20.74, 20.83, 20.84, 
20.57, 20.35, 20.41, 20.53, 20.3, 20.6, 20.82, 20.62, 20.48, 
20.62, 20.35, 20.32, 20.32, 20.01, 20.1, 20.39, 20.1, 20.28,  ... 
1 eapply(Data_SP, function(s) ROC(Ad(s), type = "discrete")) 

【问题讨论】:

  • 您为所有这些非基本功能使用了哪些软件包?请包括所有适当的library() 调用,以作为您的示例reproducible
  • @MrFlick 谢谢!添加了库

标签: r libraries shadowing


【解决方案1】:

找出lag 实际来自哪个包。 你加载了哪些包,按什么顺序加载?

显然dplyr::lag() 不同意xts::lag() https://github.com/hadley/dplyr/issues/277

“但是,如果我们现在附加 dplyr 库,它不会扩展 lag 通用函数。它会用一个破坏 xts 功能的显式函数替换它。”

【讨论】:

  • 太棒了!!!重新启动 RStudio,并重新运行代码但取出库(“dplyr”)。固定!!
  • 不得不将 library("dplyr") 的代码行重新定位到脚本下方。
  • 如果有命名空间冲突,建议直接调用命名空间。使用dplyr::lag 而不仅仅是lag
  • @Hugh:这与包之间通常的屏蔽问题有点不同。 dplyr::lag 掩盖了通用的stats::lag,从而阻止了方法分派。如果 TTR “导入”xts 和 zoo 而不是将它们放在“Depends”中(在我的待办事项列表中),我认为这不会成为问题。
  • (顺便说一句,masking 标签在这里不适用,它用于屏蔽输入字段。)
猜你喜欢
  • 2021-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多