Skip to content

how to use AND in grepl

3 messages · Elahe chalabi, William Dunlap, Tom

#
Hi all,

I have one factor variable in my df and I want to extract the names from it which contain both "t2" and "pd":

  'data.frame': 36919 obs. of 162 variables 
   $TE                :int 38,41,11,52,48,75,..... 
   $TR                :int 100,210,548,546,..... 
   $Command          :factor W/2229 levels "_localize_PD","_localize_tre_t2","_abdomen_t1_seq","knee_pd_t1_localize","pd_local_abdomen_t2"...

I have tried this but I did not get result: 
   
  t2pd=subset(df,grepl("t2",Command) & grepl("pd",Command))


does anyone know how to apply AND in grepl?

Thanks
Elahe
#
Your code looks fine to me.  What did t2pd look like?

I tried reproducing the problem in R-3.2.4(Revised) and everything worked
(although the output of str() looked a bit different - perhaps you have an
old version of R)
Command=c("pd_local_abdomen_t2","knee_pd_t1_localize","PD_localize_tre_t2","t2_localize_PD")[rep(1:4,len=10)])
'data.frame':   10 obs. of  3 variables:
 $ TE     : int  1 2 3 4 5 6 7 8 9 10
 $ TR     : int  101 102 103 104 105 106 107 108 109 110
 $ Command: Factor w/ 4 levels "knee_pd_t1_localize",..: 2 1 3 4 2 1 3 4 2 1
TE  TR             Command
1  1 101 pd_local_abdomen_t2
5  5 105 pd_local_abdomen_t2
9  9 109 pd_local_abdomen_t2
grepl("pd",Command,ignore.case=TRUE))
  TE  TR             Command
1  1 101 pd_local_abdomen_t2
3  3 103  PD_localize_tre_t2
4  4 104      t2_localize_PD
5  5 105 pd_local_abdomen_t2
7  7 107  PD_localize_tre_t2
8  8 108      t2_localize_PD
9  9 109 pd_local_abdomen_t2


Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Sat, Apr 30, 2016 at 2:38 PM, ch.elahe via R-help <r-help at r-project.org>
wrote:

  
  
Tom
#
subset(df,grepl("t2|pd",x$Command))


On Sat, Apr 30, 2016 at 2:38 PM, ch.elahe via R-help <r-help at r-project.org>
wrote: