как объединить результат в виде фрейма данных в случае вектора - PullRequest
0 голосов
/ 23 мая 2019
gender_value<-function(author){
 au<-sub("([^,]+),\\s*(.*)", "\\2 \\1", author)
 r<-GET(paste0("https://genderapi.io/api?name=",au))
 g<-content(r)$gender
 n<-c(au,g)}

author("nandan,vivek","paswan, jyoti")

Если я хочу передать более 10000 имен автору, выбранному из файла CSV, как я могу это сделать.

Я хочу записать результат в файл .csv после привязки результата "п».как табличная форма с двумя столбцами (имя, пол) и более 10000 строк (например, jyoti paswan, female)

enter image description here

1 Ответ

0 голосов
/ 23 мая 2019

Передать только имя 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...