Hi, On Thu, Jan 12, 2012 at 3:10 PM, dadrivr <[email protected]> wrote: > How do I subset data to only keep those rows of a dataframe where a > variable's value matches one item of a vector. For example, how do I keep > all of the rows (and all variables) where mydata$id equals one of the values > in keepid? See below? > > mydata <- NULL > mydata$id <- 1:30 > mydata$value <- seq(from=1,to=100, length.out=30) > keepid <- c(6,10,12,13,19,25,26,27,28,29)
You won't get two columns unless you create a data frame rather than a regular list. mydata <- data.frame(id = 1:30, value = seq(from=1,to=100, length.out=30)) > In other words, I want the output file to have two columns, 1) id and 2) > value, with only those rows where id equals one of the values in the keepid > vector. Thanks for your help! Here are two ways; more exist. mydata[mydata$id %in% keepid, ] subset(mydata, mydata$id %in% keepid) Thanks for including a small reproducible example. Sarah -- Sarah Goslee http://www.functionaldiversity.org ______________________________________________ [email protected] 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.

