Можете ли вы передать вектор vararg ?: Вектор к sprintf - PullRequest
11 голосов
/ 10 сентября 2011

Допустим, у меня есть функция, которая принимает переменные аргументы, такие как sprintf ().Я хочу что-то вроде:

sprintf("%s %s", "a", "b")

, но у меня есть "a" и "b" в векторе c ("a", "b").Вызов, такой как

sprintf("%s %s", c("a", "b"))

, приведет к ошибке при недостаточном количестве аргументов.Многие языки предоставляют способ «сплющить» вектор в аргумент переменной длины.Но я не могу найти синтаксис для этого в R. Есть ли способ?

1 Ответ

20 голосов
/ 10 сентября 2011

Вы можете использовать do.call:

vec <- c("a","b")
do.call(sprintf, c(list("%s %s"), vec))
# [1] "a b"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...