通常禁用矩阵的维度下降?

时间:2012-08-30 12:20:29

标签: r matrix

众所周知,如果列的行或行维度为1,则R会尝试将矩阵减少为向量。可以使用drop=F命令来防止自动丢弃维度。

但是,我目前正在编写一个大型R包,并且需要在我的代码中禁用几百次的维度丢弃,因此我必须手动查找这些位置并添加drop=F数百次。 / p>

因此,我想知道是否有任何选择或可能一般禁用R中矩阵的维度下降?

1 个答案:

答案 0 :(得分:26)

您可以通过重新定义[功能:

来实现
x <- matrix(1:4,2)

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

现在调用它时不能覆盖drop参数,因此您可能希望谨慎使用它并在完成后删除。