設定したい
byrow=TRUE
のデフォルトの動作として
matrix()
Rで機能します。これを行う方法はありますか?
formals<-
置換機能を使用できます。
ただし、最初にmatrix()
新しい関数にコピーして、それを使用する他の関数を台無しにしたり、正式な引数を変更した結果としてRに混乱を引き起こしたりしないようにすることをお勧めします。ここで私はそれを呼びますmyMatrix()
myMatrix <- matrix
formals(myMatrix)$byrow <- TRUE
## safety precaution - remove base from myMatrix() and set to global
environment(myMatrix) <- globalenv()
これmyMatrix()
はmatrix()
、byrow
引数(そしてもちろん環境)を除いてと同じです。
> myMatrix
function (data = NA, nrow = 1, ncol = 1, byrow = TRUE, dimnames = NULL)
{
if (is.object(data) || !is.atomic(data))
data <- as.vector(data)
.Internal(matrix(data, nrow, ncol, byrow, dimnames, missing(nrow),
missing(ncol)))
}
そしてmatrix()
、これがデフォルトの引数とmyMatrix()
そのデフォルトの引数で示されているテスト実行です。
matrix(1:6, 2)
# [,1] [,2] [,3]
# [1,] 1 3 5
# [2,] 2 4 6
myMatrix(1:6, 2)
# [,1] [,2] [,3]
# [1,] 1 2 3
# [2,] 4 5 6
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加