如何将变量分组为' 3letters + 4digits'在' 3letters + 1st + 2nd + 4thdigit'?

时间:2015-06-30 07:36:01

标签: regex r

我想重命名像' BLA2501'和' BLA2561'进入' BLA251'。 换句话说,我的数据框中有一个变量,其值为

  'BLA2501', 
  'BLA2521'.
  'BLA3601',
  'BLA5501'.

我希望将这些值进行本地化,并按照' BLA +第一位数字+第二位数字+最后一位数字'进行分组。

例如

  'BLA2501' and 'BLA2521' have to be renamed as 'BLA251', 
  'BLA3601' will be 'BLA361' 
   ...

我尝试过像

这样的事情
  data$var<-sub('^BLA(\\d)(\\d)(\\d)(\\d).*', 'BLA\\1\\2\\4', data$var)

但它没有用。

2 个答案:

答案 0 :(得分:4)

只需删除最后一个数字。

sub("\\d(\\d)$", "\\1", s)

sub("^(BLA\\d{2})\\d(\\d)", "\\1\\2", s)

答案 1 :(得分:1)

x<-"bla2501"
paste0(substr(x,1,5),substr(x,7,7))

这就是诀窍。