# Re: [R] Matrix transformation problem

From: Eik Vettorazzi <E.Vettorazzi_at_uke.uni-hamburg.de>
Date: Wed, 11 Jun 2008 11:29:55 +0200

you may try a matrix multiplication, which has a very high performance in R

x%*%1:ncol(x)

hth.

> ng,
>
> I have a matrix (x) with binary content. Each row of the matrix holds exactly one 1, and the rest of the row is zeros. The thing is that I need to 'collapse' the matrix to one column where each row holds the original column index of the 1's (y). Sometimes, the matrix is quite large, so I have a perfomance problem.
>
> x <- matrix(c(1,0,0, 0,0,1, 0,1,0, 0,0,1, 0,1,0, 1,0,0),ncol=3,byrow=T)
> x
> [,1] [,2] [,3]
> [1,] 1 0 0
> [2,] 0 0 1
> [3,] 0 1 0
> [4,] 0 0 1
> [5,] 0 1 0
> [6,] 1 0 0
>
> In the matrix above, on the first row, the 1 is in column 1, hence '1' on the first row in the matrix below. On the second row in the matrix above, the 1 is in column 3, hence the '3' on the second row in the matrix below. And so on...
>
> y
> [,1]
> [1,] 1
> [2,] 3
> [3,] 2
> [4,] 3
> [5,] 2
> [6,] 1
>
> ______________________________________________
> 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.
>

--
Eik Vettorazzi
Institut für Medizinische Biometrie und Epidemiologie
Universitätsklinikum Hamburg-Eppendorf

Martinistr. 52
20246 Hamburg

T ++49/40/42803-8243
F ++49/40/42803-7790

______________________________________________
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.
Received on Wed 11 Jun 2008 - 12:35:37 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 11 Jun 2008 - 13:30:38 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.