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

时间:2015-12-29 17:19:03

标签: r char

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

x <- c("bob smith", "greg a taylor", "lindsey louise brown")

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

"bob smith", "greg taylor", "lindsey brown"

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

谢谢!

2 个答案:

答案 0 :(得分:7)

我们可以使用capture groups

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

答案 1 :(得分:3)

使用sub

sub("\\s+\\S+(?=\\s)", '',s, perl=TRUE)

sub("\\s+\\S+(\\s)", '\\1',s, perl=TRUE)