2017-04-24 55 views
0

我想用循環刪除每個文本的初始部分,然後使用write.table導出修改後的文本,但在我的文件夾中,我注意到write.table將生成一組新文件而不是替換原來的文件。任何人都可以告訴我如何覆蓋現有的文件?如何覆蓋for循環後現有的.txt文件

for(i in 1:length(file.names)){ 
    text.v <- scan(file.names[i], what="character", encoding = "UTF-8") 
    novel.v <- paste(text.v, collapse=" ") 
    word.v <- gsub(".*</Header> ","", novel.v) 
    write.table(paste(word.v,collapse = " "), paste(file.names[i],".txt",sep=""), row.names=FALSE, col.names=FALSE, quote=FALSE) 
} 
+0

代碼如何生成新文件?不保存相同的名稱? –

+0

我會將所有文件讀作列表,然後執行'gsub'並最後寫入它們。 –

回答

1

在我看來,你正試圖寫你的文件'two'擴展名,因爲你像filenameWithExtension一樣讀取它們,而不是將它們寫入filenameWithExtension.txt。如果是這樣的話,解決方案就是將paste(file.names[i],".txt",sep="")更改爲file.names[i]

如果我錯了,你應該向我們展示一個file.name內容的例子。

0

到代碼,您可以刪除當前文件i

file.remove(paste0(file.names[i],".txt")) 

而且你的代碼

write.table(paste(word.v,collapse = " "), paste(file.names[i],".txt",sep=""), row.names=FALSE, col.names=FALSE, quote=FALSE) 

檢查後,如果objetc paste(word.v,collapse = " ")將正確替換您origonal文件。我用來做這種類型的循環,我必須檢查幾次我的新書面文件(引號,NA的,分隔等)的結構

+0

謝謝,但你的代碼沒有工作,我仍然有文件夾中的原始文件。 – fccog