19

貼り付けに代わる機能はありますか?このようなものがRに存在するかどうかを知りたい:

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

5 に答える 5

27

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!"
于 2012-04-26T20:53:45.330 に答える
21

他のsprintf人が言及したように、関数は1つのアプローチですが、gsubfnパッケージを使用した別のアプローチは次のとおりです。

> library(gsubfn)
> who <- "Tom"
> time <- "day"
> fn$paste("Hi $who, have a nice $time")
[1] "Hi Tom, have a nice day"
于 2012-04-26T21:41:41.743 に答える
19

あなたはsprintfを探していると思います。

具体的には:

sprintf("Hi %s, Have a very nice %s!","Tom","day")
于 2012-04-26T20:43:14.757 に答える
17

このwhiskerパッケージはこれを非常にうまく行っており、より広く評価されるに値します:

require(whisker)
whisker.render ( "Hi {{name}}, Have a very nice {{noun}} ! " , list(name="Tom", noun="day") )
于 2012-04-27T01:30:22.373 に答える