我在 R 中使用“topicmodels”包。一切都可以交互地正常工作,但如果我使用 Rscript
运行完全相同的命令,则会出现错误。
第一个错误(我已解决)是 R 不知道 is()
函数是什么。我通过导入“methods”包解决了这个问题。显然,即使交互式 R 会自动导入,Rscript
也不会自动导入它,这导致了 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 Interactive 加载?谢谢!
最佳答案
我刚刚在交互式 session 中通过 Rscript
和 source()
运行了该示例,两者都有效。 Rscript
的唯一输出是:
% Rscript /tmp/sc.r
Loading required package: methods
所以它似乎已经自己解决了methods
问题。
我有 R 3.0.1,也许你有旧版本的 R 或其中一个软件包?他们可能已更新其先决条件列表以包含方法
。
关于r - 可以交互使用包,但 Rscript 给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19780515/