web-dev-qa-db-ja.com

Rのreshape vs. reshape2

開発がreshapeからreshape2パッケージに移行した理由を理解しようとしています。機能的には同じように見えますが、現在サーバーで実行されているRの古いバージョンが原因でreshape2にアップグレードできません。私は、reshapeの開発を単に継続するのではなく、開発をまったく新しいパッケージに移行させる大きなバグの可能性を心配しています。 reshapeパッケージに重大な欠陥があるかどうかは誰にもわかりませんか?

48
Alex

reshape2再起動されたreshapeをHadleyにさせることで、人々の依存関係や習慣を破壊することを避けながら、はるかに高速になりました。

https://stat.ethz.ch/pipermail/r-packages/2010/001169.html

Reshape2は、reshapeパッケージの再起動です。パッケージの最初のリリースから5年以上が経過しましたが、その間にRプログラミングとRでのデータの操作方法について非常に多くのことを学びました。Reshape2はその知識を使用して、焦点が絞られ、はるかに高速になります。

このバージョンは、機能を犠牲にして速度を改善します。そのため、既存のユーザーに問題が発生しないように、名前をreshape2に変更しました。ユーザーのフィードバックに基づいて、これらの機能の一部を再紹介する場合があります。

reshape2の新機能:

  • サブセット化の能力と速度を最大限に活用し、ほとんどの場合、データの単一コピーのみを作成するはるかに優れた基盤アルゴリズムのおかげで、かなり高速でメモリ効率が向上します。

  • castは、出力タイプに応じて2つの関数に置き換えられます。dcastはデータフレームを生成し、acastは行列/配列を生成します。

  • 多次元マージンが可能になりました:grand_rowgrand_colは削除されました:マージンの名前は、値が(all)に設定された変数を参照するようになりました。

  • |キャスト演算子などの一部の機能、および集約関数から複数の値を返す機能が削除されました。私はこれら両方の操作がplyrによってより良く実行されると合理的に確信しています。

  • 関数に基づいて形状を変更できる新しいキャスト構文
    変数(plyrと同じ基礎構文に基づく):

  • 名前空間やテストなどの開発プラクティスの改善。

65
Matt Parker