web-dev-qa-db-fra.com

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
101
highBandWidth

Une alternative à cat() est writeLines():

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

Un avantage est que vous ne devez pas oublier d'ajouter un "\n" À la chaîne passée à cat() pour obtenir une nouvelle ligne après votre message. Par exemple. compare ce qui précède à la même sortie cat():

> 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 pour laquelle print() ne fait pas ce que vous voulez est que print() vous montre une version de l'objet du niveau R - dans ce cas, il s'agit d'une chaîne de caractères. Vous devez utiliser d'autres fonctions telles que cat() et writeLines() pour afficher la chaîne. Je dis "une version" car la précision peut être réduite en chiffres imprimés, et l'objet imprimé peut être augmenté d'informations supplémentaires, par exemple.

116
Gavin Simpson

Tu peux le faire:

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

Notez que cat a une valeur return de NULL.

19
Shane

Utiliser writeLines vous permet également de vous passer du caractère de nouvelle ligne "\ n", en utilisant c(). Un péché:

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

Ceci est utile si vous envisagez d'écrire un message multiligne avec une combinaison de saisie fixe et variable, tel que le [texte complémentaire pour la troisième ligne] ci-dessus.

5
user5699217