1

MATLAB では、次の例のように、関数が複数の出力を返す可能性があります。

[x y] = size(someMatrix);

Rでこのようなことは可能ですか?すべての関数は、多くても 1 つの引数を返すようです。たとえば、次のコードのように、1 つのコマンドでデータ フレームの行数と列数を宣言すると便利です。

[x y] <- dim(some.data.frame)

調べましたが、この質問に対する答えが見つかりません。

4

1 に答える 1

4

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]]
于 2013-11-05T16:12:02.520 に答える