# [R] Matrix transformation problem

Eik Vettorazzi E.Vettorazzi at uke.uni-hamburg.de
Wed Jun 11 11:29:55 CEST 2008

```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
> 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

```