Передать только имя API, так как оно возвращает NULL
для имен с пробелами или фамилией
gender_value<-function(author) {
au <-sub("([^,]+),\\s*(.*)", "\\2 \\1", author)
first_name <- sub("(.*)\\s+.*", "\\1", au)
r <- GET(paste0("https://genderapi.io/api?name=",first_name))
g <- content(r)$gender
g <- if (is.null(g)) NA else g
data.frame(author_name = au, gender = g)
}
Есть вектор имен, который вы хотите передать в функцию
author_names <- c("nandan,vivek","paswan, jyoti")
и затем используйте lapply
, чтобы применить функцию к каждому имени.Если у вас есть имена для передачи в кадре данных, используйте dataframe_name$column_name
вместо author_names
.
df <- do.call(rbind, lapply(author_names, gender_value))
df
# author_name gender
#1 vivek nandan male
#2 jyoti paswan female
Теперь вы можете записать df
в csv, используя write.csv
write.csv(df, "/path/of/file.csv", row.names = FALSE)