Запись в файл в R одна строка за другой - PullRequest
0 голосов
/ 26 марта 2020

У меня есть следующий фрагмент кода для записи в файл R. по одной строке за раз.

for (i in c(1:10)){
  writeLines(as.character(i),file("output.csv"))

}

Он просто записывает 10, предположительно, перезаписывая предыдущие строки. Как заставить R добавить новую строку к существующему выводу? append = TRUE не работает.

Ответы [ 2 ]

1 голос
/ 26 марта 2020

append = TRUE работает при использовании функции cat (вместо writeLines), но только если вы даете cat a имя файла , а не когда вы присвойте ему file объект: является ли файл добавляемым или перезаписываемым, является свойством самого файлового объекта, то есть его необходимо указать при открытии файла .

Таким образом, обе эти работы:

f = file('filename', open = 'a') # open in “a”ppend mode
for (i in 1 : 10) writeLines(i, f)
for (i in 1 : 10) cat(i, '\n', file = 'filename', sep = '', append = TRUE)

Вызов file вручную почти никогда не требуется в R.

… но, как показывает другой ответ, вы можете (и должны !) все равно избегайте l oop.

1 голос
/ 26 марта 2020

Вам не понадобится все oop. Вместо этого используйте символ перехода новой строки \n.

vec <- c(1:10)
writeLines(as.character(vec), file("output.csv"), sep="\n")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...