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) 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! -- View this message in context: http://r.789695.n4.nabble.com/Keep-rows-where-a-variable-matches-one-item-of-a-vector-tp4290297p4290297.html Sent from the R help mailing list archive at Nabble.com.
Keep rows where a variable matches one item of a vector
2 messages · Petersen, Isaac T, Sarah Goslee
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