[R] Explanation w.r.t. rbind, please!

Gavin Simpson gavin.simpson at ucl.ac.uk
Fri Jan 29 12:33:55 CET 2010


On Fri, 2010-01-29 at 18:56 +0800, Uwe Dippel wrote:
> This is what I tried:
> 
>  > num.vec <- c(12.34,56.78,90.12,34.56)
>  > names(num.vec)<-c("first","second","third","fourth")
>  > num.vec
>  first second  third fourth
>  12.34  56.78  90.12  34.56
>  > seq<-(1:4)                          
>  > num.mat<-rbind(num.vec,seq)
>  > num.mat                   
>         first second third fourth
> num.vec 12.34  56.78 90.12  34.56
> seq      1.00   2.00  3.00   4.00
>  > num.vec [3:4]
>  third fourth 
>  90.12  34.56
> 
> (until here I'm fine)
> 
>  > num.mat [seq]
> [1] 12.34  1.00 56.78  2.00
>  > num.mat [num.vec]
> [1] NA NA NA NA   
>  > num.vec [seq]
>  first second  third fourth
>  12.34  56.78  90.12  34.56
>  > num.mat [num.vec]        
> [1] NA NA NA NA            
>  > num.mat [-seq]          
> [1] 90.12  3.00 34.56  4.00
> 
> (and here I'm lost!)
> 
> How could I display a row, instead of always seemingly falling back to 
> columns?

You're indexing the matrix as if it were a vector. Which is fine, except
that in R matrices are indexed by columns, hence the last result your
got - you dropped the first 4 entries which are the first two columns,
hence you got the last two columns of data.

Knowing this you could alter your seq to be seq(1, 8, by = 2):

> num.mat[seq(1, 8, by = 2)]
[1] 12.34 56.78 90.12 34.56

Thank full there is an easier way:

?`[`

has the details, look at arguments i and j.

> num.mat[1,]
 first second  third fourth 
 12.34  56.78  90.12  34.56

or, without the (col)names

> unname(num.mat[1,])
[1] 12.34 56.78 90.12 34.56


HTH

G

> 
> Uwe
> 
> ______________________________________________
> R-help at 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.
-- 
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
 Dr. Gavin Simpson             [t] +44 (0)20 7679 0522
 ECRC, UCL Geography,          [f] +44 (0)20 7679 0565
 Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
 Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
 UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%



More information about the R-help mailing list