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.

Reply via email to