删除R中字符串末尾的连字符

时间:2015-02-05 14:46:19

标签: r gsub

我在R中有一列数据框,如:

names <- data.frame(name=c("ABC", "ABC-D", "ABCD-"))

我想删除字符串末尾的连字符,同时将连字符保持在字符串的中间。我尝试了一些表达式:

names$name <- gsub("+-\\w", "" names$name)
# the desired output is "ABC", "ABC-D", and "ABCD", respectively

虽然有几个组合完全删除了连字符,但我不确定如何一起指定字符串边界和连字符。

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试:

gsub("\\-$", "", names$name)
# [1] "ABC"   "ABC-D" "ABCD" 

$告诉R(转义)连字符位于单词的末尾

虽然-位于regex的第一位,但您不需要将其转义,所以这也有效:

gsub("-$", "", names$name)
#[1] "ABC"   "ABC-D" "ABCD"
相关问题