2010-11-01 7 views

ответ

92

Альтернативой 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(). Я говорю «версия», потому что точность может быть уменьшена в печатных цифрах, а печатный объект может быть дополнен дополнительной информацией, например.

16

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

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

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

+3

Но не забывайте о завершающей новой линии. – hadley

+0

+1 @Shane Мне нужен кот («\ n») для чего-то другого, видя, что это помогло! спасибо – Alos

5

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

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

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