我正在使用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交互式加载了吗?谢谢!
答案 0 :(得分:2)
我刚刚通过Rscript
和source()
在交互式会话中运行了示例,两者都有效。 Rscript
的唯一输出是:
% Rscript /tmp/sc.r
Loading required package: methods
所以它似乎已经找到了methods
这个东西。
我有R 3.0.1,也许你有一个旧版本的R或其中一个软件包?他们可能已更新其先决条件列表以包含methods
。