R ::子串字符直到找到数值

时间:2016-03-29 06:02:47

标签: r

我想在R中对下面的单词进行子串,直到找到一个数字字符。

BARCLAYS BANK PLC

答案应该是

{{1}}

我厌倦了使用substr,但我不确定如何删除数字变量。

1 个答案:

答案 0 :(得分:1)

我们可以使用sub匹配一个或多个空格(\\s+),后跟数字,直到字符串末尾($)(这基于提供的示例),并由''替换。

sub("\\s+[0-9.]+$", '', str1)
#[1] "BARCLAYS BANK PLC" "US TREASURY"       "NEW BRUNSWICK"   

或者使用OP的描述(只保留字符直到找到数字字符),我们匹配字符串开头的所有非数字字符(^),将其保存在捕获组并替换为反向引用(\\1)。

sub("^([^0-9.]+)\\s+.*", '\\1', str1)
#[1] "BARCLAYS BANK PLC" "US TREASURY"       "NEW BRUNSWICK"    

数据

str1 <- c("BARCLAYS BANK PLC 6.860", "US TREASURY 2.500", 
      "NEW BRUNSWICK 4.800")