r - If string contains certain pattern then do -


the following vector given contaiining names of variables:

variables = c("bla_p_blub","bla_k_blib","blo_p_blub","blu_i_blub","bli_k_blub") 

what want if variables[i] contains k sth if contains p or i sth. else.

my approach following not work:

class_var = 1  if(grep("_k_",variables[i]) > 0){     class_var = 1 } else{     class_var = 0 }  if (class_var == 1){    sth.  }  if (class_var == 0){    sth. else  } 

the problem if variables[i] contains no k result:

error in if (grep("k", variables[12]) > 0) { : argument of length zero

any advice?

thanks in advance!

i use regex extract info need trigger correct function, in case '_x_'.
later iterate on vector important informations , use switch.
can use {} within switch execute more functions print or so...

variables = c("bla_p_blub","bla_k_blib","blo_p_blub","blu_i_blub","bli_k_blub")  myvars <- sub('.*_([a-z])_.*', '\\1', variables) for(myvar in myvars) {   switch(myvar,          p=cat('it p\n'),          k={            cat('it k\n')            cat(sprintf('%s\n',date()))            },          cat(sprintf('it %s\n', myvar))) } 

this returns following

it p k fri jul 17 13:13:51 2015 p k fri jul 17 13:13:51 2015 

Comments