Один из вариантов, если в профиле нет местоимения (он или она и др. c.), - это использовать набор данных babynames из пакета с тем же именем. Набор данных содержит миллионы имен детей, родившихся в США, вместе с полом и долей (доля людей этого пола с таким именем, родившихся в этом году).
Сначала создайте имена для каждого человека.
df_example$name <- sub("([A-Za-z]+).*", "\\1", df_example$Name_example)
Затем суммируйте имена малышей, чтобы получить одно уникальное имя (наиболее распространенное, если оно используется обоими полами).
library(babynames)
librayr(dplyr)
Babies <- babynames %>%
group_by(sex, name) %>%
summarise(prop=mean(prop)) %>% # Mean over all years
group_by(name) %>%
arrange(-prop) %>% # need to arrange by prop descending
slice(1) %>% select(-prop) # and then select the most common sex for each name
Приведенный выше код используется для получения наиболее распространенного пола для одного уникального имени для имен, общих для обоих полов (Riley, Jordan, et c.).
Затем мы объединяем примерный набор данных с этими обобщенными данными по именам детей.
library(dplyr)
left_join(df_example, Babies, by="name")
name sex
1 John M
2 Mary F
3 Alphusia <NA>
4 Mike M
Мы видим, что пол «Майка» - мужской, но «Альфузия» слишком необычна, чтобы это выяснить.