首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >`cv.glmnet`工作在RStudio,而不是RScript

`cv.glmnet`工作在RStudio,而不是RScript
EN

Stack Overflow用户
提问于 2015-12-15 16:47:52
回答 2查看 1.1K关注 0票数 1

以下命令在RStudio中运行良好,但在RScript中却不起作用:

代码语言:javascript
复制
require(glmnet)
calibdata = read.csv("calibrationfile.csv")

xs = model.matrix(as.formula("targetvar~predictor1+predictor2)),calibdata)[,-1] # -1 discards intercept constant, glmnet has its own
ys = as.numeric(unlist(calibdata["targetvar"]))
fit=cv.glmnet(xs,ys)

来自RScript的错误消息:

代码语言:javascript
复制
Error in is(x, "CsparseMatrix") : could not find function "new"
Calls: cv.glmnet -> glmnet -> elnet -> getcoef -> drop0 -> is
Execution halted

在这两种情况下r版本为3.2.3,glmnet版本为2.0-2。

我怎样才能让glmnet在RScript工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-15 17:09:24

RScript具有不为您加载(基本包)方法的“可爱”特性。

所以你所需要的就是额外的

代码语言:javascript
复制
  require(methods)

代码语言:javascript
复制
  suppressMessages(library(methods))

至于它的价值,利特勒命令行和脚本前端的R杰夫霍纳和我写的默认加载方法为您.

票数 6
EN

Stack Overflow用户

发布于 2017-10-21 10:02:35

我遇到了同样的问题,并找到了两个可能的解决办法(只是为了补充@德克Eddelbuettel的答案):

嗯,我在某个地方读到了--default-packages=methods,utils需要传递给Rscript来解决这个问题:https://github.com/stan-dev/rstan/issues/190

或,

而且,Rscript似乎缺少了methods包的负载。也可以通过在脚本开头调用library('methods')https://github.com/dhimmel/elevcan/issues/1来解决这个问题。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34297634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档