如何在for循环后覆盖现有的.txt文件

时间:2017-04-24 12:58:47

标签: r for-loop export output write.table

我正在尝试使用for循环来删除每个文本的初始部分,然后使用write.table导出修订后的文本,但在我的文件夹中我注意到write.table将生成一组新文件而不是取代原来的。谁能告诉我如何覆盖现有文件?

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)
}

2 个答案:

答案 0 :(得分:1)

在我看来,您正在尝试使用&#39;两个&#39;扩展,因为你像filenameWithExtension一样读它们,而不是你写它们filenameWithExtension.txt。如果是这种情况,解决方案只是将此paste(file.names[i],".txt",sep="")更改为此file.names[i]

如果我错了,你应该向我们展示一个file.name&#39的内容。

答案 1 :(得分: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 = " ")是否会正确替换您的原始文件。我用来做这种循环,我必须多次检查我的新书面文件的结构(引号,NA&#39; s,delims等)