Уникальные значения в списке - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть вектор с такими именами, как

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

и я

strsplit(names,' ')

, который возвращает мне список списков имен. Как я могу получить список или вектор уникальных имен, которые являются Джон, Эмили, Том? Мне нужно сделать x [[1]] для доступа к определенному списку, поэтому я не уверен, как использовать уникальные в этом случае.

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

С sub:

unique(sub("\\s\\w+", "", names))
# [1] "John"  "Emily" "Tom"
0 голосов
/ 11 сентября 2018

Мы можем разделить имена на пробелы, используя strsplit, а затем из каждого элемента списка получить первый элемент и оставить только unique.

unique(sapply(strsplit(names, '\\s+'), "[[", 1))
#[1] "John"  "Emily" "Tom"  

Другая опция, использующая функцию word из пакета stringr, где мы можем извлечь определенные слова из строки.

library(stringr)
unique(word(names))
#[1] "John"  "Emily" "Tom"  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...