Jak przypisać z funkcji, która zwraca więcej niż jedną wartość?

Nadal próbuję dostać się do logiki R ... jaki jest „najlepszy” sposób na rozpakowanie (w LHS) wyników z funkcji zwracającej wiele wartości?

Najwyraźniej nie mogę tego zrobić:

R> functionReturningTwoValues <- function() { return(c(1, 2)) }
R> functionReturningTwoValues()
[1] 1 2
R> a, b <- functionReturningTwoValues()
Error: unexpected ',' in "a,"
R> c(a, b) <- functionReturningTwoValues()
Error in c(a, b) <- functionReturningTwoValues() : object 'a' not found

czy muszę naprawdę robić następujące rzeczy?

R> r <- functionReturningTwoValues()
R> a <- r[1]; b <- r[2]

czy programista R napisałby coś takiego:

R> functionReturningTwoValues <- function() {return(list(first=1, second=2))}
R> r <- functionReturningTwoValues()
R> r$first
[1] 1
R> r$second
[1] 2

--- edytowane, aby odpowiedzieć na pytania Shane'a ---

Naprawdę nie potrzebuję nadawać nazw częściom z wynikami. Stosuję jedną funkcję agregującą do pierwszego komponentu i drugą do drugiego komponentu (min imax. gdyby była to ta sama funkcja dla obu komponentów, nie musiałbym ich dzielić).

questionAnswers(12)

yourAnswerToTheQuestion