Jos*_*ien 25
frankc和DWin指出你是正确的sprintf().
如果由于某种原因,您的替换部件确实将采用矢量(即c("Tom", "day"))的形式,您可以使用do.call()它们将它们传递给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!"
Run Code Online (Sandbox Code Playgroud)
Gre*_*now 21
该sprintf函数是其他人提到的一种方法,这是使用该gsubfn包的另一种方法:
> library(gsubfn)
> who <- "Tom"
> time <- "day"
> fn$paste("Hi $who, have a nice $time")
[1] "Hi Tom, have a nice day"
Run Code Online (Sandbox Code Playgroud)
fra*_*nkc 18
我想你正在寻找sprintf.
特别:
sprintf("Hi %s, Have a very nice %s!","Tom","day")
Run Code Online (Sandbox Code Playgroud)
jve*_*ani 17
该whisker方案做得非常好,值得更广泛的赞赏:
require(whisker)
whisker.render ( "Hi {{name}}, Have a very nice {{noun}} ! " , list(name="Tom", noun="day") )
Run Code Online (Sandbox Code Playgroud)