从crontab运行R脚本会产生与命令行不同的结果

时间:2013-07-30 22:25:06

标签: r bash crontab

我使用的是一台采用Ubuntu 10.04.4(清晰)和R版本2.15.3的机器。

我从命令行使用R CMD BATCH test.time.R运行此R脚本,它运行正常:

format(Sys.time(), " %H")
[1] " 15"

format(Sys.time(), " %H") >= 12
[1] TRUE

但是当我从crontab运行* / 1 * * * * R CMD BATCH test.time.R时,它不会:

format(Sys.time(), " %H")
[1] " 15"

format(Sys.time(), " %H") >= 12
[1] FALSE

有什么想法?

这是唯一一台(四分之一)机器(其他机器从crontab上读得很好)。

我很感激任何想法。谢谢!

1 个答案:

答案 0 :(得分:2)

如果您不必,请不要将字符串与数字进行比较。如果您从格式模式中删除了空格(即将其设为"%H"而不是" %H"),它应该可以正常工作。但是,在这种情况下,您不必引入字符串;您可以转换为POSIXlt并提取hour组件,将小时作为数字。试试这个:

as.POSIXlt(Sys.time())$hour > 12