まだRロジックに取り込もうとしています...複数の値を返す関数からの結果を(LHSで)アンパックする「最良の」方法は何ですか?
どうやらこれはできません:
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
私は本当に次のことをしなければなりませんか?
R> r <- functionReturningTwoValues()
R> a <- r[1]; b <- r[2]
または、Rプログラマーは次のように記述します。
R> functionReturningTwoValues <- function() {return(list(first=1, second=2))}
R> r <- functionReturningTwoValues()
R> r$first
[1] 1
R> r$second
[1] 2
---シェーンの質問に答えるために編集---
結果の値の部分に名前を付ける必要は本当にありません。私は、第二成分を第一成分と他の1つの集計関数を適用(AM min
とmax
。それは私が分割それらを必要としない両方の成分に対して同じ関数であった場合)。
attr
参考までに、複数の値を返す別の方法は、戻り値にを設定することです。