[R] Keep rows where a variable matches one item of a vector
Sarah Goslee
sarah.goslee at gmail.com
Thu Jan 12 21:57:33 CET 2012
Hi,
On Thu, Jan 12, 2012 at 3:10 PM, dadrivr <dadrivr at gmail.com> 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
More information about the R-help
mailing list