你能把矢量传递给vararg吗?:向sprintf传递

Ara*_*ian 12 printf r vector

假设我有一个带变量参数的函数,比如sprintf().我想要的东西:

sprintf("%s %s", "a", "b")
Run Code Online (Sandbox Code Playgroud)

但我在矢量c("a","b")中有"a"和"b".像这样的电话

sprintf("%s %s", c("a", "b"))
Run Code Online (Sandbox Code Playgroud)

会因为参数不足而产生错误.许多语言提供了一种将矢量"展平"为可变长度参数的方法.但我似乎无法在R中找到这样做的语法.有办法吗?

Jos*_*ich 22

你可以使用do.call:

vec <- c("a","b")
do.call(sprintf, c(list("%s %s"), vec))
# [1] "a b"
Run Code Online (Sandbox Code Playgroud)