2015-02-03 3 views
1

В R: Возможно ли исключить пустую строку в конце текстового файла, созданного writeLines? Если нет, есть ли другой способ генерации текстового файла из R без пустой строки в конце?Избегайте пустых строк в конце файла при использовании writeLines

+1

Так что вы не хотите, чтобы последняя строка заканчивалась символом новой строки? Это то, что вы подразумеваете под пустым линией? Какой код вы фактически используете? – MrFlick

ответ

4

Пустая строка отсутствует.

R (правильно) заканчивается на каждой строке '\n' (или '\r\n' на Windows). Другими словами, файл состоит из строк, и каждая строка заканчивается разрывом строки.

К сожалению, есть много инструментов (особенно в Windows), которые неправильно обрабатывают такие файлы и отображают дополнительную строку в конце. Однако это ошибка с этими инструментами, а не с R. Следовательно, это не должно быть исправлено в коде R.

Как взломать умиротворить багги инструменты, единственным выходом будет установить sep аргумент writeLines в пустую строку, '' и вставить разрыв строки между линии вручную (с помощью paste).

+0

Спасибо, теперь я понимаю, регресс решил проблему для меня: 'fileConn <- file (" mytext.txt ") writeLines (вставить (c (" line1 "," line2 "," line3 "), collapse = "\ n"), sep = "", fileConn) close (fileConn) ' – user3298179

+0

@ user3298179 Хм, я очень неохотно добавил последний абзац к моему ответу, потому что ** вы должны * не * делать это ** , Весь мой ответ заключался в том, что R уже делает правильную вещь, а ваш новый код делает не то. –

+2

Для моей конкретной цели я сделал это так. Я сгенерировал sh-файлы с целью запуска R-скриптов на Sun Grid Engine. При разрыве линии в конце последней строки они бросали ошибки. Поэтому я согласен, что это неправильный способ сделать это, но регресс может быть полезен для конкретных целей. – user3298179

Смежные вопросы