从字符串中删除最后一个尾随下划线

Removing the last trailing underscore from a string

我正在尝试使用 R 从字符串中删除最后一个尾随下划线 (_)。

例如,

  Col1
  TX_
  AZ_TX
  CA_LX
  CHI_
  KS_

上面的字符串应该是这样的

  Col1
  TX
  AZ_TX
  CA_LX
  CHI
  KS

只有尾随 _ 消失了。我试过 sub("_", "", my_dataframe$my_column) 但这会从字符串中删除所有 _ 。我只是在寻找一个删除最后一个尾随 _ 而不是全部的函数。有什么想法吗?

您可以使用sub(或gsub)和正则表达式"_$"来找到输入末尾的_,然后替换为"":

s <- c('Col1', 'TX_', 'AZ_TX', 'CA_LX', 'CHI_', 'KS_')
sub("_$","",s)
##[1] "Col1"  "TX"    "AZ_TX" "CA_LX" "CHI"   "KS"