[R] filtering a dataframe with a vector of rownames

Phil Spector spector at stat.berkeley.edu
Fri Jan 14 19:47:57 CET 2011


Jonathan -
    To make your approach work, you'd need to replace ==
with %in%:

> rows.to.keep<-which(rownames(data) %in% names.to.keep)
[1] 1 3 4

But to answer you're original question, remember that the
point of rownames is that they can be used to index a 
data frame:

> data[rows.to.keep,]
   [,1] [,2]
a    1    2
c    3    4
d    4    5


 					- Phil Spector
 					 Statistical Computing Facility
 					 Department of Statistics
 					 UC Berkeley
 					 spector at stat.berkeley.edu



On Fri, 14 Jan 2011, Jonathan Hughes wrote:

>
>
> Hello,
>
> Here's my problem. I have a large data frame and a vector with some of its row names. I'd like to have a new data frame only with those rows that match this vector of row names.
>
> I tried this:
>
> data<-cbind(c(1,2,3,4,5,6),c(2,3,4,5,6,7))
> rownames(data)<-c("a", "b", "c","d","e","f")
> names.to.keep<-c("a", "c", "d")
> rows.to.keep<-which(rownames(data)==names.to.keep)
>
> But it didn't work. Any suggestions?
>
> thanks a lot.
>
> Jonathan.
>
> 	[[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.
>



More information about the R-help mailing list