2

次の方法で、評価の前に式を動的に作成しようとしています。

authors <- c("John1","John2")
exp1 <- "(Author1==%s & Author2==%s)"

次の文字列を取得したいと思います。

desired_output <- "(Author1==\"John1\" & Author2!=\"John2\")"

、これは eval() で評価できます。

私は試しました:sprintf(exp1,authors)、しかしそれはうまくいきません...解決策は何ですか?

4

1 に答える 1

4

あなたはこれを使うことができます:

library(plyr)
splat(sprintf)(c(exp1, authors))

またはライブラリなし:

do.call(sprintf,as.list(c(exp1,authors)))
于 2012-08-03T08:29:07.990 に答える