2

我在 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 交互加载?谢谢!

4

1 回答 1

2

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

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

所以它似乎已经自己想通了methods

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

于 2013-11-05T03:23:37.287 回答