[R] Alignment and Reshaping of the matrix
Dimitris Rizopoulos
Dimitris.Rizopoulos at med.kuleuven.be
Sun Mar 30 11:16:46 CEST 2008
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>:
> Dear R users,
>
> I have a matrix like
>
> 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
>
> each pair of columns present a variable name and next the value. I have
> matrix with more than 500 rows and column.
>
> Now I want to convert this matrix in to.
>
> 85 .90 00 .00 00
> 86 .00 .89 .00 .87
> 87 .00 00 .98 00
> 88 .98 00 .76 00
> 89 .00 00 .89 .56
> 90 .67 .78 .76 .87
> 91 .56 00 .00 00
> 92 .00 .00 .00 .98
> 93 .00 .00 00 00
> 94 .00 .00 00 00
> 95 .00 .67 00 00
> 96 .00 .87 00 00
>
> Where first column represent the Variable name.
>
> And if the first matrix is transposed, then how to get the output in which
> First raw present the variable name.
>
> It will be great help for my research.
>
> Dinesh
>
> --
> Dinesh Kumar Barupal
> Research Associate
> Metabolomics Fiehn Lab
> UCD Genome Center
> 451 East Health Science Drive
> GBSF Builidng
> University of California
> DAVIS
> 95616
> http://fiehnlab.ucdavis.edu/staff/kumar
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>
>
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
More information about the R-help
mailing list