28

ご存知のように、列または行の次元が 1 の場合、R は行列をベクトルに縮小しようとします。次元のこの自動削除は、drop=Fコマンドを使用することで防ぐことができます。

ただし、現在、大規模な R パッケージを作成しており、コード内で数百回にわたって次元の削除を無効にする必要があるため、これらの場所を手動で見つけてdrop=F 何百回も追加する必要があります。

したがって、 Rの行列の次元削除を一般的に無効にするオプションまたは可能性があるかどうかを知りたいですか?

4

1 に答える 1

28

関数を再定義することでそれを行うことができます[

x <- matrix(1:4,2)

`[` <- function(...) base::`[`(...,drop=FALSE)
x[,1]
     [,1]
[1,]    1
[2,]    2

dropただし、今呼び出したときに引数をオーバーライドすることはできないため、控えめに使用し、完了したら削除することをお勧めします。

于 2012-08-30T13:50:28.597 に答える