Я пытаюсь использовать цикл 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)
}
0
fccog 24 Апр 2017 в 15:58

2 ответа

Лучший ответ

Мне кажется, что вы пытаетесь записать свои файлы с расширениями 'two', потому что вы читаете их как filenameWithExtension, а затем пишете им filenameWithExtension.txt. Если это так, то решением будет просто заменить это paste(file.names[i],".txt",sep="") на file.names[i].

В случае, если я ошибаюсь, вы должны показать нам пример содержимого file.name.

1
Ricardo Fernandes Campos 24 Апр 2017 в 13:23

В коде вы можете удалить текущий файл 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, разделители и т. Д.)

0
gonzalez.ivan90 24 Апр 2017 в 13:19
43588737