Wie kann ich eine Funktion zuweisen, die mehr als einen Wert zurückgibt?

Versuchen Sie immer noch, sich mit der R-Logik zu befassen ... Wie lassen sich die Ergebnisse einer Funktion, die mehrere Werte zurückgibt, am besten (auf LHS) entpacken?

Ich kann das anscheinend nicht tun:

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

muss ich wirklich folgendes tun?

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

oder würde der R-Programmierer so etwas schreiben:

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

--- bearbeitet um Shane's Fragen zu beantworten ---

Ich muss den Ergebniswertteilen keine Namen geben. Ich wende eine Aggregatfunktion auf die erste Komponente und eine andere auf die zweite Komponente an (min undmax. Wenn es die gleiche Funktion für beide Komponenten wäre, müsste ich sie nicht aufteilen.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage