在向量中使用sprintf而不是向量,而不是使用可变数量的参数

ich*_*len 3 printf r

我想sprintf在R中使用带有可变数量参数的函数。是否可以将这些参数捆绑在一起形成字符向量或列表,以避免sprintf单独提供这些参数?

一个例子将阐明:

base_string = "(1) %s, (2) %s, (3) %s"
sprintf(base_string, "foo", "bar", "baz") # this works
sprintf(base_string, c("foo", "bar", "baz")) # this doesn't work
Run Code Online (Sandbox Code Playgroud)

在Python中,我可以使用

base_string = "(1) %s, (2) %s, (3) %s"
base_string % ("foo", "bar", "baz")
Run Code Online (Sandbox Code Playgroud)

akr*_*run 6

我们可以用 do.call

do.call(sprintf, c(fmt = base_string, as.list(v1)))
Run Code Online (Sandbox Code Playgroud)

数据

v1 <- c("foo", "bar", "baz")
Run Code Online (Sandbox Code Playgroud)