David's almost works except it catches the "MONTH" column, just add an empty metacharacter tho.
c("DAY", "MONTH", "YEAR", "SA_TUES", "SA_MON", "SU_WED", "CH_TUES", "CH_WED", "CH_MON", "AR_TUES", "AR_WED", "AR_MON", "SA_THUR", "SU_FRI", "CH_THUR", "CH_FRI", "AR_THUR", "AR_FRI")-> columns sa_ind <- grep("SA_",columns) days <- gsub("SA_","", columns[sa_ind]) days <- paste0(days,"$") selected <- lapply(days, function(x) grep(x,columns)) selected <- sort(unique(unlist(all_ind))) columns[selected] [1] "SA_TUES" "SA_MON" "CH_TUES" "CH_MON" "AR_TUES" "AR_MON" "SA_THUR" "CH_THUR" "AR_THUR" On Wed, Feb 18, 2015 at 2:55 PM, David Winsemius <dwinsem...@comcast.net> wrote: > > On Feb 18, 2015, at 12:27 PM, Kate Ignatius wrote: >> Hi, >> >> I've got a complicated grep problem (or not)... I currently have a >> file with the headings as follows: >> > Lets assume these values are in a character vector named 'dat'. >> SA_TUES >> SA_MON >> SU_WED >> CH_TUES >> CH_WED >> CH_MON >> AR_TUES >> AR_WED >> AR_MON >> SA_THUR >> SU_FRI >> CH_THUR >> CH_FRI >> AR_THUR >> AR_FRI > > sadays <- dat[grep("SA", dat) ] > sads <- gsub("SA_","",sadays) > sads > #[1] "TUES" "MON" "THUR" > > dat[ sapply(sads, grep, dat) ] > #[1] "SA_TUES" "CH_TUES" "AR_TUES" "SA_MON" "CH_MON" "AR_MON" > #[7] "SA_THUR" "CH_THUR" "AR_THUR > > -- > David Winsemius > Alameda, CA, USA > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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 -- To UNSUBSCRIBE and more, see 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.