众所周知,如果R的列维或行维为1,则R尝试将矩阵简化为 vector 。可以通过使用drop=F命令来防止尺寸的自动下降。

但是,我目前正在编写一个大的R包,并且需要在代码中几百次禁用降维功能,因此我将不得不手动查找这些位置并添加drop=F数百次。

因此,我想知道是否有任何选项或可能性来通常禁用R中矩阵的降维?

最佳答案

您可以通过重新定义[函数来做到这一点:

x <- matrix(1:4,2)

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

但是,现在调用时无法覆盖drop参数,因此您可能需要少量使用并在完成后删除。

关于r - 通常禁用矩阵降维?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12196724/

10-12 17:30