Dear R users,

I am trying to extract the rownames of a data set for which each columns
meet a certain criteria. (condition - elements of each column to be equal
1)

I have the correct result, however I am seeking for more efficient (desire
vectorization) way in implementing such problem as it can get quite messy if
there are hundreds of columns.

Arbitrary data set and codes are shown below for your reference:

x <- as.data.frame(matrix(round(runif(50),0),nrow=5))

rownames(x) <- letters[1:dim(x)[1]]

> x
  V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
a  0  1   1    1   0   0    0   0   1    0
b  1  1   1    1   0   1    0   0   1    1
c  0  1   1    0   0   0    0   0   0    1
d  1  0   0    1   1   1    1   1   0    0
e  1  0   0    0   0   1    1   0   1    0

V1.ind <- rownames(x)[x[,"V1"]==1]
V2.ind <- rownames(x)[x[,"V2"]==1]
V3.ind <- rownames(x)[x[,"V3"]==1]
V4.ind <- rownames(x)[x[,"V4"]==1]
:
:
V10.ind <- rownames(x)[x[,"V10"]==1]

> V1.ind
[1] "b" "d" "e"
> V2.ind
[1] "a" "b" "c"
> V3.ind
[1] "a" "b" "c"
:
:
> V10.ind
[1] "b" "c"



Your expertise in resolving this issue would be highly appreciated.


Steve

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to