Используя файл формата JSON, извлеченный из SeatGeek API, я хотел бы преобразовать данные в фрейм данных. Мне удалось создать фрейм со всеми переменными + данными, используя функцию ниже:
library(httr)
library(jsonlite)
vpg <- GET("https://api.seatgeek.com/2/venues?country=US&per_page=5000&page=1&client_id=NTM2MzE3fDE1NzM4NTExMTAuNzU&client_secret=77264dfa5a0bc99095279fa7b01c223ff994437433c214c8b9a08e6de10fddd6")
vpgc <- content(vpg)
vpgcv <- (vpgc$venues)
json_file <- sapply(vpgcv, function(x) {
x[sapply(x, is.null)] <- NA
unlist(x)
as.data.frame(t(x))
})
С этого момента я могу создать фрейм данных, используя:
venues.dataframe <- as.data.frame(t(json_file), flatten = TRUE)
Но мои полученные данные представляют собой фрейм данных с правильным количеством 23 переменных и 5000 строк, но каждая запись представляет собой список, а не просто значение. Как я могу вытащить значение из каждого списка?
Я также попытался извлечь значения, используя таблицы данных в следующем коде:
library(data.table)
data.table::rbindlist(json_file, fill= TRUE)
Но кадр выходных данных проходит почти по диагонали, помещая 1 сохраненную переменную + 22 значения NULL в строку. Хотя все данные находятся здесь, строки 1-23 (и 24-46 и т. д.) должны быть одной строкой.
Какой из этих двух тупиков является самым простым/самым чистым решением для получения желаемого вывода кадра данных [5000 наблюдений в простой форме значений 23 переменных]?