try this: > 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 0 1 0 0 1 0 0 0 1 b 1 0 0 0 1 1 1 1 0 0 c 0 1 0 1 0 0 0 0 1 0 d 0 1 0 0 0 1 0 0 1 1 e 0 0 1 1 0 1 1 0 1 1 > lapply(names(x), function(z) rownames(x)[x[[z]] == 1]) [[1]] [1] "b"
[[2]] [1] "c" "d" [[3]] [1] "a" "e" [[4]] [1] "c" "e" [[5]] [1] "b" [[6]] [1] "a" "b" "d" "e" [[7]] [1] "b" "e" [[8]] [1] "b" [[9]] [1] "c" "d" "e" [[10]] [1] "a" "d" "e" > On Thu, Aug 27, 2009 at 2:13 AM, Steven Kang<stochastick...@gmail.com> wrote: > 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. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? ______________________________________________ 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.