我目前通过调度程序触发R脚本。有时R脚本会导致错误(可能是由于输入问题)。每次运行后,我会得到一个带有历史日志的r-out文件。该日志在检查是否一切按计划进行时非常有帮助,但不幸的是它每天都会被覆盖。我现在的问题是:我怎么能每天获得不同的R-出的文件(例如带有日期的话)如何将日期追加到文件名以进行日志记录
最好的问候,并感谢您, 菲尔
我目前通过调度程序触发R脚本。有时R脚本会导致错误(可能是由于输入问题)。每次运行后,我会得到一个带有历史日志的r-out文件。该日志在检查是否一切按计划进行时非常有帮助,但不幸的是它每天都会被覆盖。我现在的问题是:我怎么能每天获得不同的R-出的文件(例如带有日期的话)如何将日期追加到文件名以进行日志记录
最好的问候,并感谢您, 菲尔
要生成的文件名,其中包括当前日期,您可以输出Sys.Date()
并使用paste0
组成包含日期的文件的名称。
也许是这样的:
filename <- paste0("R-out_", Sys.Date(), ".log")
#> filename
#[1] "R-out_2016-08-24.log"
日期的格式可以与format()
如果需要的话(感谢@Konrad提醒这一点)改变。例如,我们可以使用format(Sys.Date(), "%d-%m-%Y")
以获得通常使用的日 - 月 - 年的形式,例如,在欧洲:
filename <- paste0("R-out_", format(Sys.Date(), "%d-%m-%Y"), ".log")
我们可以使用sink()
重定向的控制台(标准)输出脚本到文件。在这种情况下,脚本可以被编辑以包括filename
的定义如上所述,随后命令
sink(filename)
之前被显示在标准输出任何东西这应该被插入到脚本文件。可能这两行(文件名和sink命令的定义)可以放在最开始,但我建议首先使用setwd(<pathToMyOutputDirectory>)
来指定输出目录。在sink(filename)
命令之后,通常在控制台中显示的任何输出将存储在根据存储在filename
中的字符串调用的文件中。在脚本末尾,使用不带任何参数的sink()
(或等效地sink(file = NULL)
)恢复标准输出的默认设置将会很好。
为我们获得了一些代码? http://stackoverflow.com/help/how-to-ask –
考虑添加一个可以帮助我们重现错误的代码。 –
是的,rHertel。代码不是这里的问题,而是因为它是远程触发的,所以如何让我的控制台输出用于每次运行。我喜欢从下面的答案,但我怎么填写我的控制台输出? – Phil