首页 > 解决方案 > R:从 OData API 中提取 json 数据会产生不一致的结果?

问题描述

我正在尝试从威尔士政府统计服务 OData API 中提取数据。可以在此处找到有关 API 的详细信息,包括如何过滤数据的示例。

但是,我似乎得到了一个不确定的数据子集,即每次尝试都会导致返回不同数量的记录。

下面是一个简单的可重现示例。

另外我也试过:

任何见解将不胜感激。

## 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交叉发布的,我保证用在另一个帖子上找到的相关解决方案更新其中一个帖子。

标签: rjsonodatajsonlite

解决方案


推荐阅读