【发布时间】:2011-11-14 04:34:58
【问题描述】:
假设我有一个接受可变参数的函数,例如 sprintf()。我想要类似的东西:
sprintf("%s %s", "a", "b")
但我在向量 c("a", "b") 中有 "a" 和 "b"。
之类的调用sprintf("%s %s", c("a", "b"))
参数不足会产生错误。许多语言提供了一种将向量“展平”为可变长度参数的方法。但我似乎在 R 中找不到这样做的语法。有没有办法?
【问题讨论】:
假设我有一个接受可变参数的函数,例如 sprintf()。我想要类似的东西:
sprintf("%s %s", "a", "b")
但我在向量 c("a", "b") 中有 "a" 和 "b"。
之类的调用sprintf("%s %s", c("a", "b"))
参数不足会产生错误。许多语言提供了一种将向量“展平”为可变长度参数的方法。但我似乎在 R 中找不到这样做的语法。有没有办法?
【问题讨论】:
你可以使用do.call:
vec <- c("a","b")
do.call(sprintf, c(list("%s %s"), vec))
# [1] "a b"
【讨论】: