考虑一下
temp <- c("12/30 - 1/5", "4/21-4/27")
##[1] "12/30 - 1/5" "4/21-4/27"我需要
##[1] "12/30" "4/21" 虽然我知道如何把它们分开生产
gsub(" .*", "", temp)
##[1] "12/30" "4/21-4/27"
gsub("-.*", "", temp)
##[1] "12/30 " "4/21" 我如何将它们组合成一个表达式?
发布于 2014-06-03 09:07:21
这就是字符类存在的目的:
> gsub("[ -].*", "", temp)
[1] "12/30" "4/21"注意:在字符类中,破折号具有特殊的意义,除非它位于类的第一个或最后一个位置:然后它表示一个范围(在[0-9]中,它匹配0和9之间的任何数字)。如果只想匹配0、9或文字-,则必须使用[09-])。在当前正则表达式中,这不是一个问题,因为类中只有两个字符。但是,当您开始扩展类(添加新字符)时,请确保将破折号保留在末尾。
发布于 2014-06-03 09:06:02
你也许可以把它们放在一起,但我个人觉得很难读懂。只需一个接一个地应用gsub更容易:
> gsub("\\-.*", "",gsub("\\ .*", "", temp))
[1] "12/30" "4/21"https://stackoverflow.com/questions/24010999
复制相似问题