2010-08-13 71 views
4

我正在处理R中的一个脚本,它处理一些数据并写入输出文件。我希望以反映输入文件的方式命名该输出文件,并且我希望该文件具有独特性,以避免覆盖旧文件。在R中创建动态文件名的问题

所以我想用一个时间戳。但是,这不是我希望的方式,我想了解正在发生的事情以及如何正确执行此操作。

这是我正在努力命名该文件(file_base是输入文件的名称):

now<-format(Sys.time(), "%b%d%H%M%S") 
outputfile<-cat(file_base, "-",now,"-output.txt", sep="") 

这对函数的输出效果会很好。但是随后执行'outputfile'会导致'NULL'作为输出。

这里发生了什么,以及如何使用我想要的属性创建输出文件名?

回答

13

你很混淆catpaste。你想:

outputfile <- paste(file_base, "-",now,"-output.txt", sep="") 
+1

此外,'paste0(file_base,...)'没有'sep =“”''。 – 2016-12-27 13:55:09

-1

您还可以使用膏状的分离参数:

outputfile <- paste(file_base,now,"output.txt", sep="-") 
0

您也可以使用函数的sprintf(),它是C函数的包装。 示例:

filepath <- file.path(outdir, sprintf("abcdefg_%s.rda", name))