2014-11-23 137 views
1

由于某些原因,我通常在Rstudios中运行的代码不再有效。我希望有人有类似的经历并了解正在发生的事情。“二元运算符的非数字参数”错误getReturns

getReturns(c('C','BAC'), start='2004-01-01', end='2008-12-31') 

这导致:

Error in unclass(e1) + unclass(e2) : 
non-numeric argument to binary operator 

网上也没有对计算器,解决这个问题,我无法找到任何东西。另外,我看到最新的文档,从2014年7月并没有任何提什么:

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

有没有人有任何想法,这是怎么回事呢?

+0

是的,当然有!重新启动计算机,重新启动Rstudios等。 – 2014-11-23 06:04:36

回答

5

这可能是一个函数名冲突问题。运行

timeSeries::getReturns(c('C','BAC'), start='2004-01-01', end='2008-12-31') 

给我的错误,但运行

stockPortfolio::getReturns(c('C','BAC'), start='2004-01-01', end='2008-12-31') 

工作正常。


这是怎么发生的?

您必须加载stockPortfolio包装,再装或者timeSeries或取决于timeSeries另一个包。已通过您的控制台看起来像

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

    getReturns 

使用双冒号操作的消息看(如上图所示),明确地告诉R键看在哪个包。

0

我有使用stockPortfolio类似的问题在R Markdown程序中。 在R文件中工作的代码在rmd文件中不起作用。

```{r p3} 
    recordState() 
    ff <- allFunds1$Fund 
    returns <-stockPortfolio::getReturns(ff,freq="month") 
    save(allFunds1,file='allFunds1.rda') 
    ``` 

给出了错误信息,并追踪

Error in unclass(e1) + unclass(e2) : non-numeric argument to binary operator 
    5. structure(unclass(e1) + unclass(e2), class = "Date") 
    4.`+.Date`(as.Date(origin, ...), x) 
    3. as.Date.numeric(uDates, origin = minDate) 
    2. as.Date(uDates, origin = minDate 
    1. stockPortfolio::getReturns(ff, freq = "month") 

我recordState功能会在块搜索()和sessionInfo()的结果:

 [1] "search:" 
    [1] ".GlobalEnv"  "tools:rstudio"  "package:stats"  
    [4] "package:graphics" "package:grDevices" "package:utils"  
    [7] "package:datasets" "package:methods" "Autoloads"   
    [10] "package:base"  
    [1] "sessionInfo():" 
    R version 3.3.2 (2016-10-31) 
    Platform: x86_64-apple-darwin13.4.0 (64-bit) 
    Running under: OS X Yosemite 10.10.5 

    locale: 
    [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 

    attached base packages: 
    [1] stats  graphics grDevices utils  datasets methods  base  

    loaded via a namespace (and not attached): 
    [1] Rcpp_0.12.9  digest_0.6.11  dplyr_0.5.0  
    [4] rprojroot_1.2  assertthat_0.1  R6_2.2.0   
    [7] xtable_1.8-2  DBI_0.5-1   backports_1.0.5 
    [10] magrittr_1.5  evaluate_0.10  stringi_1.1.2  
    [13] stockPortfolio_1.2 rmarkdown_1.3  tools_3.3.2  
    [16] stringr_1.1.0  readr_1.0.0  yaml_2.1.14  
    [19] htmltools_0.3.5 knitr_1.15.1  tibble_1.2   

原来张贴提示这个错误可能是由于stockPortfolio :: getReturns与timeSeries中的函数混淆导致的,但我已经使用了全名并且没有加载任何一个库。

相关问题