Karin Lagesen
2008-Feb-05 15:47 UTC
[R] extracting rows from dataframe that match a vector
Hi! I have a large dataframe that I want to extract a subset from. This subset has a certain column value that matches elements in a vector I have defined. So, my question is how do I get the rows that match one of the elements in the vector. Example: a = c(1:5) b = letters[1:10] df = data.frame(ind = a, letrs = b)> dfind letrs 1 1 a 2 2 b 3 3 c 4 4 d 5 5 e 6 1 f 7 2 g 8 3 h 9 4 i 10 5 j># Now I want to extract all of the rows where ind == 2, 4 or 5. # This would be rows 2, 4, 5, 7, 9 and 10 subgr = c(2,4,6) My most natural inclination would be to do df[df$ind == subgr,] However, this does not work:> df[df$ind == subgr,]ind letrs 7 2 g Warning message: In df$ind == subgr : longer object length is not a multiple of shorter object length>So, which part of this is it that I have misunderstood? Thanks for your help btw! Karin -- Karin Lagesen, PhD student karin.lagesen at medisin.uio.no http://folk.uio.no/karinlag
You almost got it right. THe solution is df[df$ind %in% subgr,] See ?"%in%" G. On Tue, Feb 05, 2008 at 04:47:02PM +0100, Karin Lagesen wrote:> > Hi! > > I have a large dataframe that I want to extract a subset from. This > subset has a certain column value that matches elements in a vector I > have defined. So, my question is how do I get the rows that match one > of the elements in the vector. > > Example: > > a = c(1:5) > b = letters[1:10] > df = data.frame(ind = a, letrs = b) > > > df > ind letrs > 1 1 a > 2 2 b > 3 3 c > 4 4 d > 5 5 e > 6 1 f > 7 2 g > 8 3 h > 9 4 i > 10 5 j > > > > > # Now I want to extract all of the rows where ind == 2, 4 or 5. > # This would be rows 2, 4, 5, 7, 9 and 10 > > subgr = c(2,4,6) > > My most natural inclination would be to do > > df[df$ind == subgr,] > > However, this does not work: > > > > df[df$ind == subgr,] > ind letrs > 7 2 g > Warning message: > In df$ind == subgr : > longer object length is not a multiple of shorter object length > > > > So, which part of this is it that I have misunderstood? > > Thanks for your help btw! > > Karin > -- > Karin Lagesen, PhD student > karin.lagesen at medisin.uio.no > http://folk.uio.no/karinlag > > ______________________________________________ > 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.-- Csardi Gabor <csardi at rmki.kfki.hu> UNIL DGM