[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