在R中设置功能参数的默认值

javadba

我想设定

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章