从字符向量中删除中间名,初始或任何内容

Ale*_*lex 1 r char

我有一个像这样的名字矢量:

x <- c("bob smith", "greg a taylor", "lindsey louise brown")
Run Code Online (Sandbox Code Playgroud)

所以每个条目都是名字firstname lastname,中间没有任何内容,或者是中间名称或整个中间名称.我想要做的是删除有关它存在的中间名的信息,所以我应该得到

"bob smith", "greg taylor", "lindsey brown"
Run Code Online (Sandbox Code Playgroud)

作为输出.这怎么可能在R?

谢谢!

akr*_*run 7

我们可以用 capture groups

sub('^(\\w+).*\\b(\\w+)$', '\\1 \\2', x)
#[1] "bob smith"     "greg taylor"   "lindsey brown"
Run Code Online (Sandbox Code Playgroud)