Hi all, I have a data frame df and I want to do subset based on several conditions of letters of the names in Command.1)if the names contain PD 2)if the names contain t1 3)if the names contain t2 4)if the names contain t1 and PD 5)if the names contain t2 and PD 6)otherwise the names would be unknown. I don't know how to use grep for all these conditions. 'data.frame': 36919 obs. of 162 variables $TE :int 38,41,11,52,48,75,..... $Command :factor W/2229 levels "_localize_PD","_localize_tre_t2","_localize_t1_seq",... Thanks for any help
You can use the grepl() function to give you logicals for each criterion, then combine them as needed. For example: # example version of Command Command <- paste0("_localize_", c("PD","t2","t1_seq", "abc", "xyz", "PD_t1")) hasPD <- grepl("PD", Command, fixed=TRUE) hast1 <- grepl("t1", Command, fixed=TRUE) hast2 <- grepl("t2", Command, fixed=TRUE)> Command[hast1][1] "_localize_t1_seq" "_localize_PD_t1"> Command[hasPD][1] "_localize_PD" "_localize_PD_t1"> Command[hast1 & hasPD][1] "_localize_PD_t1" Jean On Fri, Apr 22, 2016 at 8:42 AM, ch.elahe via R-help <r-help at r-project.org> wrote:> > Hi all, > > I have a data frame df and I want to do subset based on several conditions > of letters of the names in Command.1)if the names contain PD 2)if the names > contain t1 3)if the names contain t2 4)if the names contain t1 and PD 5)if > the names contain t2 and PD 6)otherwise the names would be unknown. I don't > know how to use grep for all these conditions. > > 'data.frame': 36919 obs. of 162 variables > $TE :int 38,41,11,52,48,75,..... > $Command :factor W/2229 levels > "_localize_PD","_localize_tre_t2","_localize_t1_seq",... > > > Thanks for any help > > ______________________________________________ > R-help at 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. >[[alternative HTML version deleted]]
Thanks Jean, Does anyone know how to set these [hast1] and [hast2] as the colors of a plot? On Friday, April 22, 2016 7:39 AM, "Adams, Jean" <jvadams at usgs.gov> wrote: You can use the grepl() function to give you logicals for each criterion, then combine them as needed. For example: # example version of Command Command <- paste0("_localize_", c("PD","t2","t1_seq", "abc", "xyz", "PD_t1")) hasPD <- grepl("PD", Command, fixed=TRUE) hast1 <- grepl("t1", Command, fixed=TRUE) hast2 <- grepl("t2", Command, fixed=TRUE)> Command[hast1][1] "_localize_t1_seq" "_localize_PD_t1"> Command[hasPD][1] "_localize_PD" "_localize_PD_t1"> Command[hast1 & hasPD][1] "_localize_PD_t1" Jean On Fri, Apr 22, 2016 at 8:42 AM, ch.elahe via R-help <r-help at r-project.org> wrote:>Hi all, > >I have a data frame df and I want to do subset based on several conditions of letters of the names in Command.1)if the names contain PD 2)if the names contain t1 3)if the names contain t2 4)if the names contain t1 and PD 5)if the names contain t2 and PD 6)otherwise the names would be unknown. I don't know how to use grep for all these conditions. > > 'data.frame': 36919 obs. of 162 variables > $TE :int 38,41,11,52,48,75,..... > $Command :factor W/2229 levels "_localize_PD","_localize_tre_t2","_localize_t1_seq",... > > >Thanks for any help > >______________________________________________ >R-help at 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. >