我在R中使用"topicmodels"包.一切都以交互方式工作正常,但是如果我使用Rscript
运行完全相同的命令,则会出现错误。
第一个错误(我解决了)是 R 不知道 is()
函数是什么。我通过导入"methods"
包解决了这个问题。显然,Rscript
不会自动导入它,即使交互式 R 会导入,这导致了 is() 的问题。问题解决了。
但是,我现在陷入了另一个错误,我无法弄清楚。我在"topicmodels"
包中使用LDA()
函数,使用数据(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 交互式加载?谢谢!
我只是通过Rscript
和source()
在交互式会话中运行了该示例,两者都有效。 Rscript
的唯一输出是:
% Rscript /tmp/sc.r
Loading required package: methods
所以它似乎已经自己想出了methods
的事情。
我有 R 3.0.1,也许您有旧版本的 R 或其中一个软件包? 他们可能已经更新了他们的先决条件列表以包括methods
。