我正在处理R中的脚本,它处理一些数据并写入输出文件。我希望以反映输入文件的方式命名输出文件,并且我希望该文件是唯一的,因此不会覆盖旧文件。
所以我想用时间戳。但这并不像我希望的那样,我想了解正在发生的事情以及如何正确地做到这一点。
这就是我试图命名文件的方式(file_base是输入文件的名称):
now<-format(Sys.time(), "%b%d%H%M%S")
outputfile<-cat(file_base, "-",now,"-output.txt", sep="")
这对功能的输出看起来很棒。但随后执行'outputfile'会导致'NULL'作为输出。
这里发生了什么,如何使用我想要的属性创建输出文件名?
答案 0 :(得分:14)
你让cat
和paste
感到困惑。你想要:
outputfile <- paste(file_base, "-",now,"-output.txt", sep="")
答案 1 :(得分:0)
您还可以使用函数sprintf(),它是C函数的包装器。 例如:
filepath <- file.path(outdir, sprintf("abcdefg_%s.rda", name))
答案 2 :(得分:-1)
您还可以使用paste:
的分隔符参数outputfile <- paste(file_base,now,"output.txt", sep="-")