Сокращать вектор имен в R, используя библиотеку stringr - PullRequest
2 голосов
/ 04 апреля 2020

У меня есть эта переменная:

names<-c("Sophia Abbe", "Olivia Abbett", "Emma Abbey", "Ava Abbitt", "Isabella Abbot", "Mia Abbott", "Aria Abbs")

Я хочу сократить имена и поместить их в вектор.

Я хочу получить вектор, подобный ("S. Abbe" , "О. Аббетт", ..., "А. Аббс)

Какой эффективный способ сделать это с помощью функций stringr str_ c (), str_split () и str_sub ()?

1 Ответ

2 голосов
/ 04 апреля 2020

Опция с sub путем сопоставления строчных букв и замены на . в base R

sub("[a-z]+", ".", names)
#[1] "S. Abbe"   "O. Abbett" "E. Abbey"  "A. Abbitt" "I. Abbot"  "M. Abbott" "A. Abbs"  

. В этом [a-z]+ соответствует один или несколько нижних блоков символов, т.е. те, что в первом слове (потому что мы используем sub) и заменить на ""

или используя str_replace

library(stringr)
str_replace(names, "[a-z]+", ".")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...