Generally disable dimension dropping for matrices?

As we all know, R tries to reduce matrices to vectors if its column- or row-dimension is 1. This automatic dropping of dimensions can be prevented by use of the drop=F command.

However, I am currently writing a large R package and would require to disable dimension dropping on several hundred occasions in my code, so that I would have to manually find these locations and add drop=F many hundred times.

Therefore, I would like to know if there's any option or possibility to generally disable dimension dropping for matrices in R?

Answers


You can do it by redefining the [ function:

x <- matrix(1:4,2)

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

You cannot override the drop argument when you call it now though, so you might want to use it sparingly and delete when done.


Need Your Help

Automatic versioning of Android build using git describe with Gradle

android git gradle android-build auto-versioning

I have searched extensively, but likely due to the newness of Android Studio and Gradle. I haven't found any description of how to do this. I want to do basically exactly what is described in this...

Styles.Render in MVC4

c# asp.net-mvc razor asp.net-mvc-4

In a .NET MVC4 project how does @Styles.Render works?