programacion plastico para papel llama film envolver como cocinar alimentos string r function

string - plastico - title python



FunciĆ³n alternativa para pegar. (5)

¿Hay alguna función que pueda ser una alternativa para pegar? Me gustaría saber si algo como esto existe en R:

> buildString ( "Hi {1}, Have a very nice {2} ! " , c("Tom", "day") )


Con la versión 1.1.0 (versión CRAN del 2016-08-19), el paquete stringr obtuvo una función de interpolación de cadenas str_interp() .

Con str_interp() son posibles los siguientes casos de uso:

Variables definidas en el entorno.

v1 <- "Tom" v2 <- "day" stringr::str_interp("Hi ${v1}, Have a very nice ${v2} !") #[1] "Hi Tom, Have a very nice day !"

Variables proporcionadas en una lista nombrada como parámetro

stringr::str_interp( "Hi ${v1}, Have a very nice ${v2} !", list("v1" = "Tom", "v2" = "day")) #[1] "Hi Tom, Have a very nice day !"

Variables definidas en un vector.

values <- c("Tom", "day") stringr::str_interp( "Hi ${v1}, Have a very nice ${v2} !", setNames(as.list(values), paste0("v", seq_along(values))) ) #[1] "Hi Tom, Have a very nice day !"

Tenga en cuenta que el vector de value solo puede contener datos de un tipo (una lista es más flexible) y los datos se insertan en el orden en que se proporcionan.


Creo que estás buscando sprintf.

Específicamente:

sprintf("Hi %s, Have a very nice %s!","Tom","day")


El paquete de whisker hace muy bien y merece una apreciación más amplia:

require(whisker) whisker.render ( "Hi {{name}}, Have a very nice {{noun}} ! " , list(name="Tom", noun="day") )


La función sprintf es un enfoque, como han mencionado otros, aquí hay otro enfoque que utiliza el paquete gsubfn :

> library(gsubfn) > who <- "Tom" > time <- "day" > fn$paste("Hi $who, have a nice $time") [1] "Hi Tom, have a nice day"


frankc y DWin tienen razón al señalarte a sprintf() .

Si, por algún motivo, sus piezas de repuesto realmente estarán en forma de un vector (es decir, c("Tom", "day") ), puede usar do.call() para pasarlas a sprintf() :

string <- "Hi %s, Have a really nice %s!" vals <- c("Tom", "day") do.call(sprintf, as.list(c(string, vals))) # [1] "Hi Tom, Have a really nice day!"