149 votes

Impression de nouvelles lignes avec print () en R

J'essaie d'imprimer un message multiligne dans R. Par exemple,

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

Je reçois la sortie

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

au lieu de la souhaitée

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

157voto

Gavin Simpson Points 72349

Une alternative à l' cat() est writeLines():

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

Un avantage est que vous n'avez pas à penser à ajouter un "\n" de la chaîne de caractères passée de cat() pour obtenir un retour à la ligne après votre message. E. g. comparer ci-dessus pour le même cat() sortie:

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

et

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

La raison en print() ne pas faire ce que vous voulez, c'est qu' print() vous montre une version de l'objet à partir du niveau R - dans ce cas, c'est une chaîne de caractères. Vous avez besoin d'utiliser d'autres fonctions telles que cat() et writeLines() affichage de la chaîne. Je dis "une version" parce que la précision peut être réduite dans des imprimés numériques, et de l'objet imprimé qui peut être complété avec des informations supplémentaires, par exemple.

32voto

Shane Points 40885

Tu peux le faire:

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

Notez que cat a une valeur de return de NULL .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X