出于某种原因,我通常在Rstudios中运行的代码不再有效。我希望有人有类似的经历,并了解正在发生的事情。
getReturns(c('C','BAC'), start='2004-01-01', end='2008-12-31')
这导致:
Error in unclass(e1) + unclass(e2) :
non-numeric argument to binary operator
我无法在线找到任何解决此问题的stackoverflow。另外,我从2014年7月开始看到最新的文档中没有提到任何内容:
http://cran.r-project.org/web/packages/stockPortfolio/stockPortfolio.pdf
有谁知道这里发生了什么?
答案 0 :(得分: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要查找哪个包。
答案 1 :(得分:0)
我在R Markdown程序中使用stockPortfolio时遇到了类似的问题。 在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函数将search()和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中的函数混淆,但我使用了全名,并且没有加载任何一个库。