来自getReturns的"二元运算符的非数字参数"错误

Tre*_*eha 1 finance r stocks quantmod

出于某种原因,我通常在Rstudios中运行的代码不再有效.我希望有人有类似的经历,并了解正在发生的事情.

getReturns(c('C','BAC'), start='2004-01-01', end='2008-12-31')
Run Code Online (Sandbox Code Playgroud)

这导致:

Error in unclass(e1) + unclass(e2) : 
non-numeric argument to binary operator
Run Code Online (Sandbox Code Playgroud)

我无法在线找到任何解决此问题的stackoverflow.另外,我从2014年7月开始看到最新的文档中没有提到任何内容:

http://cran.r-project.org/web/packages/stockPortfolio/stockPortfolio.pdf

有谁知道这里发生了什么?

Ric*_*ton 5

这可能是函数名称冲突问题.运行

timeSeries::getReturns(c('C','BAC'), start='2004-01-01', end='2008-12-31')
Run Code Online (Sandbox Code Playgroud)

给我错误,但运行

stockPortfolio::getReturns(c('C','BAC'), start='2004-01-01', end='2008-12-31')
Run Code Online (Sandbox Code Playgroud)

工作良好.


这怎么发生的?

您必须已加载stockPortfolio包,然后加载其中一个timeSeries或另一个依赖的包timeSeries.通过控制台查看看起来像的消息

The following object is masked from ‘package:stockPortfolio’:

    getReturns
Run Code Online (Sandbox Code Playgroud)

使用双冒号运算符(如上所示)明确告诉R要查看哪个包.