1

2 次元行列を処理するためのrbind便利cbindな機能です。より多くの次元で同じ操作を実行するためのより一般的な関数はありますか? 次のようなデータがあるとします。

data <- lapply(c(11,22,33), function(i) matrix(i, nrow=2, ncol=4))

私が取得したいのはこれです:

data <- do.call(c, data)
dim(data) <- c(2, 4, 3)

しかし、すべての寸法を自分で計算する必要はありません。

この機能を提供する機能はありますか? 組み込みまたはかなり一般的なパッケージの一部としてですか? または、そのような機能を最もエレガントに実装する方法について、独自のアイデアを共有したいですか?

ボーナスポイント:

  • 関数が次元の順序をある程度制御できる場合、その後の の呼び出しをaperm避けることができます。
  • 複数の関数引数または引数のいずれかを渡すことで動作できればいいのですが、 orを使用すると、どちらでも十分です。listdo.calllist
  • そのような関数をforeach呼び出しの.combine引数として使用したいと思います。したがって、次の形式の呼び出しを使用して多次元行列を構築できる必要があります(各呼び出しは正確に 2 つの引数を取り、通常は最初の引数は前の呼び出しの結果です) または(3 つ以上の引数、最初の引数はまだ次の結果である可能性があります)前の呼び出し)、すべて同じサイズで、これらの次元よりも 1 次元が大きく、その次元のサイズが 4 の行列が得られます。これは、 から までの 4 つの要素に対応します。f(f(f(a, b), c), d)f(f(a, b), c, d)a, b, c, dad
4

1 に答える 1

2

abindパッケージにはまさにこの機能があり、あなたが言及したほとんどの機能を備えていますが、すべてを詳細に確認したわけではありません

少なくとも、これらの線に沿って何かを実装する方法の出発点になります。

于 2012-12-06T21:50:49.403 に答える