Actually R looks at it the other way around. It regards a matrix as a special case of a vector. A vector has no dimensions. A vector with dimensions is an array. An array with two dimensions is a matrix.
Try using drop=FALSE like this: m <- matrix(1:6, 3) m[, 2, drop = FALSE] On Mon, Mar 29, 2010 at 7:13 PM, yehengxin <xy...@hotmail.com> wrote: > > Why does R need the concept of "Vector"? In my opinion, it is a useless and > confusing concept. A vector is simply a special case of a matrix whose row > or column number is equal to 1. When I take submatrix from one matrix and > if row or column number is 1, R will automatically convert it into a vector. > It is very straightforward that a submatrix of a matrix should be a matrix. > In each time, I have to use as.matrix() to convert the vector back to > matrix. It is very annoying! > -- > View this message in context: > http://n4.nabble.com/Confusing-concept-of-vector-and-matrix-in-R-tp1707170p1707170.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.