列表中的唯一值

时间:2018-09-11 01:38:11

标签: r

我有一个向量,例如

names <- c('John Smith','Emily Jones', 'John Marcus', 'Emily Stan', 'Tom Rhodes')

我愿意

strsplit(names,' ')

向我返回名称列表的列表。我如何获得唯一名字的列表或向量,这些名字是John,Emily和Tom?我需要执行x [[1]]来访问特定列表,所以我不确定在这种情况下如何使用唯一。

2 个答案:

答案 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"