Git Product home page Git Product logo

opendatatoronto's Introduction

opendatatoronto

Travis build status AppVeyor build status Codecov test coverage CRAN status Lifecycle: experimental

opendatatoronto is an R interface to the City of Toronto Open Data Portal. The goal of the package is to help read data directly into R without needing to manually download it via the portal.

For more information, please visit the package website and vignettes:

Installation

You can install the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("sharlagelfand/opendatatoronto")

Usage

In the Portal, datasets are called packages. You can see a list of available packages by using list_packages(). This will show metadata about the package, including what topics (i.e. tags) the package covers, any civic issues it addresses, a description of it, how many resources there are (and their formats), how often it is is refreshed and when it was last refreshed.

library(opendatatoronto)
packages <- list_packages(limit = 10)
packages
#> # A tibble: 10 x 10
#>    title id    topics civic_issues excerpt dataset_category num_resources
#>    <chr> <chr> <chr>  <chr>        <chr>   <chr>                    <int>
#>  1 Mont… ec1f… Health <NA>         "This … Document                     5
#>  2 Deve… 0aa7… Devel… <NA>         "This … Table                        1
#>  3 Body… c405… City … <NA>         This d… Table                        2
#>  4 Stre… 1db3… City … <NA>         Transi… Map                          1
#>  5 Stre… 74f6… City … <NA>         Public… Map                          1
#>  6 Stre… 821f… City … <NA>         Public… Map                          1
#>  7 Stre… ccfd… City … <NA>         Poster… Map                          1
#>  8 Stre… cf70… City … <NA>         Poster… Map                          1
#>  9 Stre… 3944… City … <NA>         Litter… Map                          1
#> 10 Stre… 99b1… City … <NA>         Inform… Map                          1
#> # … with 3 more variables: formats <chr>, refresh_rate <chr>,
#> #   last_refreshed <date>

You can also search packages by title:

ttc_packages <- search_packages("ttc")

ttc_packages
#> # A tibble: 14 x 10
#>    title id    topics civic_issues excerpt dataset_category num_resources
#>    <chr> <chr> <chr>  <chr>        <chr>   <chr>                    <int>
#>  1 TTC … d2a7… Trans… Mobility     This d… Website                      2
#>  2 TTC … 4b80… Trans… Mobility     This d… Website                      2
#>  3 TTC … 7795… Trans… Mobility     Data c… Document                     1
#>  4 TTC … e271… Trans… Mobility     TTC Bu… Document                     7
#>  5 TTC … 4eb6… Trans… Mobility     This d… Document                     5
#>  6 TTC … 996c… Trans… Mobility     TTC Su… Document                    32
#>  7 TTC … b68c… Trans… Mobility     TTC St… Document                     7
#>  8 TTC … aedd… Trans… Mobility     This d… Website                      2
#>  9 TTC … d9dc… Trans… Mobility     This d… Document                     1
#> 10 TTC … 8217… Trans… Mobility     The NV… Document                     1
#> 11 TTC … 1444… Trans… Mobility     This d… Website                      2
#> 12 TTC … 2c4c… Finan… Mobility     This d… Website                      2
#> 13 TTC … c01c… <NA>   Mobility     "This … Document                     1
#> 14 TTC … ef35… Trans… Mobility     This d… Document                     1
#> # … with 3 more variables: formats <chr>, refresh_rate <chr>,
#> #   last_refreshed <date>

Or see metadata for a specific package:

show_package("996cfe8d-fb35-40ce-b569-698d51fc683b")
#> # A tibble: 1 x 10
#>   title id    topics civic_issues excerpt dataset_category num_resources
#>   <chr> <chr> <chr>  <chr>        <chr>   <chr>                    <int>
#> 1 TTC … 996c… Trans… Mobility     TTC Su… Document                    32
#> # … with 3 more variables: formats <chr>, refresh_rate <chr>,
#> #   last_refreshed <date>

Within a package, there are a number of resources - e.g. CSV, XSLX, JSON, SHP files, and more. Resources are the actual “data”.

For a given package, you can get a list of resources using list_package_resources(). You can pass it the package id (which is contained in marriage_license_packages below):

marriage_licence_packages <- search_packages("Marriage Licence Statistics")

marriage_licence_resources <- marriage_licence_packages %>%
  list_package_resources()

marriage_licence_resources
#> # A tibble: 1 x 4
#>   name                      id                         format last_modified
#>   <chr>                     <chr>                      <chr>  <date>       
#> 1 Marriage Licence Statist… 4d985c1d-9c7e-4f74-9864-7… CSV    2019-10-01

But you can also get a list of resources by using the package’s URL from the Portal:

list_package_resources("https://open.toronto.ca/dataset/sexual-health-clinic-locations-hours-and-services/")
#> # A tibble: 2 x 4
#>   name                            id                   format last_modified
#>   <chr>                           <chr>                <chr>  <date>       
#> 1 sexual-health-clinic-locations… e958dd45-9426-4298-… XLSX   2019-08-15   
#> 2 Sexual-health-clinic-locations… 2edcc4a3-c095-4ce3-… XLSX   2019-08-15

Finally (and most usefully!), you can download the resource (i.e., the actual data) directly into R using get_resource():

marriage_licence_statistics <- marriage_licence_resources %>%
  get_resource()

marriage_licence_statistics
#> # A tibble: 420 x 4
#>    `_id` CIVIC_CENTRE MARRIAGE_LICENSES TIME_PERIOD
#>    <int> <chr>                    <int> <chr>      
#>  1  1237 ET                          80 2011-01    
#>  2  1238 NY                         136 2011-01    
#>  3  1239 SC                         159 2011-01    
#>  4  1240 TO                         367 2011-01    
#>  5  1241 ET                         109 2011-02    
#>  6  1242 NY                         150 2011-02    
#>  7  1243 SC                         154 2011-02    
#>  8  1244 TO                         383 2011-02    
#>  9  1245 ET                         177 2011-03    
#> 10  1246 NY                         231 2011-03    
#> # … with 410 more rows

opendatatoronto's People

Contributors

gadenbuie avatar sharlagelfand avatar sushmitavgopalan16 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.