Versuchen Sie immer noch, in die R-Logik einzusteigen ... Was ist der "beste" Weg, um (auf LHS) die Ergebnisse einer Funktion zu entpacken, die mehrere Werte zurückgibt?
Ich kann das anscheinend nicht machen:
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 nicht wirklich Namen geben. Ich wende eine Aggregatfunktion auf die erste Komponente und eine andere auf die zweite Komponente an ( min
und max
wenn es für beide Komponenten dieselbe Funktion wäre, müsste ich sie nicht aufteilen).
attr
Ihrer Information, eine andere Möglichkeit, mehrere Werte zurückzugeben, besteht darin, einen Rückgabewert festzulegen.