# Re: [R] convert vector to matrix

From: Gavin Simpson <gavin.simpson_at_ucl.ac.uk>
Date: Wed 04 Oct 2006 - 22:54:45 GMT

On Wed, 2006-10-04 at 19:55 -0200, Alberto Monteiro wrote:
> Gavin Simpson wrote:
> >
> > Did you even try to use cbind on your vector? I guess not as,
> >
> > > vec <- 1:10
> > > mat <- cbind(vec)
> > > mat
> >
> Why does mat remain a matrix instead of "losing" one dimension?
> I am reading the FAQ at...
> http://cran.us.r-project.org/doc/FAQ/R-FAQ.html#Why-do-my-matrices-lose-
> dimensions_003f
> ... and it seems that anything you do to mat should turn it back
> into a one-dimensional vector.

Dear Alberto,

That FAQ is referring to subsetting a matrix, and as yet, the code above has not subsetted mat at all - indeed, we have only created it and then examined it's class, if we were to now look at rows 2:5, then we'd see that mat loses a dimension and reverts to a vector:

> vec <- 1:10
> mat <- cbind(vec)
> mat

vec

``` [1,]   1
[2,]   2
[3,]   3
[4,]   4
[5,]   5
[6,]   6
[7,]   7
[8,]   8
[9,]   9
```

[10,] 10
> mat[2:5,]

 2 3 4 5
> vec[2:5]

 2 3 4 5
> class(mat[2:5,])

 "integer"
> class(vec[2:5])

 "integer"
> all.equal(mat[2:5,], vec[2:5])

 TRUE To preserve dimensions, we use drop = FALSE, as discussed in the FAQ you quote:

> mat[2:5, , drop = FALSE]

vec

```[1,]   2
[2,]   3
[3,]   4
[4,]   5
```

> class(mat[2:5, , drop = FALSE])

 "matrix"

HTH G

```--
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
*Note new Address and Fax and Telephone numbers from 10th April 2006*
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
Gavin Simpson                     [t] +44 (0)20 7679 0522
ECRC                              [f] +44 (0)20 7679 0565
UCL Department of Geography
Pearson Building                  [e] gavin.simpsonATNOSPAMucl.ac.uk
Gower Street
London, UK                        [w] http://www.ucl.ac.uk/~ucfagls/cv/
WC1E 6BT                          [w] http://www.ucl.ac.uk/~ucfagls/
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help