Hi, dat1<- read.table(text=" Var Time 1 51 2 151 3 251 4 234 5 331 6 351 ",sep="",header=TRUE) dat1[!is.na(match(gsub(".*(\\d{2})$","\\1",dat1$Time),51)),] # Var Time #1 1 51 #2 2 151 #3 3 251 #6 6 351 #or dat1[substr(dat1$Time,nchar(dat1$Time)-1,nchar(dat1$Time))=="51",] # Var Time #1 1 51 #2 2 151 #3 3 251 #6 6 351
#or library(stringr) dat1[str_detect(dat1$Time,"51$"),] # Var Time #1 1 51 #2 2 151 #3 3 251 #6 6 351 #or dat1[grepl("51$",dat1$Time),] # Var Time #1 1 51 #2 2 151 #3 3 251 #6 6 351 #or dat1[str_sub(dat1$Time, start=-2)%in%51,] Var Time #1 1 51 #2 2 151 #3 3 251 #6 6 351 A.K. ----- Original Message ----- From: Ye Lin <ye...@lbl.gov> To: R help <r-help@r-project.org> Cc: Sent: Friday, May 17, 2013 5:01 PM Subject: [R] filter rows by value Hey All, I want to delete rows based on the last 2 digits on the value in one column but I dont know how to do that. Suppose my data looks like this: Var Time 1 51 2 151 3 251 *4 234* *5 331* 6 351 I want to delete the rows that the value in column "Time", the last 2 digit is not 51, in this case the rows highlighted will be removed. Thanks for your help! [[alternative HTML version deleted]] ______________________________________________ R-help@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. ______________________________________________ R-help@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.