Define
z<- as.character(c(\"1_xx xx xxx_xxxx_12_sep.xls\",\"2_xx xx xxx_xxxx_15_aug.xls\"))
such that
> z [1] \"1_xx xx x
You can do this using a combination of strsplit, substr and lapply:
strsplit
substr
lapply
y <- strsplit(z,"_",fixed=TRUE) lapply(y,FUN=function(x){paste(x[1],x[4],substr(x[5],1,3),sep="_")})