R перезаписывает только первые несколько строк файла - PullRequest
0 голосов
/ 06 февраля 2019

Привет, я хочу сделать что-то, что, на мой взгляд, должно быть простым, но, похоже, не могу найти способУ меня есть несколько файлов, которые я хочу изменить в строках заголовка, заданных ключевым словом.Строки, которые я хочу изменить, всегда находятся в первых 20 строках, но не обязательно с одинаковым номером строки.

Итак, я хочу прочитать первые 20 строк (что легко), найти и изменить мою строку (снова легко), а затем записать в верхние 20 строк файла и оставить тысячи строк ниже безменяется.Мне придется делать это сотни и сотни раз, поэтому я не хочу читать весь файл и писать все это.

Я создал очень упрощенный пример.ПРЕДУПРЕЖДЕНИЕ Я создаю файл с именем Temp.txt в вашем текущем рабочем каталоге, если вы запустите это.

#Create Dummy text file 
write.table(file = "Temp.txt", data.frame(Test = letters[1:26]), row.names = F, quote = F)

И тогда я могу читать в строках и изменять

# read top 5 lines of text file (In real life I need to look at 20, but for examples sake 2)
TestHeader = readLines("Temp.txt", n = 5)
# Find and replace my search string
TestHeader[grepl("c",TestHeader)] <- "My New Line"

# <what to do here?> I want to only write over first 20 lines 

Очевидно, что я могу читать целиком и изменять

TestHeader = readLines("Temp.txt")
TestHeader[grepl("c",TestHeader)] <- "My New Line"
writeLines(TestHeader, "Temp.txt")

Но это будетвовлекать излишне читать и писать тысячи и тысячи строк.

...