Sto ancora cercando di entrare nella logica R ... qual è il modo "migliore" per decomprimere (su LHS) i risultati da una funzione che restituisce più valori?
Apparentemente non posso farlo:
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
devo davvero fare quanto segue?
R> r <- functionReturningTwoValues()
R> a <- r[1]; b <- r[2]
o il programmatore R scriverebbe qualcosa di più simile a questo:
R> functionReturningTwoValues <- function() {return(list(first=1, second=2))}
R> r <- functionReturningTwoValues()
R> r$first
[1] 1
R> r$second
[1] 2
--- modificato per rispondere alle domande di Shane ---
Non ho davvero bisogno di dare nomi alle parti del valore del risultato. Sto applicando una funzione aggregata al primo componente e un'altra al secondo componente ( min
e max
. Se fosse la stessa funzione per entrambi i componenti non avrei bisogno di dividerli).
attr
valore di ritorno.