Как установить переменную в 0, если регистр имеет неопределенный пол - PullRequest
0 голосов
/ 21 апреля 2020

У меня проблемы с определением пола в Rstudio, полученным из (первого) имени. Я получил функцию для работы, но не во всех случаях в df есть имена, из которых пол может быть получен с помощью функции пола ().

Я использую следующий код для получения пола из столбца имени:

campaigns_tidy$creator_gender <- gender(campaigns_tidy$creator_firstname, method = c("ssa"))

Это дает мне ошибку:

"замена имеет 5852 строки, данные имеют 6268 "

Как можно заполнить campaigns_tidy$creator_gender, например," Неизвестно "для случаев, когда пол не может быть получен из имени? Я также попытался создать другой gender-df и (слева) объединить его с исходным df, но это приводит к ошибке, что не все случаи являются уникальными.

Спасибо!

1 Ответ

0 голосов
/ 21 апреля 2020

Функция gender() (из гендерного пакета) возвращает фрейм данных, но пропускает строки с именами, которые она не распознает, что приводит к несоответствию в числовом значении.

Решением вашей проблемы было бы написание функции, которая принимает одно имя и возвращает пол, если оно распознано и «неизвестно» в противном случае. Новый столбец, содержащий информацию о полу, теперь можно добавить к исходным данным, применив новую функцию к столбцу creator_name строка за строкой (поэтому функции передается только одно имя за раз):

library(gender)
library(dplyr)

campaigns_tidy <- data.frame(creator_firstname = c("Peter","Hannah","Nonsense"), 
                             stringsAsFactors = F)

get_gender <- function(name) {
  gender_df <- gender(name, method = c("ssa"))
  ifelse(nrow(gender_df) == 1, gender_df$gender, "unknown")
}

campaigns_tidy %>% 
  rowwise() %>% 
  mutate(creator_gender = get_gender(creator_firstname))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...