[R] Creating a Matrix from a vector with some conditions

Petr Savicky savicky at cs.cas.cz
Sat Jan 8 23:52:23 CET 2011


On Thu, Jan 06, 2011 at 01:34:31PM -0800, ADias wrote:
> 
> Hi
> 
> Suppose we have an object with strings:
> 
> A<-c("a","b","c","d")
> 
> Now I do:
> 
> B<-matrix(A,4,4, byrow=F)
> 
> and I get
> 
> a a a a
> b b b b
> c c c c
> d d d d
> 
> But what I really want is:
> 
> a b c d
> b c d a
> c d a b
> d a b c
> 
> How can I do this?

Try the following

  v <- rep(c("a", "b", "c", "d"), times=2)
  a <- matrix(nrow=4, ncol=4)
  a[, ] <- v[row(a) + col(a) - 1]
  a
       [,1] [,2] [,3] [,4]
  [1,] "a"  "b"  "c"  "d" 
  [2,] "b"  "c"  "d"  "a" 
  [3,] "c"  "d"  "a"  "b" 
  [4,] "d"  "a"  "b"  "c" 

Petr Savicky.



More information about the R-help mailing list