2011-09-10 15 views
10

Załóżmy, że mam funkcję, która pobiera zmienne argumenty, takie jak sprintf(). Chcę coś takiego:Czy możesz przekazać wektor do vararg ?: Wektor do sprintf

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

, ale mam "a" i "b" w wektorze c ("a", "b"). Wywołanie, takie jak: spowoduje błąd w przypadku niewystarczającej liczby argumentów. Wiele języków umożliwia "spłaszczenie" wektora w argument o zmiennej długości. Ale nie mogę znaleźć składni do tego w R. Czy istnieje sposób?

Odpowiedz

17

Można użyć do.call:

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