Skip to content

Alignment and Reshaping of the matrix

3 messages · dinesh kumar, jim holtman, Dimitris Rizopoulos

#
Is this what you are after:
+ 88 .98 90 .78 88 .76 89 .56
+ 90 .67 95 .67 89 .89 90 .87
+ 91 .56 96 .87 90 .76 92 .98"))
+     x.m[x[, i], (i + 1) / 2] <-x[, i + 1]  # save values
+ }
[,1] [,2] [,3] [,4] [,5]
 [1,]   85 0.90 0.00 0.00 0.00
 [2,]   86 0.00 0.89 0.00 0.87
 [3,]   87 0.00 0.00 0.98 0.00
 [4,]   88 0.98 0.00 0.76 0.00
 [5,]   89 0.00 0.00 0.89 0.56
 [6,]   90 0.67 0.78 0.76 0.87
 [7,]   91 0.56 0.00 0.00 0.00
 [8,]   92 0.00 0.00 0.00 0.98
 [9,]   93 0.00 0.00 0.00 0.00
[10,]   94 0.00 0.00 0.00 0.00
[11,]   95 0.00 0.67 0.00 0.00
[12,]   96 0.00 0.87 0.00 0.00
On Sat, Mar 29, 2008 at 7:21 PM, dinesh kumar <barupal at gmail.com> wrote:

  
    
#
try this:

mat <- data.matrix(read.table(
textConnection("85 .90 86 .89 87 .98 86 .87
  88 .98 90 .78 88 .76 89 .56
  90 .67 95 .67 89 .89 90 .87
  91 .56 96 .87 90 .76 92 .98")))
closeAllConnections()

nc <- ncol(mat)
labs <- mat[, seq(1, nc, 2)]
vals <- mat[, -seq(1, nc, 2)]
lis <- split(c(vals, col(vals)), c(labs, labs))
t(sapply(lis, function(x, out){
     nx <- length(x)
     ind <- seq(1, nx/2)
     out[x[-ind]] <- x[ind]
     out
}, out = numeric(nc/2)))


I hope it helps.

Best,
Dimitris

----
Dimitris Rizopoulos
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/(0)16/336899
Fax: +32/(0)16/337015
Web: http://med.kuleuven.be/biostat/
      http://www.student.kuleuven.be/~m0390867/dimitris.htm


Quoting dinesh kumar <barupal at gmail.com>:
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm