Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
269 views
Welcome To Ask or Share your Answers For Others

1 Answer

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...