从R中的字符串末尾删除中间的首字母

时间:2018-01-24 18:45:55

标签: r regex

需要帮助从字符串末尾删除中间的首字母,但我不知道如何在R中执行此操作来编写正则表达式模式。

矢量如:

x <- c("SMITH, BOB A.", "BISHOP, MATTHEW", "CLARK, CORY B")

期望的输出:

[1] "SMITH, BOB"    "BISHOP, MATTHEW"    "CLARK, CORY"

试过以下内容,但可能会有所不及

test <- sub('^(\\w+)(\\W)(\\h)(\\w+)(\\h).*\\b$', '\\1 \\2',vec2)

试图从其他帖子中复制answer,但不要认为它是对的。

2 个答案:

答案 0 :(得分:1)

您可以使用

x <- c("SMITH, BOB A.", "BISHOP, MATTHEW", "CLARK, CORY B")
gsub("(.*)\\s+[A-Z]\\.?$", "\\1", x)

哪个收益

[1] "SMITH, BOB"      "BISHOP, MATTHEW" "CLARK, CORY"    

答案 1 :(得分:0)

您可以选择字符串中的前两个单词,其中单词由空格分隔,并带有

stringr::word(x, 1, 2)