Печать новых строк с помощью print() в R

Я пытаюсь напечатать многострочное сообщение в R. Например,

print("File not supplied.\nUsage: ./program F=filename",quote=0)

Я получаю вывод

File not supplied.\nUsage: ./program F=filename

вместо желаемого

File not supplied.
Usage: ./program F=filename

Ответ 1

Альтернативой cat() является writeLines():

> writeLines("File not supplied.\nUsage: ./program F=filename")
File not supplied.
Usage: ./program F=filename
>

Преимущество состоит в том, что вам не нужно запоминать добавление "\n" к строке, переданной в cat(), чтобы получить новую строку после вашего сообщения. Например. сравните приведенное выше с тем же результатом cat():

> cat("File not supplied.\nUsage: ./program F=filename")
File not supplied.
Usage: ./program F=filename>

и

> cat("File not supplied.\nUsage: ./program F=filename","\n")
File not supplied.
Usage: ./program F=filename
>

Причина print() не делает то, что вы хотите, так это то, что print() показывает вам версию объекта с уровня R - в этом случае это символьная строка. Для отображения строки вам необходимо использовать другие функции, такие как cat() и writeLines(). Я говорю "версия", потому что точность может быть уменьшена в печатных цифрах, а печатный объект может быть дополнен дополнительной информацией, например.

Ответ 2

Вы можете сделать это:

cat("File not supplied.\nUsage: ./program F=filename\n")

Обратите внимание, что cat имеет значение return NULL.

Ответ 3

Использование writeLines также позволяет обойтись символом "\n" новой строки, используя c(). Как в:

writeLines(c("File not supplied.","Usage: ./program F=filename",[additional text for third line]))

Это полезно, если вы планируете писать многострочное сообщение с комбинированным фиксированным и переменным вводом, например, [дополнительный текст для третьей строки] выше.