Добавить распознавание столбца пола - PullRequest
0 голосов
/ 04 февраля 2020
demo_df <- data_frame(id = c(1,2,3), names = c("Hillary", "Madison", "John"), stock = c(43,5,2), bill = c(43,112,33))

Как можно использовать в колонке имен гендерную идентификацию? Ожидаемый результат:

demo_df <- data_frame(id = c(1,2,3), names = c("Hillary", "Madison", "John"), gender = c("female", "female", "male"), stock = c(43,5,2), bill = c(43,112,33))

Пробовал это

library(gender)
test <- gender_df(demo_df, method = "demo",
           name_col = "name", year_col = c("1900", "2000"))

, но я получаю эту ошибку

Error in gender_df(demo_df, method = "demo", name_col = "name") : 
  year_col %in% names(data) is not TRUE

1 Ответ

1 голос
/ 04 февраля 2020

Используйте gender() вместо gender_df().

Обратите внимание, что gender() автоматически сортирует выходные данные в алфавитном порядке по имени, поэтому просто не будет добавлять выходные данные как новый вектор в demo_df , так как порядок может быть неправильным.

Для этого есть два варианта:
1. Сортировать demo_df в алфавитном порядке по имени перед вызовом gender().

library(dplyr)

demo_df %>% 
  arrange(names) %>%
  mutate(gender = gender::gender(demo_df$names)$gender)

2. Используйте метод join, например dplyr::inner_join, для объединения demo_df и результирующего кадра данных, выведенного при вызове gender(), в столбце names.

gender_df <- gender::gender(demo_df$names) %>% 
  select(names = name, gender)

inner_join(demo_df, gender_df, by = "names")  

Выход:

  id   names stock bill gender
1  1 Hillary    43   43 female
2  2 Madison     5  112 female
3  3    John     2   33   male

Все это возможно и в базе R, не считая части вменения пола. Я просто предпочитаю dplyr.

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