функции stringi в dplyr

Я хотел изменить метод в другом сообщении (Чтение в Unicode Emoji правильно в R), чтобы проверить, соответствует ли строка юникода эмодзи... но я, очевидно, не совсем понял, как правильно использовать stringi.

Первый раздел кода представляет собой упрощение связанного поста и работает так, как ожидалось; с заменой первой и последней записей:

a <- c("\U0001f600",       "\U0001f603",       "\U0001f604")
b <- c("grinning face", "grinning face with big eyes", "grinning face with smiling eyes" )

v <- data.frame(lemma = c("\U0001f600",  "\U0001f3fb", "hello", "asdfasdlkasdfkd", "\U0001f604"), stringsAsFactors = FALSE)
v %>% mutate(is_emoji = stri_replace_all_regex(lemma,
                       pattern = a,
                       replacement = b,
                       vectorize_all=FALSE))

Но моя попытка вернуть логическое значение не работает; в дополнение к предупреждающему сообщению «более длинная длина объекта не кратна более короткой длине объекта», я не получаю последнее значение, равное TRUE, со следующим кодом:

v %>% mutate(is_emoji = stri_detect_regex(lemma, pattern = a))

Я пробовал бесчисленное множество других вариантов, но все безуспешно.


person user1420372    schedule 26.08.2019    source источник


Ответы (1)


Используйте paste с collapse='|'

v %>% mutate(is_emoji = stri_detect_regex(lemma, pattern = paste(a, collapse = '|')))
person A. Suliman    schedule 26.08.2019