0

我正在尝试使用 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)
}
4

2 回答 2

1

在我看来,您正在尝试使用“两个”扩展名编写文件,因为您像 filenameWithExtension 一样读取它们,而不是写入 filenameWithExtension.txt。如果是这种情况,解决方案就是将 this 更改paste(file.names[i],".txt",sep="")为 this file.names[i]

万一我错了,你应该给我们看一个 file.name 内容的例子。

于 2017-04-24T13:23:15.907 回答
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、分隔符等)

于 2017-04-24T13:19:15.013 回答