Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Generally disable dimension dropping for matrices?

Tags:

r

matrix

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?

like image 308
Wolfgang Pößnecker Avatar asked Aug 30 '12 12:08

Wolfgang Pößnecker


1 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.

like image 125
James Avatar answered Oct 02 '22 12:10

James