Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
243 views
in Technique[技术] by (71.8m points)

r - 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?

See Question&Answers more detail:os

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

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...