我想在R中对下面的单词进行子串,直到找到一个数字字符。
BARCLAYS BANK PLC
答案应该是
{{1}}
我厌倦了使用substr,但我不确定如何删除数字变量。
答案 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")