众所周知,如果列的行或行维度为1,则R会尝试将矩阵减少为向量。可以使用drop=F
命令来防止自动丢弃维度。
但是,我目前正在编写一个大型R包,并且需要在我的代码中禁用几百次的维度丢弃,因此我必须手动查找这些位置并添加drop=F
数百次。 / p>
因此,我想知道是否有任何选择或可能一般禁用R中矩阵的维度下降?
答案 0 :(得分:26)
您可以通过重新定义[
功能:
x <- matrix(1:4,2)
`[` <- function(...) base::`[`(...,drop=FALSE)
x[,1]
[,1]
[1,] 1
[2,] 2
现在调用它时不能覆盖drop
参数,因此您可能希望谨慎使用它并在完成后删除。