Создать столбец инициалов из столбца имен в виде строки в R - PullRequest
0 голосов
/ 05 ноября 2018

Вот пример, из которого я хочу извлечь заглавные буквы:

df <- data.frame(a = c(1:5), b = c("Words are Here", "Okay", "Be Good Now", "WTF are you Doing", "it's good"))

Когда я использую str_extract_all(df$b, "[A-Z]", simplify = ) я получаю список всех заглавных букв с упрощением = ИСТИНА:

    [,1] [,2] [,3] [,4]
[1,] "W"  "H"  ""   ""  
[2,] "O"  ""   ""   ""  
[3,] "B"  "G"  "N"  ""  
[4,] "W"  "T"  "F"  "D" 
[5,] ""   ""   ""   ""  

или с упрощением = ЛОЖЬ:

[[1]]
[1] "W" "H"

[[2]]
[1] "O"

[[3]]
[1] "B" "G" "N"

[[4]]
[1] "W" "T" "F" "D"

[[5]]
character(0)

Я не знаю, как взять любой из них, чтобы получить желаемый результат, такой как вектор:

("WH", "O", "BGN", "WTFD", "")

1 Ответ

0 голосов
/ 05 ноября 2018

Мы могли бы использовать gsub, чтобы сопоставить один или несколько символов, которые не являются прописными, и заменить его пустым ("")

gsub("[^A-Z]+", "", df$b)
#[1] "WH"   "O"    "BGN"  "WTFD" ""    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...