¿Hay alguna forma de imprimir texto y contenido variable en la misma línea? Por ejemplo,
wd <- getwd()
print("Current working dir: ", wd)
No pude encontrar nada sobre la sintaxis que me permitiera hacer esto.
¿Hay alguna forma de imprimir texto y contenido variable en la misma línea? Por ejemplo,
wd <- getwd()
print("Current working dir: ", wd)
No pude encontrar nada sobre la sintaxis que me permitiera hacer esto.
Respuestas:
Puedes usar pasteconprint
print(paste0("Current working dir: ", wd))
o cat
cat("Current working dir: ", wd)
cat()obtengo un NULLal final :(
print(cat("test", var)) que debería sercat("test", var)
{glue} ofrece una interpolación de cadenas mucho mejor, mira mi otra respuesta . Además, como Dainis menciona con razón,
sprintf()no está exento de problemas.
También hay sprintf():
sprintf("Current working dir: %s", wd)
Para imprimir en la salida de la consola, use cat()o message():
cat(sprintf("Current working dir: %s\n", wd))
message(sprintf("Current working dir: %s\n", wd))
sprintfno se imprime, solo formatea la cadena. Algo como print (sprintf (...)) es necesario dentro de los scripts.
O usando message
message("Current working dir: ", wd)
La respuesta de @agstudy es la más adecuada aquí
La forma más fácil de hacer esto es usar paste()
> paste("Today is", date())
[1] "Today is Sat Feb 21 15:25:18 2015"
paste0() daría como resultado lo siguiente:
> paste0("Today is", date())
[1] "Today isSat Feb 21 15:30:46 2015"
Observe que no hay separador predeterminado entre la cadena y x. Usar un espacio al final de la cadena es una solución rápida:
> paste0("Today is ", date())
[1] "Today is Sat Feb 21 15:32:17 2015"
Luego combine cualquiera de las funciones con print()
> print(paste("This is", date()))
[1] "This is Sat Feb 21 15:34:23 2015"
O
> print(paste0("This is ", date()))
[1] "This is Sat Feb 21 15:34:56 2015"
Como han dicho otros usuarios, también puedes usar cat()
El paquete {glue} ofrece interpolación de cadenas. En el ejemplo, {wd}se sustituye con el contenido de la variable. Las expresiones complejas también son compatibles.
library(glue)
wd <- getwd()
glue("Current working dir: {wd}")
#> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c
Creado el 13/05/2019 por el paquete reprex (v0.2.1)
Observe cómo la salida impresa no contiene los [1]artefactos y las "comillas, para lo cual se utilizan otras respuestas cat().
Como dijeron otros usuarios, cat () es probablemente la mejor opción.
@krlmlr sugirió usar sprintf () y actualmente es la tercera respuesta clasificada. sprintf () no es una buena idea. De la documentación de R:
La cadena de formato se pasa por la función sprintf del sistema operativo, y los formatos incorrectos pueden hacer que este último bloquee el proceso R.
No hay una buena razón para usar sprintf () sobre cat u otras opciones.
sep = ''o obtendrás un espacio extra.