2010-08-13 58 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))