2010-11-01 17 views
85

Estoy tratando de imprimir un mensaje de varias líneas en R. Por ejemplo,nuevas líneas de impresión con la impresión() en I

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

que reciben la salida

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

en lugar de la deseada

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

Respuesta

92

Una alternativa a cat() es writeLines():

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

Una ventaja es que usted no tiene que acordarse de añadir una "\n" a la cadena pasada a cat() para obtener una nueva línea después de su mensaje. P.ej. comparar lo anterior con el mismo cat() de salida:

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

y

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

La razón print() no hace lo que quiere es que print() que muestra una versión del objeto desde el nivel I - en este caso es una cadena de caracteres. Necesitará usar otras funciones como cat() y writeLines() para visualizar la cadena. Digo "una versión" porque la precisión se puede reducir en los números impresos, y el objeto impreso se puede aumentar con información adicional, por ejemplo.

16

Puede hacer esto:

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

Observe que cat tiene un valor return de NULL.

+3

Pero no se olvide de la nueva línea final. – hadley

+0

+1 @Shane ¡Necesitaba el gato ("\ n") para algo más viendo esto ayudado! Gracias – Alos

5

El uso de writeLines también le permite prescindir del carácter de línea nueva "\ n", utilizando c(). Como en:

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

Esto es útil si tiene previsto en la escritura de un mensaje de varias líneas con la entrada combinada fija y variable, como el [texto adicional para la tercera línea] anteriormente.

Cuestiones relacionadas