可以交互使用包,但Rscript会出错

时间:2013-11-05 01:33:40

标签: r topic-modeling rscript

我正在使用R中的“topicmodels”包。所有内容都能以交互方式运行,但如果我使用Rscript运行完全相同的命令,则会出错。

第一个错误(我解决了)是R不知道is()函数是什么。我通过导入"methods"包解决了这个问题。显然,Rscript不会自动导入,即使是交互式R,也会导致is()出现问题。问题解决了。

然而,我现在陷入了一个不同的错误,我无法弄清楚。我使用LDA()包中的"topicmodels"函数,使用数据(DTM格式)和k = 10。我称之为:

library(plyr)
library(lda)
library(topicmodels)
x = as.data.frame(sapply(1:100, function(x) sample(1:100,100,replace=T)))
u = llply(colnames(x), function(a) rbind(0:(length(x[,a])-1),x[,a]))
v = rownames(x)
y = ldaformat2dtm(u, v)
a = LDA(x, 10)

它给了我以下错误:

> Error in as(control, "LDA_VEMcontrol") :
>   no method or default for coercing "NULL" to "LDA_VEMcontrol"
> Calls: LDA -> method -> as
> Execution halted

主要的是它以交互方式工作,但不使用Rscript。我知道数据格式正确,如果我打印数据,它看起来不错。还有什么我想念的吗?是否有Rscript未加载的其他模块,但R交互式加载了吗?谢谢!

1 个答案:

答案 0 :(得分:2)

我刚刚通过Rscriptsource()在交互式会话中运行了示例,两者都有效。 Rscript的唯一输出是:

% Rscript /tmp/sc.r
Loading required package: methods

所以它似乎已经找到了methods这个东西。

我有R 3.0.1,也许你有一个旧版本的R或其中一个软件包?他们可能已更新其先决条件列表以包含methods