首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将SPARQL结果作为CSV转化为R

将SPARQL结果作为CSV转化为R
EN

Stack Overflow用户
提问于 2014-10-17 12:40:22
回答 1查看 850关注 0票数 2

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

导入数据的代码

代码语言:javascript
复制
# 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")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-03 09:03:48

对于可能对此问题感兴趣的人,经过一组试验和错误并与网站开发人员进行检查后,似乎可以使用以下命令来执行查询:

代码语言:javascript
复制
dta.simd<- SPARQL(url = endpoint, query = query.simd, format = "csv")$results

以及下面的查询来获取数据:

代码语言:javascript
复制
  ## 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个地理位置和与下面示例类似的所有指标创建所需的数据框架:

代码语言:javascript
复制
datazone          overall_rank income_deprivation rank
Data zone S000001 2            4
Data zone S000002 5            3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26425239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档