An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20110114/b3c9a913/attachment.pl>
filtering a dataframe with a vector of rownames
5 messages · Jonathan Hughes, Phil Spector, ANJAN PURKAYASTHA +1 more
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.
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20110114/6f1a2304/attachment.pl>
On 14.01.2011 19:25, 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)
replace the last line by rows.to.keep <- data[names.to.keep,] and please read the docs on indexing. Best, Uwe Ligges
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.
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20110114/e1be8476/attachment.pl>