我有一个向量,例如
names <- c('John Smith','Emily Jones', 'John Marcus', 'Emily Stan', 'Tom Rhodes')
我愿意
strsplit(names,' ')
向我返回名称列表的列表。我如何获得唯一名字的列表或向量,这些名字是John,Emily和Tom?我需要执行x [[1]]来访问特定列表,所以我不确定在这种情况下如何使用唯一。
答案 0 :(得分:1)
我们可以使用strsplit
在空格上分割名称,然后从列表的每个元素中获取第一个元素,并仅保留unique
个元素。
unique(sapply(strsplit(names, '\\s+'), "[[", 1))
#[1] "John" "Emily" "Tom"
另一个使用word
包中的stringr
函数的选项,我们可以在其中从字符串中提取特定的单词。
library(stringr)
unique(word(names))
#[1] "John" "Emily" "Tom"
答案 1 :(得分:1)
使用sub
:
unique(sub("\\s\\w+", "", names))
# [1] "John" "Emily" "Tom"