下面概述了SPARQL查询(对长度表示歉意),当查询内容粘贴到“输入查询”窗口中时,我希望将此查询的结果输入到类似于预览这里中可用的数据帧的R数据框架中。在一个句子中,我只对下载数字、列标题和第一列确定地理位置感兴趣。当运行当前查询并试图强制数据帧中的结果并将其用于ggg图时,ggplot2不知道如何处理类列表的数据,这是因为在测试查询内容时返回的数据与预览窗口中返回的CSV文件不相似。我的问题是,在下面的代码中,我应该修改什么,因为它会导致一个R数据帧对象,其值和结构与下面的预览表相对应。

导入数据的代码
# Libs
library(SPARQL)
# Source the data
## Define endpoint URL.
endpoint <- "http://data.opendatascotland.org/sparql?query"
### Create Query and download table for the SIMD rank
query.simd <- "PREFIX stats: <http://statistics.data.gov.uk/id/statistical-geography/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX simd: <http://data.opendatascotland.org/def/simd/>
PREFIX cube: <http://purl.org/linked-data/cube#>
PREFIX stats_dim: <http://data.opendatascotland.org/def/statistical-dimensions/>
PREFIX year: <http://reference.data.gov.uk/id/year/>
SELECT DISTINCT
?dz_label
?overall_rank
?income_deprivation_rank
?employment_deprivation_rank
?health_deprivation_rank
?education_deprivation_rank
?access_deprivation_rank
?housing_deprivation_rank
?crime_deprivation_rank
WHERE {
GRAPH <http://data.opendatascotland.org/graph/simd/rank> {
?overall_rank_observation stats_dim:refArea ?dz .
?overall_rank_observation stats_dim:refPeriod year:2012 .
?overall_rank_observation simd:rank ?overall_rank .
}
GRAPH <http://data.opendatascotland.org/graph/simd/income-rank> {
?income_rank_observation stats_dim:refArea ?dz .
?income_rank_observation stats_dim:refPeriod year:2012 .
?income_rank_observation simd:incomeRank ?income_deprivation_rank .
}
GRAPH <http://data.opendatascotland.org/graph/simd/employment-rank> {
?employment_rank_observation stats_dim:refArea ?dz .
?employment_rank_observation stats_dim:refPeriod year:2012 .
?employment_rank_observation simd:employmentRank ?employment_deprivation_rank .
}
GRAPH <http://data.opendatascotland.org/graph/simd/health-rank> {
?health_rank_observation stats_dim:refArea ?dz .
?health_rank_observation stats_dim:refPeriod year:2012 .
?health_rank_observation simd:healthRank ?health_deprivation_rank .
}
GRAPH <http://data.opendatascotland.org/graph/simd/education-rank> {
?education_rank_observation stats_dim:refArea ?dz .
?education_rank_observation stats_dim:refPeriod year:2012 .
?education_rank_observation simd:educationRank ?education_deprivation_rank .
}
GRAPH <http://data.opendatascotland.org/graph/simd/geographic-access-rank> {
?access_rank_observation stats_dim:refArea ?dz .
?access_rank_observation stats_dim:refPeriod year:2012 .
?access_rank_observation simd:geographicAccessRank ?access_deprivation_rank .
}
GRAPH <http://data.opendatascotland.org/graph/simd/housing-rank> {
?housing_rank_observation stats_dim:refArea ?dz .
?housing_rank_observation stats_dim:refPeriod year:2012 .
?housing_rank_observation simd:housingRank ?housing_deprivation_rank .
}
GRAPH <http://data.opendatascotland.org/graph/simd/crime-rank> {
?crime_rank_observation stats_dim:refArea ?dz .
?crime_rank_observation stats_dim:refPeriod year:2012 .
?crime_rank_observation simd:crimeRank ?crime_deprivation_rank .
}
{
SELECT ?dz ?dz_label WHERE
{
?dz a <http://data.opendatascotland.org/def/geography/DataZone> .
?dz rdfs:label ?dz_label .
}
}
}"
# Make the data
dta.main <- SPARQL(endpoint, query.simd, format="csv")发布于 2014-11-03 09:03:48
对于可能对此问题感兴趣的人,经过一组试验和错误并与网站开发人员进行检查后,似乎可以使用以下命令来执行查询:
dta.simd<- SPARQL(url = endpoint, query = query.simd, format = "csv")$results以及下面的查询来获取数据:
## Define endpoint URL.
endpoint <- "http://data.opendatascotland.org/sparql.csv"
### Create Query and download table for the SIMD rank
query.simd <- "PREFIX stats: <http://statistics.data.gov.uk/id/statistical-geography/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX simd: <http://data.opendatascotland.org/def/simd/>
PREFIX cube: <http://purl.org/linked-data/cube#>
PREFIX stats_dim: <http://data.opendatascotland.org/def/statistical-dimensions/>
PREFIX year: <http://reference.data.gov.uk/id/year/>
SELECT DISTINCT
?dz_label
?overall_rank
?income_deprivation_rank
?employment_deprivation_rank
?health_deprivation_rank
?education_deprivation_rank
?access_deprivation_rank
?housing_deprivation_rank
?crime_deprivation_rank
WHERE {
GRAPH <http://data.opendatascotland.org/graph/simd/rank> {
?overall_rank_observation stats_dim:refArea ?dz .
?overall_rank_observation stats_dim:refPeriod year:2012 .
?overall_rank_observation simd:rank ?overall_rank .
}
GRAPH <http://data.opendatascotland.org/graph/simd/income-rank> {
?income_rank_observation stats_dim:refArea ?dz .
?income_rank_observation stats_dim:refPeriod year:2012 .
?income_rank_observation simd:incomeRank ?income_deprivation_rank .
}
GRAPH <http://data.opendatascotland.org/graph/simd/employment-rank> {
?employment_rank_observation stats_dim:refArea ?dz .
?employment_rank_observation stats_dim:refPeriod year:2012 .
?employment_rank_observation simd:employmentRank ?employment_deprivation_rank .
}
GRAPH <http://data.opendatascotland.org/graph/simd/health-rank> {
?health_rank_observation stats_dim:refArea ?dz .
?health_rank_observation stats_dim:refPeriod year:2012 .
?health_rank_observation simd:healthRank ?health_deprivation_rank .
}
GRAPH <http://data.opendatascotland.org/graph/simd/education-rank> {
?education_rank_observation stats_dim:refArea ?dz .
?education_rank_observation stats_dim:refPeriod year:2012 .
?education_rank_observation simd:educationRank ?education_deprivation_rank .
}
GRAPH <http://data.opendatascotland.org/graph/simd/geographic-access-rank> {
?access_rank_observation stats_dim:refArea ?dz .
?access_rank_observation stats_dim:refPeriod year:2012 .
?access_rank_observation simd:geographicAccessRank ?access_deprivation_rank .
}
GRAPH <http://data.opendatascotland.org/graph/simd/housing-rank> {
?housing_rank_observation stats_dim:refArea ?dz .
?housing_rank_observation stats_dim:refPeriod year:2012 .
?housing_rank_observation simd:housingRank ?housing_deprivation_rank .
}
GRAPH <http://data.opendatascotland.org/graph/simd/crime-rank> {
?crime_rank_observation stats_dim:refArea ?dz .
?crime_rank_observation stats_dim:refPeriod year:2012 .
?crime_rank_observation simd:crimeRank ?crime_deprivation_rank .
}
{
SELECT ?dz ?dz_label WHERE
{
?dz a <http://data.opendatascotland.org/def/geography/DataZone> .
?dz rdfs:label ?dz_label .
}
}
}"这将为6505个地理位置和与下面示例类似的所有指标创建所需的数据框架:
datazone overall_rank income_deprivation rank
Data zone S000001 2 4
Data zone S000002 5 3https://stackoverflow.com/questions/26425239
复制相似问题