MATLAB では、次の例のように、関数が複数の出力を返す可能性があります。
[x y] = size(someMatrix);
Rでこのようなことは可能ですか?すべての関数は、多くても 1 つの引数を返すようです。たとえば、次のコードのように、1 つのコマンドでデータ フレームの行数と列数を宣言すると便利です。
[x y] <- dim(some.data.frame)
調べましたが、この質問に対する答えが見つかりません。
R パラダイムは、一緒に属するものをグループ化することです。
そのため、 dim(obj) は 2 つの個別の変数ではなく、2 つの値のベクトルを返します。別のプログラミング言語の背景を持つ人にとって、これは最初は直感に反するように思えるかもしれません。しかし、コードが読みやすくなり、多くの R 関数やパッケージで期待されています。
を使用list()
して、(任意のタイプの) 複数のオブジェクトをグループ化し、関数内からそのリストを返すことができます。
multiple_returns <- function() {
a <- "char"
b <- 1
c <- matrix(c(1,2,3,4), ncol=2)
return(list(a, b, c))
}
returned <- multiple_returns()
returned[[1]]
returned[[2]]
returned[[3]]