Получение уникального количества из структурированных текстовых данных
Мне интересно, как получить уникальное количество символов из текстовой строки из структурированного набора данных. Это дополнительный вопрос к моему предыдущему посту. Я хотел бы получить уникальное количество яблок (закодировано как приложение), бананов (закодировано как бан), ананасов (закодировано как пин-код), винограда (закодировано как Grp)
text<- c('AppPinAppBan', 'AppPinOra', 'AppPinGrpLonNYC')
df<- data.frame(text)
library(stringr)
df$fruituniquecount<- str_count(df$A, "App|Ban|Pin|Grp")
## I am expecting output as follows:
text fruituniquecount
AppPinAppBan 3
AppPinOra 2
AppPinGrpLonNYC 3
2 ответа
Решение
Следуя той же идее, что и принятый ответ на ваш предыдущий вопрос, вы можете сделать,
library(stringr)
sapply(str_extract_all(df$text, "App|Ban|Pin|Grp"), function(i)length(unique(i)))
#[1]3 2 3
Может быть, это можно сделать с помощью базы R, нет необходимости во внешних пакетах.
m <- gregexpr("App|Ban|Pin|Grp", df$text)
df$fruituniquecount <- lengths(lapply(regmatches(df$text, m), unique))
df
# text fruituniquecount
#1 AppPinAppBan 3
#2 AppPinOra 2
#3 AppPinGrpLonNYC 3