【问题标题】:R CMD batch from cron (Mac) gives different results from source()来自 cron (Mac) 的 R CMD 批处理给出了与 source() 不同的结果
【发布时间】:2014-03-10 04:17:15
【问题描述】:

我正在使用 cron (Mac) 运行 R CMD batch(很遗憾我无法在此处重现)。

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

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

采购一切正常。使用 cron,gsub 无法替换 é á ã 等字符。

我认为这可能与语言选项有关,但我不确定如何解决这个问题。

如何确保sourcecronR CMD batch 获得相同的结果?

【问题讨论】:

  • 我仍然没有弄清楚发生了什么。没有人?甚至是关于从哪里开始的小提示?

标签: r utf-8 cmd cron batch-processing


【解决方案1】:

您可能需要检查您的区域设置。在语言环境下,我注意到文档针对 OS/X 说“如果终端中的 R 用户默认为 'C',则可能需要将语言环境设置为类似于 'en_GB.UTF-8' 的内容(就像在登录时有时那样)远程和批处理作业:注意终端设置 LANG 环境变量是否是(高级)选项,但默认)。”

【讨论】:

  • 谢谢,我会试试的。但是你知道如何知道cron 使用的是什么设置吗?
  • 在终端中,输入“locale”。无论它为 LANG= 等显示什么,都是您的系统使用的(cron、bash 和几乎所有字符),除非您已编辑 /etc/profile 以将其设置为其他内容。它可能是“en_US.UTF-8”。作为 R CMD 的替代方案,您还可以使用 Rscript,它是用于从命令行运行 R 脚本的内置工具。
  • 我已经想出了如何解决它。您必须确保cron 具有与shell 相同的环境变量,您必须在cronjob 之前定义它们,它现在正在工作! (但我确实遇到了一些麻烦来做对!)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多