我想在R中使用sprintf
函数,并使用可变数量的参数。我可以将这些参数捆绑在一个字符向量或列表中,以便避免将这些参数分别提供给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
在Python中,我可以使用
base_string = "(1) %s, (2) %s, (3) %s"
base_string % ("foo", "bar", "baz")
答案 0 :(得分:5)
我们可以使用do.call
do.call(sprintf, c(fmt = base_string, as.list(v1)))
v1 <- c("foo", "bar", "baz")