Ошибка в mutate_impl (.data, точки) в списках - PullRequest
0 голосов
/ 02 октября 2018

У меня есть фрейм данных, и я хотел бы добавить столбец с соответствующими шаблонами, которые я сохранил в списке, что-то вроде этого:

Это мой фрейм данных:

order_lines <- tibble(
  order_number = c(100, 200, 300, 400, 500, 600),
  description = c("xyz", "axyz", "abc", "wabc", "abcla", "ggg")
)

И это список с шаблоном, который я хочу найти в order_lines $ description:

ref <- list("xyz", "abc")

Я создал для этого функцию:

extractor <- function(df, pat){
  df <- df %>%
        mutate(references = str_extract(string = description, pattern = pat))
  df
}

Но когда я запускаю extractor(df = order_lines, pat = ref) то, что я получил, это следующая ошибка: 'Ошибка в mutate_impl (.data, dots): Ошибка оценки: нет применимого метода для' type ', примененного к объекту класса "list".'

Когда я впервые столкнулся с проблемой, я подумал, что это будет легко решить, потому что я понял, что что-то не так в использовании списка с dplyr :: mutate.Я все еще верю, что этот список замешан, но я не знаю, как это исправить.

Я не знаю, полезна ли информация о сеансе в этом случае:

R версия 3.4.4 (2018-03-15) Платформа: x86_64-pc-linux-gnu (64-битная)) Работает под: Ubuntu 18.04.1 LTS

Заранее спасибо.

1 Ответ

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

Наконец, я нашел решение, удалив mutate из функции и использовав вместо него $.Это новая функция:

extractor <- function(df, pat) {
  df$references <- str_extract(string = description, pattern = pat))
  df
}

Затем я использовал purrr :: map, чтобы применить функцию к каждому элементу моего списка ref, то есть:

ref %>%
  map(extractor, df = order_lines)

Iнадеюсь, это поможет кому-то в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...