Смотрите ниже R код, я использую пакет JSONlite, чтобы очистить данные с сайта:R JSONlite: Как справиться с ошибкой ниже?
library(jsonlite)
url <- "http://fantasy.premierleague.com/web/api/elements/"
seasonsdata <- data.frame(matrix(NA,nrow=1,ncol=20))
seasonsdata <- seasonsdata[-1,]
fetchData <- function(i) {res <- try(a <- fromJSON(paste0(url,i)))
if(!inherits(res,"try-error")) {b<-data.frame(a[1],a[20],a[21],as.data.frame(a$season_history))}}
seasonsdata <- lapply(1:696, fetchData)
seasonsdata <-do.call(rbind,lapply(seasonsdata,data.frame,stringsAsFactors=FALSE))
код работает отлично для «я» до 10, по крайней мере, я получаю желаемый выпуск. Однако, как я увеличиваю 'я' до 696, я получаю сообщение об ошибке:
Error in data.frame(a[1], a[20], a[21], as.data.frame(a$season_history)) :
arguments imply differing number of rows: 1, 0
Любой посоветуете?
Проверить количество строк в 'а [1],' а [20], 'а [21]' и 'as.data.frame (а $ seasonhistory)'. Они должны быть одинаковыми для создания фрейма данных. Похоже, вам, возможно, потребуется добавить строку кода, чтобы вставить 'NA' там, где это необходимо. –
Вы можете помочь мне исправить код? –