Друк нових рядків з print () в R


111

Я намагаюся надрукувати багаторядкове повідомлення в Р. Наприклад,

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

Я отримую вихід

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

замість бажаного

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

Відповіді:


130

Альтернативою 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()для відображення рядка. Я кажу "версія", тому що точність може бути знижена в друкованих цифрах, а друкований об'єкт може бути доповнений додатковою інформацією, наприклад.


Як writelinesі "cat", схоже, не пише в змінну. Я намагався створити змінну рядка з кількома рядками. stringvar <- writeLines("line1\nline2")не призначає. stringvar повертається досі недійсним Будь-яка альтернатива?
сід

25

Ви можете зробити це:

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

Зверніть увагу, що catмає returnзначення NULL.


3
Але не забувайте про нову лінію.
хадлі

+1 @Shane Мені потрібна кішка ("\ n"), щоб щось ще допомогло! Дякую
Alos

7

Використання writeLines також дозволяє відмовитися від символу "\ n" нової лінії, використовуючи c(). А саме:

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

Це корисно, якщо ви плануєте написати багаторядкове повідомлення з комбінованим фіксованим та змінним входом, наприклад, [додатковий текст для третього рядка] вище.


-1

Ви також можете використовувати комбінацію catтаpaste0

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

Я вважаю це кориснішим при включенні змінних у роздруківку. Наприклад:

file <- "myfile.txt"
cat(paste0("File not supplied.\n", "Usage: ./program F=", file))
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.