Фильтр dplyr с использованием qdap::which_misspelt ИЛИ фильтр dplyr с вложенной функцией

Небольшой фрейм данных:

words <- data.frame(terms = c("qhick brown fox",
          "tom dick harry", 
          "cats dgs"))

Если я использую qdap::which_misspelled Я могу узнать неправильно написанные слова:

> which_misspelled(words)
      1       8 
"qhick"   "dgs" 

Но то, что я хочу сделать, это поместить слова df в строки, содержащие орфографические ошибки. Вышеуказанное возвращает индексы 1 и 8, относящиеся ко всем словам, указанным в моем файле df, независимо от того, какая строка.

Как я могу установить свою df на основе строк, содержащих слова с ошибками?

(Бонус, если это можно сделать с помощью фильтра dplyr)

1 ответ

Решение

Как насчет просто использовать check_spelling который векторизован, и результат содержит столбец с номерами строк, которые можно использовать для поднабора фрейма данных:

library(qdap)
words[check_spelling(words$terms)$row,,drop=F]

#            terms
#1 qhick brown fox
#3        cats dgs

which_misspelled Кажется, функция предназначена для проверки одной строки вместо фрейма данных:

which_misspelled - проверить правильность написания строки.

Другие вопросы по тегам