2016-10-21 86 views
1

我對R編程頗爲新穎,如果已經回答了此問題,我很抱歉;我確實尋找答案,但也許我的措辭是關閉的。使用輸入文件名命名輸出文件

我已經導入了一個TXT文件,執行了我對數據的分析和轉換,現在希望編寫一個用於導出的CSV文件。但是,由於這個腳本是爲了運行多個文件,我想使用輸入TXT文件中的文件名作爲輸出CSV文件。

>read.csv("C:\\Users\\Desktop\\filename.txt", header=FALSE) 
>... 
>... 
>write.csv(Newfile, "filename.csv") 

舉個例子,我希望能夠採取的途徑的「文件名」部分和(我假設)創建一個字符串變量來拉進我想寫的CSV文件的名稱。

我知道這是初學者級別的東西,但任何幫助,將不勝感激。謝謝!

+1

看看'?basename'。它應該返回你需要的東西,如果你傳遞它的原始文件名('basename(「C:\ Users \ Desktop \ filename.txt」)') –

+0

如何獲取所有文件名?一切都在一個文件夾?或者像'filename1.txt,...'這樣的東西?一般來說,你可以分割你的'path2file < - paste0(「C:\\ Users \\ Desktop \\」,文件名「,」.txt「)'並重復使用'filename'。 – Christoph

+0

請閱讀[問一個好問題](http://stackoverflow.com/help/how-to-ask)以及如何給出一個[可重現的例子](http://stackoverflow.com/questions/5963269)。這將使它很多更容易讓別人來幫你 – zx8754

回答

0

我們可以保持文件名和路徑變量,然後操縱,使輸出文件名:

myInputFile <- "C:\\Users\\Desktop\\filename.txt" 
myOutFile <- paste0(tools::file_path_sans_ext(myInputFile),".csv") 

# test 
myInputFile 
# [1] "C:\\Users\\Desktop\\filename.txt" 
myOutFile 
# [1] "C:\\Users\\Desktop\\filename.csv" 

或者更一般的方法,我用下面來跟蹤我的來龍去脈:

# define folders 
folderWD <- "https://stackoverflow.com/users/myName/myXproject/" 
folderInput <- paste0(folderWD, "data/") 
folderOutput <- paste0(folderWD, "output/") 

# input output files 
fileInput <- paste0(folderInput, "filename.txt") 
fileOutput <- paste0(folderOutput, tools::file_path_sans_ext(basename(fileInput)), ".csv") 

# test 
fileInput 
# [1] "https://stackoverflow.com/users/myName/myXproject/data/filename.txt" 
fileOutput 
# [1] "https://stackoverflow.com/users/myName/myXproject/output/filename.csv" 

#then codez 
myInputData <- read.csv(fileInput, header = FALSE) 
... 
Newfile <- # do some stuff with myInputData 
... 
write.csv(Newfile, fileOutput) 
+0

如果我只想在輸出文件名中包含輸入文件名,那麼該怎麼辦? 假設我有這個: 「C:\\ Users \ \ file_2016_10.txt「 如何在沒有擴展名的情況下拔出」2016_10「,並在寫入輸出文件時將其附加到我的文件名中? –

+0

@EScientist_WH例如輸入和預期輸出請 – zx8754

+0

所以我想讀入上面提到的文件,並寫入一個CSV文件名爲「2016_10」的字符串。 例如: > read.csv( 「C:\\用戶... \\ file_2016_10.txt」) > ... > OUTPUT_FILE #after分析和轉換 > > write.csv(OUTPUT_FILE ,「Output_file 2016_10」) –