R: Извлечение данных JSON из OData API дает противоречивые результаты? - PullRequest
1 голос
/ 21 марта 2019

Я пытаюсь извлечь данные из API OData служб государственной статистики Уэльса. Подробности об API можно найти здесь , включая пример того, как фильтровать данные.

Однако я, кажется, получаю недетерминированное подмножество данных, то есть каждая попытка приводит к разному количеству возвращаемых записей.

Ниже приведен простой воспроизводимый пример.

Дополнительно я также попробовал:

  • с использованием RJSONIO::fromJSON(), что дает тот же результат.
  • пытается использовать URL odata.nextLink, если он возвращается в объекте json, для извлечения дополнительных данных. Опять же, каждая попытка приводит к объекту другого размера.

Любое понимание будет высоко ценится.

## preliminaries
library(jsonlite)

# prepare filters
filter1 <- "Column_ItemName_ENG"
filter1.value <- "Gross%20expenditure"
filter2 <- "Row_ItemName_ENG"
filter2.value <- "Parking%20of%20vehicles"

query <- paste0("http://open.statswales.gov.wales/en-gb/dataset/lgfs0009?$filter=",
                filter1, "%20eq%20%27", filter1.value, "%27%20and%20",
                filter2, "%20eq%20%27", filter2.value, "%27")

# test 1
test1 <- jsonlite::fromJSON(query)
test1 <- test1[[2]]

# test 2
test2 <- jsonlite::fromJSON(query)
test2 <- test2[[2]]

# test 3
test3 <- jsonlite::fromJSON(query)
test3 <- test3[[2]]

# compare results
nrow(test1)
nrow(test2)
nrow(test3)

PS: этот вопрос перекрестно опубликован RStudio Community , и я обещаю обновить любую публикацию соответствующими решениями, найденными на другой.

...