替换数据框 - 特殊模式

replace data frame - special pattern

假设我有下一个数据框:

dd<-data.frame(a=c("xtr","la casa x-tr","x-tr"))

             a
          xtr
 la casa x-tr
         x-tr

我怎样才能用 "xtr" 只替换出现的 "x-tr" 次。所以,最终输出将是

         a
          xtr
 la casa xtr
         xtr

我们可以使用sub

dd$a <- sub("(x)-(tr)$", "\1\2", dd$a)
dd$a
#[1] "xtr"         "la casa xtr" "xtr"  

如果只有一个-,那么

sub("-", "", dd$a)