[R] Alignment and Reshaping of the matrix
jim holtman
jholtman at gmail.com
Sun Mar 30 03:25:34 CEST 2008
Is this what you are after:
> x <- 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()
> odd <- seq(1, ncol(x), by=2)
> x.r <- range(x[,odd])
> # create large array starting from 1
> x.m <- matrix(0, ncol=length(odd), nrow=max(x.r))
> for (i in odd){
+ x.m[x[, i], (i + 1) / 2] <-x[, i + 1] # save values
+ }
> # add first column with index
> x.m <- cbind(seq(nrow(x.m)), x.m)
> # only print out the rows of interest
> x.m[x.r[1]:x.r[2],]
[,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:
> 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.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem you are trying to solve?
More information about the R-help
mailing list