2014-02-12 29 views
0

我正在运行R CMD batch(很遗憾,我无法在此处重现)和cron(Mac)。来自cron(Mac)的R CMD批次给出源()的不同结果

但是当它运行脚本时,结果与我从R ou RStudio直接获取的结果不同。

不同之处主要在于涉及字符串的命令,如sapply(object, gsub, pattern="[[:alpha:]]|[[:punct:]]|\\s",replacement="")

采购一切运行良好。用cron,gsub无法替代像é á ã等字符

我想也许这与语言选项有关,但我不知道如何解决这个问题。

我该如何确保sourcecronR CMD batch得到相同的结果?

+0

我仍然没有弄清楚发生了什么事情。没有人?即使从哪里开始的小暗示? –

回答

0

您可能想要检查您的区域设置。在语言环境下,我注意到文档为OS/X表示“终端中的R用户可能需要将语言环境设置为'en_GB.UTF-8',如果它默认为'C'它远程执行批处理作业:注意Terminal是否设置了LANG环境变量是一个(高级)选项,但是是默认值)。“

+0

谢谢,我会试试看。但是你知道如何知道'cron'使用的是什么设置吗? –

+0

在终端中,输入'locale'。不管它显示的是LANG =等等,都是你的系统使用的东西(cron,bash和几乎所有的字符),除非你编辑/ etc/profile来设置它。这可能是“en_US.UTF-8”。作为R CMD的替代方案,您还可以使用Rscript,它是内置的,用于从命令行运行R脚本。 – Patrick

+0

我已经想出了如何解决它。你必须确保'cron'具有和shell一样的环境变量,你必须在'cron'job之前定义它们,它现在正在工作! (但是我确实遇到了一些麻烦,以便正确使用!) –

相关问题