如果字符串以数字开头,但保留其他所有内容(在r中),如何删除数字?

时间:2018-03-06 00:56:30

标签: r string vector split character

我正在使用R中的数据并且有一个与字符串相关的问题。 如果我有一个矢量(比如书),

books <- c('123 Book1 331','51 Book2','Book3 69','Book4')

我想分割以数字开头的字符串并保留其余部分,否则保持不变。 我想以如下所示的方式提取信息:

[1] "Book1 331" "Book2"     "Book3 69"  "Book4"

我必须在R中使用什么包?什么功能?

2 个答案:

答案 0 :(得分:2)

您可以简单地将gsub与您自己的正则表达式一起使用。 E.g:

books <- c('123 Book1 331','51 Book2','Book3 69','Book4')

gsub("^.*?([a-zA-Z]+.+)", "\\1", books)

[1] "Book1 331" "Book2"     "Book3 69"  "Book4"    

答案 1 :(得分:2)

以下是使用sub的另一个变体,它不需要捕获组:

books <- c('123 Book1 331','51 Book2','Book3 69','Book4')
sub("^\\d+\\s+", "", books)

[1] "Book1 331" "Book2"     "Book3 69"  "Book4"

Demo