我在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
虽然有几个组合完全删除了连字符,但我不确定如何一起指定字符串边界和连字符。
谢谢!
答案 0 :(得分:1)
尝试:
gsub("\\-$", "", names$name)
# [1] "ABC" "ABC-D" "ABCD"
$
告诉R
(转义)连字符位于单词的末尾
虽然-
位于regex
的第一位,但您不需要将其转义,所以这也有效:
gsub("-$", "", names$name)
#[1] "ABC" "ABC-D" "ABCD"