我正在尝试从Windows命令提示符运行R脚本(原因是稍后我想使用VBA运行脚本)。
设置了R环境变量后(请参阅帖子末尾),R_code.R
中保存的以下代码行完美运行:
library('xlsx')
x <- cbind(rnorm(10),rnorm(10))
write.xlsx(x, 'C:/Temp/output.xlsx')
(为了运行脚本并获得生成的xlsx输出,我只需在Windows命令提示符下键入以下命令:Rscript C:\Temp\R_code.R
)。
现在,鉴于这个&#34;玩具示例&#34;正在按预期工作,我试图移动到我的主要目标,这确实非常相似(从命令行运行一个简单的R脚本),但由于某种原因我不能成功。
同样,我必须使用特定的R包(-copula-
,用于对一些相关的随机变量进行采样)并将R输出导出到csv文件中。
以下脚本(R_code2.R
)在R:
library('copula')
par_1 <- list(mean=0, sd=1)
par_2 <- list(mean=0, sd=1)
myCop.norm <- ellipCopula(family='normal', dim=2, dispstr='un', param=c(0.2))
myMvd <- mvdc(myCop.norm,margins=c('norm','norm'),paramMargins=list(par_1,par_2))
x <- rMvdc(10, myMvd)
write.table(x, 'C:/Temp/R_output.csv', row.names=FALSE, col.names=FALSE, sep=',')
不幸的是,当我尝试从命令提示符(Rscript C:\Temp\R_code2.R
)运行相同的脚本时,我收到以下错误:
Error in FUN(c("norm", "norm"))[[1L]], ...) :
cannot find the function "existsFunction"
Calls: mvdc -> mvdcCheckM -> mvd.has.marF -> vapply -> FUN
您对如何解决问题有任何想法吗? 任何帮助都非常感谢,S。
设置R环境变量(Windows) 对于那些想要复制代码的人来说,为了设置环境变量,你必须:
;
后跟您的Rscript.exe文件夹的路径。就我而言,它是;C:\Program Files\R\R-3.1.1\bin\x64
。答案 0 :(得分:2)
这是一个让我感到困惑的棘手问题。根据文档(?Rscript
),
Rscript省略了方法包,因为它占用了大约60%的启动时间。
所以你的更好的解决方案恕我直言是在你的脚本顶部附近添加library(methods)
。
答案 1 :(得分:0)
对于那些感兴趣的人,我只需在命令提示符下键入以下内容即可解决问题:
R CMD BATCH C:\Temp\R_code2.R
我仍然不清楚为什么上一个命令不起作用。无论如何,再一次搜索R文档(see here)被证明是一个很好的选择!