众所周知,如果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/