1

今日、私は行列のすべての負の値を 0 に置き換えたいコードを作成していました。この行列を B と呼びます。これは問題ありませんでした。

B[which(B<0)]=0

でも、ちょっと気になったので、 which を取り除いて書いてみたらどうだろう?

B[B<0]=0

そして驚いたことに、これも同じ答えを出しました。Stack Overflow でこの質問を調べた場合、2 番目の答えはかなり標準的です (さらに複雑で高速な方法があります) が、私の質問は、上記の 2 つの方法は実際には同じですか? B<0 はブール行列を返します。どちらの方法がより高速で、その理由は?

4

2 に答える 2

2

はい、論理ベクトルでインデックスを作成できます。ここで説明されています: http://cran.r-project.org/doc/manuals/r-release/R-intro.html#Index-vectors

于 2013-05-22T03:16:54.673 に答える