我有一个像这样的名字矢量:
x <- c("bob smith", "greg a taylor", "lindsey louise brown")
因此每个条目都是名字firstname lastname,中间没有任何内容,或者是中间名称或整个中间名称。我想要做的是删除有关它存在的中间名的信息,所以我应该
"bob smith", "greg taylor", "lindsey brown"
作为输出。这怎么可能在R?
谢谢!
答案 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)