diff --git a/articles/tech-dm-class.html b/articles/tech-dm-class.html index bbec10891..b488c2714 100644 --- a/articles/tech-dm-class.html +++ b/articles/tech-dm-class.html @@ -214,7 +214,7 @@

Turn tables from a src in flights_dm <- dm_from_con(sqlite_con) flights_dm
#> ── Table source ───────────────────────────────────────────────────────────
-#> src:  sqlite 3.44.2 [/tmp/RtmpqSPcvW/nycflights13.sqlite]
+#> src:  sqlite 3.44.2 [/tmp/RtmpFjvJH1/nycflights13.sqlite]
 #> ── Metadata ───────────────────────────────────────────────────────────────
 #> Tables: `airlines`, `airports`, `flights`, `planes`, `sqlite_stat1`, … (7 total)
 #> Columns: 62
@@ -263,7 +263,7 @@ 

Access tables
 flights_dm[["airports"]]
#> # Source:   table<airports> [?? x 8]
-#> # Database: sqlite 3.44.2 [/tmp/RtmpqSPcvW/nycflights13.sqlite]
+#> # Database: sqlite 3.44.2 [/tmp/RtmpFjvJH1/nycflights13.sqlite]
 #>    faa   name                            lat    lon   alt    tz dst   tzone
 #>    <chr> <chr>                         <dbl>  <dbl> <dbl> <dbl> <chr> <chr>
 #>  1 04G   Lansdowne Airport              41.1  -80.6  1044    -5 A     Amer…
@@ -301,7 +301,7 @@ 

Primary keys of dm objectsflights_dm_with_key <- dm_add_pk(flights_dm, airports, faa) flights_dm_with_key

#> ── Table source ───────────────────────────────────────────────────────────
-#> src:  sqlite 3.44.2 [/tmp/RtmpqSPcvW/nycflights13.sqlite]
+#> src:  sqlite 3.44.2 [/tmp/RtmpFjvJH1/nycflights13.sqlite]
 #> ── Metadata ───────────────────────────────────────────────────────────────
 #> Tables: `airlines`, `airports`, `flights`, `planes`, `sqlite_stat1`, … (7 total)
 #> Columns: 62
@@ -383,7 +383,7 @@ 

Foreign keys
 flights_dm_with_key %>% dm_add_fk(flights, origin, airports)
#> ── Table source ───────────────────────────────────────────────────────────
-#> src:  sqlite 3.44.2 [/tmp/RtmpqSPcvW/nycflights13.sqlite]
+#> src:  sqlite 3.44.2 [/tmp/RtmpFjvJH1/nycflights13.sqlite]
 #> ── Metadata ───────────────────────────────────────────────────────────────
 #> Tables: `airlines`, `airports`, `flights`, `planes`, `sqlite_stat1`, … (7 total)
 #> Columns: 62
diff --git a/news/index.html b/news/index.html
index aecb7fe7f..b64d89980 100644
--- a/news/index.html
+++ b/news/index.html
@@ -78,22 +78,8 @@
 

dm 1.0.10

Chore

-
  • Establish compatibility with igraph >= 2.0.0 (#2187).
  • -
  • Unblock every three hours.
  • -
  • Fix withr 3.0.0 compatibility (#2184).
  • -
  • Use dev odbc to fix SQL Server problem (#2178).
  • -
  • Configure Aviator to avoid setting the blocked label.
  • -
  • Snapshot updates for rcc-smoke (#2182).
  • -
  • Reexport tibble::glimpse() instead of pillar::glimpse() to avoid pillar dependency with roxygen2 7.3.0 (#2179).
  • -
-
-

Continuous integration

-
  • Fix unblock.
  • -
  • Add workflow that regularly unblocks all PRs.
  • -
-
-

Uncategorized

-
diff --git a/pkgdown.yml b/pkgdown.yml index 12cfbad26..d7c77cb69 100644 --- a/pkgdown.yml +++ b/pkgdown.yml @@ -22,7 +22,7 @@ articles: tech-dm-low-level: tech-dm-low-level.html tech-dm-naming: tech-dm-naming.html tech-dm-zoom: tech-dm-zoom.html -last_built: 2024-01-21T10:55Z +last_built: 2024-01-21T11:43Z urls: reference: https://dm.cynkra.com/reference article: https://dm.cynkra.com/articles diff --git a/search.json b/search.json index 8841c64b8..40b0a4092 100644 --- a/search.json +++ b/search.json @@ -1 +1 @@ -[{"path":"https://dm.cynkra.com/CODE_OF_CONDUCT.html","id":null,"dir":"","previous_headings":"","what":"Contributor Code of Conduct","title":"Contributor Code of Conduct","text":"contributors maintainers project, pledge respect people contribute reporting issues, posting feature requests, updating documentation, submitting pull requests patches, activities. committed making participation project harassment-free experience everyone, regardless level experience, gender, gender identity expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion. Examples unacceptable behavior participants include use sexual language imagery, derogatory comments personal attacks, trolling, public private harassment, insults, unprofessional conduct. Project maintainers right responsibility remove, edit, reject comments, commits, code, wiki edits, issues, contributions aligned Code Conduct. Project maintainers follow Code Conduct may removed project team. Instances abusive, harassing, otherwise unacceptable behavior may reported opening issue contacting one project maintainers. Code Conduct adapted Contributor Covenant (https://www.contributor-covenant.org), version 1.0.0, available https://contributor-covenant.org/version/1/0/0/.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":null,"dir":"","previous_headings":"","what":"Contributing to dm","title":"Contributing to dm","text":"outlines propose change dm set local development environment test databases.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"fixing-typos","dir":"","previous_headings":"","what":"Fixing typos","title":"Contributing to dm","text":"can fix typos, spelling mistakes, grammatical errors documentation directly using GitHub web interface, long changes made source file. generally means ’ll need edit roxygen2 comments .R, .Rd file. can find .R file generates .Rd reading comment first line.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"bigger-changes","dir":"","previous_headings":"","what":"Bigger changes","title":"Contributing to dm","text":"want make bigger change, ’s good idea first file issue make sure someone team agrees ’s needed. ’ve found bug, please file issue illustrates bug minimal reprex (also help write unit test, needed).","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"pull-request-process","dir":"","previous_headings":"Bigger changes","what":"Pull request process","title":"Contributing to dm","text":"Fork package clone onto computer. haven’t done , recommend using usethis::create_from_github(\"cynkra/dm\", fork = TRUE). Install development dependencies devtools::install_dev_deps(), make sure package passes R CMD check running devtools::check(). R CMD check doesn’t pass cleanly, ’s good idea ask help continuing. Create Git branch pull request (PR). recommend using usethis::pr_init(\"brief-description--change\"). Make changes, commit git, create PR running usethis::pr_push(), following prompts browser. title PR briefly describe change. body PR contain Fixes #issue-number. user-facing changes, add bullet top NEWS.md (.e. just first header). Follow style described https://style.tidyverse.org/news.html.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"general-remarks","dir":"","previous_headings":"Code style & design","what":"General remarks","title":"Contributing to dm","text":"New code follow tidyverse style guide. can use styler package apply styles, please don’t restyle code nothing PR. use roxygen2, Markdown syntax, documentation. use specific branch downlit knitting README.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"testing","dir":"","previous_headings":"Code style & design","what":"Testing","title":"Contributing to dm","text":"use {testthat}. exported functions tested. R scripts “tests/testthat/”” whose name start “helper” loaded devtools::load_all() available tests interactive debugging, can’t found :::. “helper-src.R” implements complex mechanism dm creating functions, dm_for_filter(), create remote dm different database management system depending context. allows tests use run different setups github actions. Additionally my_db_test_src() return relevant database. order test databases locally (typically debug CI tests fails can’t debug online log) can set environ variable “DM_TEST_SRC” “postgres”, “mariadb”, “mssql”, “duckdb” “sqlite”. might setup credentials “helper-config-db.R” . useful expectations can found “helper-expectations.R”. “helper-skip.R” helpers skip tests contexts, might useful instance feature supported databases. using expect_snapshot() DBMS dependent call (.e call uses dm_for_filter() copies my_db_test_src()), variant argument set my_test_src_name (global variable created loading helpers) snapshots end different directories.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"function-naming","dir":"","previous_headings":"Code style & design","what":"Function naming","title":"Contributing to dm","text":"See vignette function naming logic.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"error-messages","dir":"","previous_headings":"Code style & design","what":"Error messages","title":"Contributing to dm","text":"strive standardise error messages {dm}. failure triggered abort() function defined “error-helpers.R” error class defined dm_error_full() error message created separate function. Please follow pattern used \"error-helpers.R\". Exceptions might exist mostly waiting harmonised.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"test-databases","dir":"","previous_headings":"","what":"Test databases","title":"Contributing to dm","text":"repository comes docker-compose.yml file sets databases required testing. shell commands expected run top-level directory clone repository.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"macos-only-install-colima-to-run-docker-containers","dir":"","previous_headings":"Test databases","what":"macOS only: Install colima to run Docker containers","title":"Contributing to dm","text":"Take note address output, used later. See also https://docs.google.com/document/d/1axInaYK6oK6riRio72uTAeQazuork1X0clY9UL9gYoE/edit?usp=sharing details colima.","code":"brew install colima docker-compose colima start -c 4 -m 4 --vm-type vz --vz-rosetta --network-address colima status # INFO[0000] colima is running using macOS Virtualization.Framework # INFO[0000] arch: aarch64 # INFO[0000] runtime: docker # INFO[0000] mountType: virtiofs # INFO[0000] address: 192.168.64.2 # INFO[0000] socket: unix:///Users/kirill/.colima/default/docker.sock"},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"mssql-odbc-drivers","dir":"","previous_headings":"Test databases","what":"mssql: ODBC drivers","title":"Contributing to dm","text":"Linux: https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing--microsoft-odbc-driver--sql-server?view=sql-server-ver16&tabs=ubuntu18-install%2Calpine17-install%2Cdebian8-install%2Credhat7-13-install%2Crhel7-offline macOS: https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/install-microsoft-odbc-driver-sql-server-macos?view=sql-server-ver16","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"start-new-database-containers","dir":"","previous_headings":"Test databases","what":"Start new database containers","title":"Contributing to dm","text":"","code":"make db-start # May take several minutes to pull the images"},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"start-database-containers-without-forcing-recreation","dir":"","previous_headings":"Test databases","what":"Start database containers without forcing recreation","title":"Contributing to dm","text":"","code":"make db-restart # May take several minutes to pull the images"},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"connectivity-test","dir":"","previous_headings":"Test databases","what":"Connectivity test","title":"Contributing to dm","text":"macOS: Linux: Controlled environment variables: DM_TEST_DOCKER_HOST: 127.0.0.1 localhost Linux, see output colima status macOS (Linux, using localhost instead 127.0.0.1 may cause problems MariaDB.) See also Makefile. recommended adapt .Renviron connectivity established. subsequent instructions omit setting environment variables explicitly.","code":"DM_TEST_DOCKER_HOST=192.168.64.2 make connect DM_TEST_DOCKER_HOST=127.0.0.1 make connect"},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"test-against-a-specific-database-backend","dir":"","previous_headings":"Test databases","what":"Test against a specific database backend","title":"Contributing to dm","text":"","code":"make test-postgres"},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"test-against-all-backends","dir":"","previous_headings":"Test databases","what":"Test against all backends","title":"Contributing to dm","text":"","code":"make -j1 test"},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"test-on-docker","dir":"","previous_headings":"Test databases","what":"Test on Docker","title":"Contributing to dm","text":"","code":"# make docker-build # not necessary, image available on ghcr.io make docker-test"},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"code-of-conduct","dir":"","previous_headings":"","what":"Code of Conduct","title":"Contributing to dm","text":"Please note dm project released Contributor Code Conduct. contributing project agree abide terms.","code":""},{"path":"https://dm.cynkra.com/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2022 cynkra GmbH. Permission hereby granted, free charge, person obtaining copy software associated documentation files (“Software”), deal Software without restriction, including without limitation rights use, copy, modify, merge, publish, distribute, sublicense, /sell copies Software, permit persons Software furnished , subject following conditions: copyright notice permission notice shall included copies substantial portions Software. SOFTWARE PROVIDED “”, WITHOUT WARRANTY KIND, EXPRESS IMPLIED, INCLUDING LIMITED WARRANTIES MERCHANTABILITY, FITNESS PARTICULAR PURPOSE NONINFRINGEMENT. EVENT SHALL AUTHORS COPYRIGHT HOLDERS LIABLE CLAIM, DAMAGES LIABILITY, WHETHER ACTION CONTRACT, TORT OTHERWISE, ARISING , CONNECTION SOFTWARE USE DEALINGS SOFTWARE.","code":""},{"path":"https://dm.cynkra.com/TODO.html","id":null,"dir":"","previous_headings":"","what":"FIXME NEXT","title":"FIXME NEXT","text":"un-skip tests","code":""},{"path":"https://dm.cynkra.com/TODO.html","id":"later","dir":"","previous_headings":"","what":"Later","title":"FIXME NEXT","text":"Store keys objects dm, much easier debugging Add “strict mode” GitHub Actions: validation dm_from_def() Named PK unique constraints: https://github.com/r-dbi/DBI/pull/351#issuecomment-833438890 dm_paste(): remove select argument documentation, via _impl() function takes dots argument, like dm_rm_pk() Use copy_to(temporary = FALSE) sqlite duckdb: use file can discarded Requires schema support databases","code":""},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"from-database-dm_from_con","dir":"Articles","previous_headings":"Create dm…","what":"from database: dm_from_con()","title":"Relational data with dm: Cheat sheet","text":"","code":"con <- DBI::dbConnect(...) dm_from_con(con)"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"from-data-frames-dmdf1-df2----","dir":"Articles","previous_headings":"Create dm…","what":"from data frames: dm(df1, df2, ...)","title":"Relational data with dm: Cheat sheet","text":"","code":"dm(df1, df2, df3)"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"from-dm-dmdm1-df1---","dir":"Articles","previous_headings":"Create dm…","what":"from dm: dm(dm1, df1...)","title":"Relational data with dm: Cheat sheet","text":"","code":"dm(dm1, df1) dm(dm1, dm2)"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"add-keys-dm_add_pk-dm_add_fk","dir":"Articles","previous_headings":"Create dm…","what":"Add keys: dm_add_pk(), dm_add_fk()","title":"Relational data with dm: Cheat sheet","text":"Automatic MariaDB, SQL Server, Postgres, others.","code":""},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"primary-keys","dir":"Articles","previous_headings":"Create dm… > Add keys: dm_add_pk(), dm_add_fk()","what":"Primary keys","title":"Relational data with dm: Cheat sheet","text":"Identify potential primary keys: dm_enum_pk_candidates(): columns, candidate, . Add primary keys: Identify potential foreign keys: dm_enum_fk_candidates(): columns, candidate, . Add foreign keys:","code":"dm1 |> dm_add_pk(table, columns) dm1 |> dm_add_fk(table, column)"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"dm-objects-relational-data-models","dir":"Articles","previous_headings":"","what":"dm objects: relational data models","title":"Relational data with dm: Cheat sheet","text":"dm package provides grammar relational data models. helps maintain referential integrity. dm behaves like list tables (data frames lazy tables) capturing relationships tables.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"select-tables-dm_select_tbldm1----","dir":"Articles","previous_headings":"Resize dm","what":"Select tables: dm_select_tbl(dm1, ...)","title":"Relational data with dm: Cheat sheet","text":"","code":"dm1 |> dm_select_tbl(-df3)"},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"select-columns-dm_selectdm1-table----","dir":"Articles","previous_headings":"Resize dm","what":"Select columns: dm_select(dm1, table, ...)","title":"Relational data with dm: Cheat sheet","text":"Automatic update dm meta-information table relations.","code":"dm1 |> dm_select(df3, -c3, -c4)"},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"filter-rows-dm_filterdm1-table-pred","dir":"Articles","previous_headings":"Resize dm","what":"Filter rows: dm_filter(dm1, table = (pred))","title":"Relational data with dm: Cheat sheet","text":"Filter rows table condition defined, also directly/indirectly connected tables.","code":"dm1 |> dm_filter(df3 = (x == \"val\"))"},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"control-diagram-level-of-detail-display","dir":"Articles","previous_headings":"Visualize dm: dm_draw()","what":"Control diagram level of detail: display…","title":"Relational data with dm: Cheat sheet","text":"keys (default): dm_draw(view_type = \"keys_only\"). variables: dm_draw(view_type = \"\"). table names: dm_draw(view_type = \"title_only\").","code":"dm |> dm_draw( view_type = \"title_only\", rankdir = \"TB\" )"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"control-diagram-scope","dir":"Articles","previous_headings":"Visualize dm: dm_draw()","what":"Control diagram scope","title":"Relational data with dm: Cheat sheet","text":"visualize fewer tables first use dm_select_tbl().","code":""},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"control-diagram-colors-dm_set_colors","dir":"Articles","previous_headings":"Visualize dm: dm_draw()","what":"Control diagram colors: dm_set_colors()","title":"Relational data with dm: Cheat sheet","text":"","code":"dm |> dm_set_colors( pink = flights, orange = starts_with(\"air\") ) |> dm_draw()"},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"dm_examine_constraints","dir":"Articles","previous_headings":"Data checks","what":"dm_examine_constraints()","title":"Relational data with dm: Cheat sheet","text":"tibble information key constraints met violated.","code":""},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"dm_examine_cardinalities","dir":"Articles","previous_headings":"Data checks","what":"dm_examine_cardinalities()","title":"Relational data with dm: Cheat sheet","text":"tibble information cardinality foreign keys constraints.","code":""},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"check_keydf-col1","dir":"Articles","previous_headings":"Data checks","what":"check_key(df, col1)","title":"Relational data with dm: Cheat sheet","text":"returns error unique key.","code":""},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"check_subsetdf1-df2","dir":"Articles","previous_headings":"Data checks","what":"check_subset(df1, df2)","title":"Relational data with dm: Cheat sheet","text":"returns error df1 subset df2.","code":""},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"check_set_equalitydf1-df2","dir":"Articles","previous_headings":"Data checks","what":"check_set_equality(df1, df2)","title":"Relational data with dm: Cheat sheet","text":"returns error df1 df2 sets.","code":""},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"fix-column-names-dm_disambiguate_cols","dir":"Articles","previous_headings":"Data checks","what":"Fix column names: dm_disambiguate_cols()","title":"Relational data with dm: Cheat sheet","text":"dm_disambiguate_cols(dm1) ensures columns dm unique names.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"wide-tibble-cascade-joins-with-dm_flatten_to_tbl","dir":"Articles","previous_headings":"Transform dm into tibble","what":"Wide tibble: Cascade joins with dm_flatten_to_tbl()","title":"Relational data with dm: Cheat sheet","text":"direct neighbours: dm_flatten_to_tbl() neighbours: dm_flatten_to_tbl(.recursive = TRUE)","code":"dm1 |> dm_flatten_to_tbl( .start = df1 ) dm1 |> dm_flatten_to_tbl( .start = df1, .recursive = TRUE )"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"single-tibble-dm-dm_wrap_tbl","dir":"Articles","previous_headings":"Transform dm into tibble","what":"Single tibble dm: dm_wrap_tbl()","title":"Relational data with dm: Cheat sheet","text":"Parent tables packed — dm_pack_tbl(). Child tables nested — dm_nest_tbl().","code":"dm1 |> dm_wrap_tbl( root = green_df )"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"retrieve-one-table-of-the-dm-pull_tbl","dir":"Articles","previous_headings":"Transform dm into tibble","what":"Retrieve one table of the dm: pull_tbl()","title":"Relational data with dm: Cheat sheet","text":"dm zoomed, retrieve zoomed table automatically.","code":"dm1 |> pull_tbl( dm1, green_df, keyed = TRUE ) dm1 |> dm_zoom_to(green_df) |> pull_tbl()"},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"method-1-deconstruct-and-reconstruct","dir":"Articles","previous_headings":"Mutate, create, analyze tables","what":"Method 1: deconstruct and reconstruct","title":"Relational data with dm: Cheat sheet","text":"dm_get_tables(keyed = TRUE): keep information primary foreign keys). tidyverse pipeline table interest. Optional: update dm object:","code":"dm_tbl <- dm1 |> dm_get_tables(keyed = TRUE) new_table1 <- dm_tbl$table1 |> mutate(...) dm1 |> dm_select_tbl(-table1) |> dm(table1 = new_table1)"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"method-2-zoom","dir":"Articles","previous_headings":"Mutate, create, analyze tables","what":"Method 2: zoom","title":"Relational data with dm: Cheat sheet","text":"dm_zoom_to(): Zoom table. tidyverse pipeline (mutate(), etc.). dm_update_zoomed() (replace) / dm_insert_zoomed()","code":"zoomed_dm1 <- dm1 |> dm_zoom_to(green_df) zoomed_dm2 <- zoomed_dm1 |> mutate(var = thing) dm3 <- zoomed_dm2 |> dm_update_zoomed()"},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"export-dm-object-to-database-copy_dm_to","dir":"Articles","previous_headings":"Modify database source of a dm","what":"Export dm object to database: copy_dm_to()","title":"Relational data with dm: Cheat sheet","text":"Need database connection — DBI::dbConnect().","code":"con <- DBI::dbConnect(...) # Persistent tables: persistent_dm <- copy_dm_to( con, dm1, temporary = FALSE ) DBI::dbDisconnect(con)"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"insert-update-or-remove-rows-in-a-dm","dir":"Articles","previous_headings":"","what":"Insert, update or remove rows in a dm","title":"Relational data with dm: Cheat sheet","text":"Methods: dm_rows_insert(dm1, dm2): adds new rows dm_rows_update(dm1, dm2): changes values rows dm_rows_patch(dm1, dm2): fills missing values dm_rows_upsert(dm1, dm2): adds new changes rows dm_rows_delete(dm1, dm2): deletes rows dm immutable, except functions mutable backend (database) in_place = TRUE.","code":"dm1 |> dm_rows_insert(dm2, in_place = FALSE) dm1 |> dm_rows_insert(dm2, in_place = TRUE)"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"creating-a-dm-object","dir":"Articles","previous_headings":"","what":"Creating a dm object","title":"Getting started with dm","text":"dm objects can created individual tables loaded directly relational data model RDBMS (relational database management system). demonstration, ’re going work model hosted public server. first thing need connection RDBMS hosting data. create dm object RDBMS using dm_from_con(), passing connection object just created first argument. dm object interrogates RDBMS table column information, primary foreign keys. Currently, primary foreign keys available SQL Server, Postgres MariaDB.","code":"library(RMariaDB) fin_db <- dbConnect( MariaDB(), username = \"guest\", password = \"relational\", dbname = \"Financial_ijs\", host = \"relational.fit.cvut.cz\" ) #> Error in `dm:::financial_db_con()`: #> ! Can't connect to relational.fit.cvut.cz or databases.pacha.dev: #> Failed to connect: Can't connect to MySQL server on 'relational.fit.cvut.cz:3306' (101) #> Failed to connect: Can't connect to MySQL server on 'databases.pacha.dev:3306' (110) library(dm) fin_dm <- dm_from_con(fin_db) #> Error in eval(expr, envir, enclos): object 'fin_db' not found fin_dm #> Error in eval(expr, envir, enclos): object 'fin_dm' not found"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"selecting-tables","dir":"Articles","previous_headings":"","what":"Selecting tables","title":"Getting started with dm","text":"dm object can accessed like named list tables: Additionally, dm functions pipe-friendly support tidy evaluation. can use [ dm_select_tbl() verb derive smaller dm loans, accounts, districts trans tables:","code":"names(fin_dm) #> Error in eval(expr, envir, enclos): object 'fin_dm' not found fin_dm$loans #> Error in eval(expr, envir, enclos): object 'fin_dm' not found dplyr::count(fin_dm$trans) #> Error in eval(expr, envir, enclos): object 'fin_dm' not found fin_dm_small <- fin_dm[c(\"loans\", \"accounts\", \"districts\", \"trans\")] #> Error in eval(expr, envir, enclos): object 'fin_dm' not found fin_dm_small <- fin_dm %>% dm_select_tbl(loans, accounts, districts, trans) #> Error in eval(expr, envir, enclos): object 'fin_dm' not found"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"linking-tables-by-adding-keys","dir":"Articles","previous_headings":"","what":"Linking tables by adding keys","title":"Getting started with dm","text":"many cases, dm_from_con() already returns dm keys set. , dm allows us define primary foreign keys . , use learn_keys = FALSE obtain dm object tables. data model, id columns uniquely identify records accounts loans tables, used primary key. primary key defined dm_add_pk(). loan linked one account via account_id column loans table, relationship established dm_add_fk().","code":"library(dm) fin_dm_small <- dm_from_con(fin_db, learn_keys = FALSE) %>% dm_select_tbl(loans, accounts, districts, trans) #> Error in eval(expr, envir, enclos): object 'fin_db' not found fin_dm_keys <- fin_dm_small %>% dm_add_pk(table = accounts, columns = id) %>% dm_add_pk(loans, id) %>% dm_add_fk(table = loans, columns = account_id, ref_table = accounts) %>% dm_add_pk(trans, id) %>% dm_add_fk(trans, account_id, accounts) %>% dm_add_pk(districts, id) %>% dm_add_fk(accounts, district_id, districts) #> Error in eval(expr, envir, enclos): object 'fin_dm_small' not found"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"visualizing-a-data-model","dir":"Articles","previous_headings":"","what":"Visualizing a data model","title":"Getting started with dm","text":"diagram data model quickest way verify ’re right track. can display visual summary dm time. default display table name, defined keys, links tables. Visualizing dm current state, can see keys created link tables together. Color guides eye.","code":"fin_dm_keys %>% dm_set_colors(darkgreen = c(loans, accounts), darkblue = trans, grey = districts) %>% dm_draw() #> Error in eval(expr, envir, enclos): object 'fin_dm_keys' not found"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"accessing-a-data-model-as-a-table","dir":"Articles","previous_headings":"","what":"Accessing a data model as a table","title":"Getting started with dm","text":"want perform modeling analysis relational model, need transform tabular format R functions can work . argument recursive = TRUE, dm_flatten_to_tbl() automatically follow foreign keys across tables gather available columns single table. Apart rows printed , data fetched database. Use select() reduce number columns fetched, collect() retrieve entire result local processing.","code":"fin_dm_keys %>% dm_flatten_to_tbl(loans, .recursive = TRUE) #> Error in eval(expr, envir, enclos): object 'fin_dm_keys' not found loans_df <- fin_dm_keys %>% dm_flatten_to_tbl(loans, .recursive = TRUE) %>% select(id, amount, duration, A3) %>% collect() #> Error in eval(expr, envir, enclos): object 'fin_dm_keys' not found model <- lm(amount ~ duration + A3, data = loans_df) #> Error in eval(mf, parent.frame()): object 'loans_df' not found model #> Error in eval(expr, envir, enclos): object 'model' not found"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"operations-on-table-data-within-a-dm","dir":"Articles","previous_headings":"","what":"Operations on table data within a dm","title":"Getting started with dm","text":"don’t need take extra step exporting data work . dm object, complete access dplyr’s data manipulation verbs. operate data within individual tables. work particular table use dm_zoom_to() set context chosen table. can perform dplyr operations want. Note , example, use dm_insert_zoomed() add results new table data model. table temporary deleted session ends. want make permanent changes data model RDBMS, please see “Persisting results” section vignette(\"howto-dm-db\").","code":"fin_dm_total <- fin_dm_keys %>% dm_zoom_to(loans) %>% group_by(account_id) %>% summarize(total_amount = sum(amount, na.rm = TRUE)) %>% ungroup() %>% dm_insert_zoomed(\"total_loans\") #> Error in eval(expr, envir, enclos): object 'fin_dm_keys' not found fin_dm_total$total_loans #> Error in eval(expr, envir, enclos): object 'fin_dm_total' not found"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"checking-constraints","dir":"Articles","previous_headings":"","what":"Checking constraints","title":"Getting started with dm","text":"’s always smart check data model follows specifications. building model changing existing models adding tables keys, even important new model validated. dm_examine_constraints() checks primary foreign keys reports violate expected constraints. constraint checking, including cardinality, finding candidate columns keys, normalization, see vignette(\"tech-dm-low-level\").","code":"fin_dm_total %>% dm_examine_constraints() #> Error in eval(expr, envir, enclos): object 'fin_dm_total' not found #> Error in h(simpleError(msg, call)): error in evaluating the argument 'conn' in selecting a method for function 'dbDisconnect': object 'fin_db' not found"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"next-steps","dir":"Articles","previous_headings":"","what":"Next Steps","title":"Getting started with dm","text":"Now introduced basic operation dm, next step learn dm methods particular use case requires. data RDBMS? move vignette(\"howto-dm-db\") detailed look working existing relational data model. data data frames, want read vignette(\"howto-dm-df\") next. like know relational data models order get dm, check vignette(\"howto-dm-theory\"). ’re familiar relational data models, want know work dm, vignette(\"tech-dm-join\"), vignette(\"tech-dm-filter\"), vignette(\"tech-dm-zoom\") good next step.","code":""},{"path":"https://dm.cynkra.com/articles/dm.html","id":"standing-on-the-shoulders-of-giants","dir":"Articles","previous_headings":"","what":"Standing on the shoulders of giants","title":"Getting started with dm","text":"{dm} package follows tidyverse principles: dm objects immutable (data never overwritten place) functions used dm objects pipeable (.e., return new dm table objects) tidy evaluation used (unquoted function arguments supported) {dm} package builds heavily upon {datamodelr} package, upon tidyverse. ’re looking forward good collaboration! {polyply} package similar intent slightly different interface. {data.cube} package quite intent using array-like interface. Articles {rquery} package discuss join controllers join dependency sorting, intent move declaration table relationships code data. {tidygraph} package stores network two related tables nodes edges, compatible {dplyr} workflows. object-oriented programming languages, object-relational mapping similar concept attempts map set related tables class hierarchy.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-copy.html","id":"copy-models-or-copy-tables","dir":"Articles","previous_headings":"","what":"Copy models or copy tables?","title":"Copy tables to and from a database","text":"Using {dm} can persist entire relational data model single function call. copy_dm_to() move entire model destination RDBMS. may need deploy new model. may want add new tables existing model RDBMS. requirements can handled using compute() copy_to() methods. Calling compute() copy_to() requires write permission RDBMS; otherwise, error returned. Therefore, following examples, instantiate test dm object move local SQLite database full permissions. {dm} {dbplyr} designed treat code used manipulate local SQLite database remote RDBMS similarly. steps already introduced vignette(\"howto-dm-db\") discussed detail Copying relational model section.","code":"library(dm) library(dbplyr) fin_dm <- dm_financial() %>% dm_select_tbl(-trans) %>% collect() #> Error in `financial_db_con()` at dm/R/financial.R:18:3: #> ! Can't connect to relational.fit.cvut.cz or databases.pacha.dev: #> Failed to connect: Can't connect to MySQL server on 'relational.fit.cvut.cz:3306' (101) #> Failed to connect: Can't connect to MySQL server on 'databases.pacha.dev:3306' (110) local_db <- DBI::dbConnect(RSQLite::SQLite()) deployed_dm <- copy_dm_to(local_db, fin_dm, temporary = FALSE) #> Error in eval(expr, envir, enclos): object 'fin_dm' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-copy.html","id":"copying-tables","dir":"Articles","previous_headings":"","what":"Copying and persisting individual tables","title":"Copy tables to and from a database","text":"part data analysis, may combine tables multiple sources create links existing tables via foreign keys, create new tables holding data summaries. example , already discussed vignette(\"howto-dm-db\"), computes total amount loans account. derived table total_loans lazy table powered {dbplyr} package: results materialized, instead SQL query built executed time data requested. avoid recomputing query every time use total_loans, call compute() right inserting derived table dm_insert_tbl(). compute() forces computation query stores full results table RDBMS. Note differences queries returned sql_render(). my_dm_total$total_loans still lazily evaluated full query constructed chain operations generated still place needs run access . Contrast my_dm_total_computed$total_loans, query realized accessing rows requires simple SELECT * statement. table name, dbplyr_001, automatically generated name argument supplied compute(). default create temporary tables. want results persist across sessions permanent tables, compute() must called argument temporary = FALSE table name name argument. See ?compute details. called whole dm object (without zoom), compute() materializes tables new temporary tables executing associated SQL query storing full results. Depending size data, may take considerable time may even infeasible. may useful occasionally create snapshots data subject change.","code":"my_dm_total <- deployed_dm %>% dm_zoom_to(loans) %>% group_by(account_id) %>% summarize(total_amount = sum(amount, na.rm = TRUE)) %>% ungroup() %>% dm_insert_zoomed(\"total_loans\") #> Error in eval(expr, envir, enclos): object 'deployed_dm' not found my_dm_total$total_loans %>% sql_render() #> Error in eval(expr, envir, enclos): object 'my_dm_total' not found my_dm_total_computed <- deployed_dm %>% dm_zoom_to(loans) %>% group_by(account_id) %>% summarize(total_amount = sum(amount, na.rm = TRUE)) %>% ungroup() %>% compute() %>% dm_insert_zoomed(\"total_loans\") #> Error in eval(expr, envir, enclos): object 'deployed_dm' not found my_dm_total_computed$total_loans %>% sql_render() #> Error in eval(expr, envir, enclos): object 'my_dm_total_computed' not found #> Error in eval(expr, envir, enclos): object 'my_dm_total_computed' not found my_dm_total_snapshot <- my_dm_total %>% compute() #> Error in eval(expr, envir, enclos): object 'my_dm_total' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-copy.html","id":"data-frames","dir":"Articles","previous_headings":"","what":"Adding local data frames to an RDBMS","title":"Copy tables to and from a database","text":"need add local data frames existing dm object, use copy_to() method. takes arguments copy_dm_to(), except second argument takes data frame rather dm. result derived dm object contains new table. demonstrate use copy_to(), example use {dm} pull consolidated data several tables RDBMS, estimate linear model data, insert residuals back RDBMS link existing tables. done local SQLite database, process work unchanged supported RDBMS. Please note use recursive = TRUE dm_flatten_to_tbl(). method gathers linked information single wide table. follows foreign key relations starting table supplied argument gathers columns related tables, disambiguating column names goes. code, select() statement isolates columns need model. collect() works similarly compute() forcing execution underlying SQL query, returns results local tibble. , local tibble, loans_df, used estimate linear model residuals stored along original associated id new tibble, loans_residuals. id column necessary link new tibble tables dm collected . Adding loans_residuals dm done using copy_to(). call method includes argument temporary = FALSE want table persist beyond current session. pipeline create necessary primary foreign keys integrate table rest relational model. information key creation, see vignette(\"howto-dm-db\") vignette(\"howto-dm-theory\").","code":"loans_df <- deployed_dm %>% dm_flatten_to_tbl(loans, .recursive = TRUE) %>% select(id, amount, duration, A3) %>% collect() #> Error in eval(expr, envir, enclos): object 'deployed_dm' not found model <- lm(amount ~ duration + A3, data = loans_df) #> Error in eval(mf, parent.frame()): object 'loans_df' not found loans_residuals <- tibble::tibble( id = loans_df$id, resid = unname(residuals(model)) ) #> Error: object 'loans_df' not found loans_residuals #> Error in eval(expr, envir, enclos): object 'loans_residuals' not found my_dm_sqlite_resid <- copy_to(deployed_dm, loans_residuals, temporary = FALSE) %>% dm_add_pk(loans_residuals, id) %>% dm_add_fk(loans_residuals, id, loans) #> Error in eval(expr, envir, enclos): object 'deployed_dm' not found my_dm_sqlite_resid %>% dm_set_colors(violet = loans_residuals) %>% dm_draw() #> Error in eval(expr, envir, enclos): object 'my_dm_sqlite_resid' not found my_dm_sqlite_resid %>% dm_examine_constraints() #> Error in eval(expr, envir, enclos): object 'my_dm_sqlite_resid' not found my_dm_sqlite_resid$loans_residuals #> Error in eval(expr, envir, enclos): object 'my_dm_sqlite_resid' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-copy.html","id":"copy-model","dir":"Articles","previous_headings":"","what":"Persisting a relational model with copy_dm_to()","title":"Copy tables to and from a database","text":"Persistence, intended make permanent changes, requires write access source RDBMS. code repeat code opened Copying persisting individual tables section beginning tutorial. uses {dm} convenience function dm_financial() create dm object corresponding data model public dataset repository. dm object downloaded locally first, deploying local SQLite database. dm_select_tbl() used exclude transaction table trans due size, collect() method retrieves remaining tables returns local dm object. just simple move local relational model RDBMS. Note call copy_dm_to() argument temporary = FALSE supplied. Without argument, model still copied database, argument default temporary = TRUE data deleted session ends. output can observe src deployed_dm SQLite, fin_dm source indicated local data model. Copying relational model empty database simplest use case copy_dm_to(). want copy model RDBMS already populated, aware copy_dm_to() overwrite pre-existing tables. case need use table_names argument give tables unique names. table_names can named character vector, names matching table names dm object values containing desired names RDBMS, function one-sided formula. example , paste0() used add prefix table names provide uniqueness. Note different table names dup_dm$accounts deployed_dm$accounts. , table name accounts dm object, link different tables database. dup_dm, table backed table dup_accounts RDBMS. dm_deployed$accounts shows us table still backed accounts table copy_dm_to() operation performed preceding example. Managing tables RDBMS outside scope dm. find need remove tables perform operations directly RDBMS, see {DBI} package. done, forget disconnect:","code":"dm_financial() %>% dm_nrow() #> Error in `financial_db_con()` at dm/R/financial.R:18:3: #> ! Can't connect to relational.fit.cvut.cz or databases.pacha.dev: #> Failed to connect: Can't connect to MySQL server on 'relational.fit.cvut.cz:3306' (101) #> Failed to connect: Can't connect to MySQL server on 'databases.pacha.dev:3306' (110) fin_dm <- dm_financial() %>% dm_select_tbl(-trans) %>% collect() #> Error in `financial_db_con()` at dm/R/financial.R:18:3: #> ! Can't connect to relational.fit.cvut.cz or databases.pacha.dev: #> Failed to connect: Can't connect to MySQL server on 'relational.fit.cvut.cz:3306' (101) #> Failed to connect: Can't connect to MySQL server on 'databases.pacha.dev:3306' (110) fin_dm #> Error in eval(expr, envir, enclos): object 'fin_dm' not found destination_db <- DBI::dbConnect(RSQLite::SQLite()) deployed_dm <- copy_dm_to(destination_db, fin_dm, temporary = FALSE) #> Error in eval(expr, envir, enclos): object 'fin_dm' not found deployed_dm #> Error in eval(expr, envir, enclos): object 'deployed_dm' not found dup_dm <- copy_dm_to(destination_db, fin_dm, temporary = FALSE, table_names = ~ paste0(\"dup_\", .x)) #> Error in eval(expr, envir, enclos): object 'fin_dm' not found dup_dm #> Error in eval(expr, envir, enclos): object 'dup_dm' not found remote_name(dup_dm$accounts) #> Error in eval(expr, envir, enclos): object 'dup_dm' not found remote_name(deployed_dm$accounts) #> Error in eval(expr, envir, enclos): object 'deployed_dm' not found DBI::dbDisconnect(destination_db) DBI::dbDisconnect(local_db)"},{"path":"https://dm.cynkra.com/articles/howto-dm-copy.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"Copy tables to and from a database","text":"dm makes straightforward deploy complete relational model RDBMS using copy_dm_to() function. tables created relational model analysis development, compute() copy_to() can used persist (using argument temporary = FALSE) sessions copy local tables database dm. collect() method downloads entire dm object fits memory database.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-copy.html","id":"further-reading","dir":"Articles","previous_headings":"","what":"Further Reading","title":"Copy tables to and from a database","text":"need finer-grained control modifications relational model, see vignette(\"howto-dm-rows\") introduction row level operations, including updates, insertions, deletions patching. like know relational data models order get dm, check vignette(\"howto-dm-theory\"). ’re familiar relational data models want know work dm, vignette(\"tech-dm-join\"), vignette(\"tech-dm-filter\"), vignette(\"tech-dm-zoom\") good next step.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"building-a-dm-from-a-subset-of-tables","dir":"Articles","previous_headings":"","what":"Building a dm from a subset of tables","title":"Create a dm object from a database","text":"dm can also constructed individual tables views. useful want work subset database’s tables, perhaps different schemas. , use $ notation extract two tables financial database. create dm passing tables arguments. Note tables arguments source, case my_db.","code":"dbListTables(my_db) #> Error in h(simpleError(msg, call)): error in evaluating the argument 'conn' in selecting a method for function 'dbListTables': object 'my_db' not found library(dbplyr) loans <- tbl(my_db, \"loans\") #> Error in eval(expr, envir, enclos): object 'my_db' not found accounts <- tbl(my_db, \"accounts\") #> Error in eval(expr, envir, enclos): object 'my_db' not found my_manual_dm <- dm(loans, accounts) #> Error in `map()` at dm/R/dm.R:58:3: #> ℹ In index: 1. #> Caused by error: #> ! object 'loans' not found my_manual_dm #> Error in eval(expr, envir, enclos): object 'my_manual_dm' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"defining-primary-and-foreign-keys","dir":"Articles","previous_headings":"","what":"Defining Primary and Foreign Keys","title":"Create a dm object from a database","text":"Primary keys foreign keys relational database tables linked . primary key column column tuple unique value row within table. foreign key column column tuple containing primary key row another table. Foreign keys act cross references tables. specify relationships gives us relational database. information keys crash course databases, see vignette(\"howto-dm-theory\"). many cases, dm_from_con() already returns dm keys set. , dm allows us define primary foreign keys . , use learn_keys = FALSE obtain dm object tables. model diagram provided test database loosely illustrates intended relationships tables. diagram, can see loans table linked accounts table. , create links 3 steps: Add primary key id accounts table Add primary key id loans table Add foreign key account_id loans table referencing accounts table assign colors tables draw structure dm. Note foreign key created, primary key referenced table need specified, primary key must already defined. , mentioned , primary foreign key constraints database currently imported Postgres, SQL Server databases MariaDB, dm_from_con() used. process key definition needs done manually databases. instantiated dm object, can continue add tables . tables original source dm, use dm()","code":"library(dm) fin_dm <- dm_from_con(my_db, learn_keys = FALSE) #> Error in eval(expr, envir, enclos): object 'my_db' not found fin_dm #> Error in eval(expr, envir, enclos): object 'fin_dm' not found my_dm_keys <- my_manual_dm %>% dm_add_pk(accounts, id) %>% dm_add_pk(loans, id) %>% dm_add_fk(loans, account_id, accounts) %>% dm_set_colors(green = loans, orange = accounts) #> Error in eval(expr, envir, enclos): object 'my_manual_dm' not found my_dm_keys %>% dm_draw() #> Error in eval(expr, envir, enclos): object 'my_dm_keys' not found trans <- tbl(my_db, \"trans\") #> Error in eval(expr, envir, enclos): object 'my_db' not found my_dm_keys %>% dm(trans) #> Error in `map()` at dm/R/dm.R:58:3: #> ℹ In index: 1. #> Caused by error: #> ! object 'my_dm_keys' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"serializing-a-dm-object","dir":"Articles","previous_headings":"","what":"Serializing a dm object","title":"Create a dm object from a database","text":"dm object always linked database connection. connection lost dm object saved disk, e.g., saving workspace R Posit Workbench, using knitr chunks: connection tightly coupled tables dm object replaced. practical solution define, dm object project uses, function recreates using new database connection: avoid reconnecting /recreating every time need dm object, can use memoise::memoise() memoize connection /dm functions.","code":"unserialize(serialize(my_dm_keys, NULL)) #> Error in eval(expr, envir, enclos): object 'my_dm_keys' not found my_db_fun <- function() { dbConnect( MariaDB(), username = \"guest\", password = \"relational\", dbname = \"Financial_ijs\", host = \"relational.fit.cvut.cz\" ) } my_dm_fun <- function(my_db = my_db_fun()) { loans <- tbl(my_db, \"loans\") accounts <- tbl(my_db, \"accounts\") dm(loans, accounts) %>% dm_add_pk(accounts, id) %>% dm_add_pk(loans, id) %>% dm_add_fk(loans, account_id, accounts) %>% dm_set_colors(green = loans, orange = accounts) } #> Error in `dm:::financial_db_con()`: #> ! Can't connect to relational.fit.cvut.cz or databases.pacha.dev: #> Failed to connect: Can't connect to MySQL server on 'relational.fit.cvut.cz:3306' (101) #> Failed to connect: Can't connect to MySQL server on 'databases.pacha.dev:3306' (110)"},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"transient-nature-of-operations","dir":"Articles","previous_headings":"","what":"Transient nature of operations","title":"Create a dm object from a database","text":"Like R objects, dm immutable operations performed transient unless stored new variable. , like {dbplyr}, results never written database unless explicitly requested.","code":"my_dm_keys #> Error in eval(expr, envir, enclos): object 'my_dm_keys' not found my_dm_trans <- my_dm_keys %>% dm(trans) #> Error in `map()` at dm/R/dm.R:58:3: #> ℹ In index: 1. #> Caused by error: #> ! object 'my_dm_keys' not found my_dm_trans #> Error in eval(expr, envir, enclos): object 'my_dm_trans' not found my_dm_keys %>% dm_flatten_to_tbl(loans) #> Error in eval(expr, envir, enclos): object 'my_dm_keys' not found my_dm_keys %>% dm_flatten_to_tbl(loans) %>% sql_render() #> Error in eval(expr, envir, enclos): object 'my_dm_keys' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"performing-operations-on-tables-by-zooming","dir":"Articles","previous_headings":"","what":"Performing operations on tables by “zooming”","title":"Create a dm object from a database","text":"dm collection tables, wish perform operations individual table, set context operations using dm_zoom_to(). See vignette(\"tech-dm-zoom\") detail zooming. dm operations transient unless persistence explicitly requested. make chain manipulations selected table permanent, assign result dm_insert_zoomed() new object, my_dm_total. new dm object, derived my_dm_keys, new lazy table total_loans linked accounts table. Context set table “loans” using dm_zoom_to(loans). can learn zooming tutorial vignette(\"tech-dm-zoom\"). use {dplyr} functions zoomed table generate new summary table. summarize() returns temporary table one row group created preceding group_by() function. columns temporary table constrained columns passed arguments group_by() function column(s) created summarize() function. dm_insert_zoomed(\"total_loans\") adds temporary table created summarize() data model new name, total_loans. grouping variable account_id primary key, new derived table automatically linked accounts table. resulting table total_loans can accessed like table dm object. lazy table powered {dbplyr} package: results materialized; instead, SQL query built executed time data requested. Use compute() zoomed table materialize temporary table avoid recomputing. See vignette(\"howto-dm-copy\") details.","code":"my_dm_total <- my_dm_keys %>% dm_zoom_to(loans) %>% group_by(account_id) %>% summarize(total_amount = sum(amount, na.rm = TRUE)) %>% ungroup() %>% dm_insert_zoomed(\"total_loans\") #> Error in eval(expr, envir, enclos): object 'my_dm_keys' not found my_dm_total %>% dm_set_colors(violet = total_loans) %>% dm_draw() #> Error in eval(expr, envir, enclos): object 'my_dm_total' not found my_dm_total$total_loans #> Error in eval(expr, envir, enclos): object 'my_dm_total' not found my_dm_total$total_loans %>% sql_render() #> Error in eval(expr, envir, enclos): object 'my_dm_total' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"downloading-data","dir":"Articles","previous_headings":"","what":"Downloading data","title":"Create a dm object from a database","text":"becomes necessary move data locally analysis reporting, {dm} method collect() used. Operations dm objects databases limited report first ten results. collect() forces evaluation SQL queries generation complete set results. resulting tables transferred RDBMS stored local tibbles. Use method caution. sure size dataset downloading, can call dm_nrow() dm row count data model’s tables.","code":"my_dm_local <- my_dm_total %>% collect() #> Error in eval(expr, envir, enclos): object 'my_dm_total' not found my_dm_local$total_loans #> Error in eval(expr, envir, enclos): object 'my_dm_local' not found my_dm_total %>% dm_nrow() #> Error in eval(expr, envir, enclos): object 'my_dm_total' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"persist","dir":"Articles","previous_headings":"","what":"Persisting results","title":"Create a dm object from a database","text":"just simple move local relational model RDBMS using collect() download . method used copy_dm_to() takes arguments database connection dm object. example , local SQLite database used demonstrate , {dm} designed work RDBMS supported {DBI}. output, can observe src deployed_dm SQLite database, my_dm_local source local R environment. Persisting tables covered detail vignette(\"howto-dm-copy\"). done, forget disconnect:","code":"destination_db <- DBI::dbConnect(RSQLite::SQLite()) deployed_dm <- copy_dm_to(destination_db, my_dm_local) #> Error in eval(expr, envir, enclos): object 'my_dm_local' not found deployed_dm #> Error in eval(expr, envir, enclos): object 'deployed_dm' not found my_dm_local #> Error in eval(expr, envir, enclos): object 'my_dm_local' not found DBI::dbDisconnect(destination_db) DBI::dbDisconnect(my_db) #> Error in h(simpleError(msg, call)): error in evaluating the argument 'conn' in selecting a method for function 'dbDisconnect': object 'my_db' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"Create a dm object from a database","text":"tutorial, demonstrated simple load database dm object begin working . Currently, loading dm RDBMS requires manually set key relations, {dm} provides methods make straightforward. planned future versions dm support automatic key creation RDBMS. next step read vignette(\"howto-dm-copy\"), copying tables RDBMS covered. vignette(\"howto-dm-rows\") discusses manipulation individual rows database.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"further-reading","dir":"Articles","previous_headings":"","what":"Further reading","title":"Create a dm object from a database","text":"vignette(\"howto-dm-df\") – data local data frames? article covers creating data model local data frames, including building relationships data model, verifying model, leveraging power dplyr operate data model. vignette(\"howto-dm-theory\") – know data frames little relational data models? quick introduction walk key similarities differences, show move individual data frames relational data model.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"creating-a-dm-object-from-data-frames","dir":"Articles","previous_headings":"","what":"Creating a dm object from data frames","title":"Create a dm object from data frames","text":"example data set using available nycflights13 package. five tables working contain information flights departed airports New York destinations United States 2013: flights represents trips taken planes names transport organizations (name) abbreviated codes (carrier) airports indicates ports departure (origin) destination (dest) weather contains meteorological information hour planes describes characteristics aircraft ’ve loaded {nycflights13}, aforementioned tables work environment, ready accessed. data probably available R package. Whatever format , need able load data frames R session. data large, consider using dm connect database instead. See vignette(\"howto-dm-db\") details using dm databases.","code":"library(nycflights13) airports #> # A tibble: 1,458 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 04G Lansdowne Airport 41.1 -80.6 1044 -5 A Amer… #> 2 06A Moton Field Municipal Airport 32.5 -85.7 264 -6 A Amer… #> 3 06C Schaumburg Regional 42.0 -88.1 801 -6 A Amer… #> 4 06N Randall Airport 41.4 -74.4 523 -5 A Amer… #> 5 09J Jekyll Island Airport 31.1 -81.4 11 -5 A Amer… #> 6 0A9 Elizabethton Municipal Airpo… 36.4 -82.2 1593 -5 A Amer… #> 7 0G6 Williams County Airport 41.5 -84.5 730 -5 A Amer… #> 8 0G7 Finger Lakes Regional Airport 42.9 -76.8 492 -5 A Amer… #> 9 0P2 Shoestring Aviation Airfield 39.8 -76.6 1000 -5 U Amer… #> 10 0S9 Jefferson County Intl 48.1 -123. 108 -8 A Amer… #> # ℹ 1,448 more rows"},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"adding-tables","dir":"Articles","previous_headings":"","what":"Adding Tables","title":"Create a dm object from data frames","text":"first step tell dm tables want work connected. can use dm(), passing table names arguments. as_dm() function alternative works already list tables.","code":"library(dm) flights_dm_no_keys <- dm(airlines, airports, flights, planes, weather) flights_dm_no_keys #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 0 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"a-dm-is-a-list","dir":"Articles","previous_headings":"","what":"A dm is a list","title":"Create a dm object from data frames","text":"dm objects behave like lists user- console-friendly print format. fact, using dm nicer list organizing data frames environment easy first step towards using dm data modeling functionality. Subsetting syntax dm object (either subscript name) similar syntax lists, don’t need learn additional syntax work dm objects.","code":"names(flights_dm_no_keys) #> [1] \"airlines\" \"airports\" \"flights\" \"planes\" \"weather\" flights_dm_no_keys$airports #> # A tibble: 1,458 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 04G Lansdowne Airport 41.1 -80.6 1044 -5 A Amer… #> 2 06A Moton Field Municipal Airport 32.5 -85.7 264 -6 A Amer… #> 3 06C Schaumburg Regional 42.0 -88.1 801 -6 A Amer… #> 4 06N Randall Airport 41.4 -74.4 523 -5 A Amer… #> 5 09J Jekyll Island Airport 31.1 -81.4 11 -5 A Amer… #> 6 0A9 Elizabethton Municipal Airpo… 36.4 -82.2 1593 -5 A Amer… #> 7 0G6 Williams County Airport 41.5 -84.5 730 -5 A Amer… #> 8 0G7 Finger Lakes Regional Airport 42.9 -76.8 492 -5 A Amer… #> 9 0P2 Shoestring Aviation Airfield 39.8 -76.6 1000 -5 U Amer… #> 10 0S9 Jefferson County Intl 48.1 -123. 108 -8 A Amer… #> # ℹ 1,448 more rows flights_dm_no_keys[c(\"airports\", \"flights\")] #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airports`, `flights` #> Columns: 27 #> Primary keys: 0 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"defining-keys","dir":"Articles","previous_headings":"","what":"Defining Keys","title":"Create a dm object from data frames","text":"Even though now dm object contains data, specified five tables connected. , need define primary keys foreign keys tables. Primary keys foreign keys relational database tables linked . primary key column column tuple unique value row within table. foreign key column column tuple containing primary key row another table. Foreign keys act cross references tables. specify relationships gives us relational database. information keys crash course databases, see vignette(\"howto-dm-theory\").","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"primary-keys","dir":"Articles","previous_headings":"","what":"Primary Keys","title":"Create a dm object from data frames","text":"dm offers dm_enum_pk_candidates() identify viable primary keys table dm object, dm_add_pk() add . Now, can add identified primary keys: Note {dm} functions work named positional argument specification, compound keys can specified using vector argument.","code":"dm_enum_pk_candidates( dm = flights_dm_no_keys, table = planes ) #> # A tibble: 9 × 3 #> columns candidate why #> #> 1 tailnum TRUE \"\" #> 2 year FALSE \"has duplicate values: 2001 (284), 2000 (244), 20… #> 3 type FALSE \"has duplicate values: Fixed wing multi engine (3… #> 4 manufacturer FALSE \"has duplicate values: BOEING (1630), AIRBUS INDU… #> 5 model FALSE \"has duplicate values: 737-7H4 (361), A320-232 (2… #> 6 engines FALSE \"has duplicate values: 2 (3288), 1 (27), 4 (4), 3… #> 7 seats FALSE \"has duplicate values: 149 (452), 140 (411), 55 (… #> 8 speed FALSE \"has 3299 missing values, and duplicate values: 4… #> 9 engine FALSE \"has duplicate values: Turbo-fan (2750), Turbo-je… flights_dm_only_pks <- flights_dm_no_keys %>% dm_add_pk(table = airlines, columns = carrier) %>% dm_add_pk(airports, faa) %>% dm_add_pk(planes, tailnum) %>% dm_add_pk(weather, c(origin, time_hour)) flights_dm_only_pks #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"foreign-keys","dir":"Articles","previous_headings":"","what":"Foreign Keys","title":"Create a dm object from data frames","text":"define tables related, use dm_add_fk() add foreign keys. Naturally, function deal two tables: table looking reference, table providing reference. Accordingly, calling dm_add_fk(), table argument specifies table needs foreign key link second table, ref_table argument specifies table linked , needs primary key already defined . chosen column successful candidates provided dm_enum_fk_candidates(), use dm_add_fk() function establish foreign key linking tables. second call dm_add_fk() complete process flights airlines tables started . carrier column airlines table added foreign key flights. created required primary foreign keys link tables together, now relational data model can work .","code":"dm_enum_fk_candidates( dm = flights_dm_only_pks, table = flights, ref_table = airlines ) #> # A tibble: 19 × 3 #> columns candidate why #> #> 1 carrier TRUE \"\" #> 2 year FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 3 month FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 4 day FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 5 dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 6 sched_dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 7 dep_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 8 arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 9 sched_arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 10 arr_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 11 flight FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 12 tailnum FALSE \"values of `flights$tailnum` not in `airlines$… #> 13 origin FALSE \"values of `flights$origin` not in `airlines$c… #> 14 dest FALSE \"values of `flights$dest` not in `airlines$car… #> 15 air_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 16 distance FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 17 hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 18 minute FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 19 time_hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… flights_dm_all_keys <- flights_dm_only_pks %>% dm_add_fk(table = flights, columns = tailnum, ref_table = planes) %>% dm_add_fk(flights, carrier, airlines) %>% dm_add_fk(flights, origin, airports) %>% dm_add_fk(flights, c(origin, time_hour), weather) flights_dm_all_keys #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"visualization","dir":"Articles","previous_headings":"","what":"Visualization","title":"Create a dm object from data frames","text":"Visualizing data model quick easy way verify successfully created model aiming . can use dm_draw() stage process generate visual representation tables links :","code":"flights_dm_no_keys %>% dm_draw(rankdir = \"TB\", view_type = \"all\") flights_dm_no_keys %>% dm_add_pk(airlines, carrier) %>% dm_draw() flights_dm_only_pks %>% dm_add_fk(flights, tailnum, planes) %>% dm_draw() flights_dm_all_keys %>% dm_draw()"},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"integrity-checks","dir":"Articles","previous_headings":"","what":"Integrity Checks","title":"Create a dm object from data frames","text":"well checking data model visually, dm can examine constraints created addition keys verify sensible. results presented human-readable form, available tibble programmatic inspection.","code":"flights_dm_no_keys %>% dm_examine_constraints() #> ℹ No constraints defined. flights_dm_only_pks %>% dm_examine_constraints() #> ℹ All constraints satisfied. flights_dm_all_keys %>% dm_examine_constraints() #> ! Unsatisfied constraints: #> • Table `flights`: foreign key `tailnum` into table `planes`: values of `flights$tailnum` not in `planes$tailnum`: N725MQ (575), N722MQ (513), N723MQ (507), N713MQ (483), N735MQ (396), … #> • Table `flights`: foreign key `origin`, `time_hour` into table `weather`: values of `flights$origin`, `flights$time_hour` not in `weather$origin`, `weather$time_hour`: EWR, 2013-10-23 06:00:00 (34), EWR, 2013-08-19 17:00:00 (26), EWR, 2013-12-31 06:00:00 (26), EWR, 2013-12-31 07:00:00 (26), JFK, 2013-08-19 17:00:00 (26), …"},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"programming","dir":"Articles","previous_headings":"","what":"Programming","title":"Create a dm object from data frames","text":"Helper functions available access details keys check results. data frame primary keys retrieved dm_get_all_pks(): Similarly, data frame foreign keys retrieved dm_get_all_fks(): can use tibble::as_tibble() result dm_examine_constraints() programmatically inspect constraints satisfied:","code":"flights_dm_only_pks %>% dm_get_all_pks() #> # A tibble: 4 × 3 #> table pk_col autoincrement #> #> 1 airlines carrier FALSE #> 2 airports faa FALSE #> 3 planes tailnum FALSE #> 4 weather origin, time_hour FALSE flights_dm_all_keys %>% dm_get_all_fks() #> # A tibble: 4 × 5 #> child_table child_fk_cols parent_table parent_key_cols on_delete #> #> 1 flights carrier airlines carrier no_action #> 2 flights origin airports faa no_action #> 3 flights tailnum planes tailnum no_action #> 4 flights origin, time_hour weather origin, time_hour no_action flights_dm_all_keys %>% dm_examine_constraints() %>% tibble::as_tibble() #> # A tibble: 8 × 6 #> table kind columns ref_table is_key problem #> #> 1 flights FK tailnum planes FALSE \"values of `flights$ta… #> 2 flights FK origin, time_hour weather FALSE \"values of `flights$or… #> 3 airlines PK carrier NA TRUE \"\" #> 4 airports PK faa NA TRUE \"\" #> 5 planes PK tailnum NA TRUE \"\" #> 6 weather PK origin, time_hour NA TRUE \"\" #> 7 flights FK carrier airlines TRUE \"\" #> 8 flights FK origin airports TRUE \"\""},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"Create a dm object from data frames","text":"tutorial, demonstrated simple create relational data models local data frames using {dm}, including setting primary foreign keys visualizing resulting relational model.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"further-reading","dir":"Articles","previous_headings":"","what":"Further reading","title":"Create a dm object from data frames","text":"vignette(\"howto-dm-db\") – article covers accessing working RDBMSs within R session, including manipulating data, filling missing relationships tables, getting data RDBMS model, deploying data model RDBMS. vignette(\"howto-dm-theory\") – know data frames little relational data models? quick introduction walk key similarities differences, show move individual data frames relational data model.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"the-dm_rows_-process","dir":"Articles","previous_headings":"","what":"The dm_rows_* process","title":"Insert, update, or remove rows in a database","text":"six methods take arguments using follows process: Create temporary changeset dm object defines intended changes RDBMS desired, simulate changes in_place = FALSE double-check Apply changes in_place = TRUE. start, dm object created containing tables rows want change. changeset dm copied source dm want modify. dm RDBMS destination dm, call appropriate method, dm_rows_insert(), make planned changes, along argument in_place = FALSE can confirm achieve changes want. verification can done visually, looking row counts like, using {dm}’s constraint checking method, dm_examine_constraints(). biggest danger damaging key relations data spread across multiple tables deleting duplicating rows keys. dm_examine_constraints() catch errors primary keys duplicated foreign keys matching primary key (unless foreign key value NA). changes confirmed, execute method , time argument in_place = TRUE make changes permanent. Note in_place = FALSE default: must opt actually change data database. method requirements order maintain database consistency. involve constraints primary key values uniquely identify rows. ensure integrity relations process, methods automatically determine correct processing order tables involved. operations create records, parent tables (hold primary keys) processed child tables (hold foreign keys). dm_rows_delete(), child tables processed parent tables. Note user still responsible setting transactions ensure integrity operations across multiple tables. details see vignette(\"howto-dm-theory\") vignette(\"howto-dm-db\").","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"usage","dir":"Articles","previous_headings":"","what":"Usage","title":"Insert, update, or remove rows in a database","text":"demonstrate use table modifying methods, create simple dm object two tables linked foreign key. Note child table foreign key missing (NA). {dm} doesn’t check key values create dm, add check:1 copy demo_dm SQLite database. Note: default method used, copy_dm_to(), create temporary tables automatically deleted session ends. demo_sql destination dm examples, argument temporary = FALSE used make distinction apparent. {dm}’s table modification methods can piped together create repeatable sequence operations returns dm incorporating changes required. common use case {dm} – manually building sequence operations using temporary results complete correct, committing result.","code":"library(dm) parent <- tibble(value = c(\"A\", \"B\", \"C\"), pk = 1:3) parent #> # A tibble: 3 × 2 #> value pk #> #> 1 A 1 #> 2 B 2 #> 3 C 3 child <- tibble(value = c(\"a\", \"b\", \"c\"), pk = 1:3, fk = c(1, 1, NA)) child #> # A tibble: 3 × 3 #> value pk fk #> #> 1 a 1 1 #> 2 b 2 1 #> 3 c 3 NA demo_dm <- dm(parent = parent, child = child) %>% dm_add_pk(parent, pk) %>% dm_add_pk(child, pk) %>% dm_add_fk(child, fk, parent) demo_dm %>% dm_draw(view_type = \"all\") dm_examine_constraints(demo_dm) #> ℹ All constraints satisfied. library(DBI) sqlite_db <- DBI::dbConnect(RSQLite::SQLite()) demo_sql <- copy_dm_to(sqlite_db, demo_dm, temporary = FALSE) demo_sql #> ── Table source ─────────────────────────────────────────────────────────── #> src: sqlite 3.44.2 [] #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `parent`, `child` #> Columns: 5 #> Primary keys: 2 #> Foreign keys: 1"},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"insert","dir":"Articles","previous_headings":"","what":"dm_rows_insert()","title":"Insert, update, or remove rows in a database","text":"demonstrate dm_rows_insert(), create dm tables containing rows insert copy sqlite_db, source demo_sql. dm_rows_...() methods, source destination dm objects must RDBMS. get error message case. code adds parent child table entries letter “D”. First, changeset dm created temporarily copied database: changeset dm used argument dm_rows_insert(). gives us warning changes persist (.e., temporary). Inspecting child table resulting dm_insert_out demo_sql, can see ’s exactly happened. {dm} returned us dm object inserted rows place, underlying database changed. repeat operation, time argument in_place = TRUE changes now persist demo_sql.","code":"new_parent <- tibble(value = \"D\", pk = 4) new_parent #> # A tibble: 1 × 2 #> value pk #> #> 1 D 4 new_child <- tibble(value = \"d\", pk = 4, fk = 4) new_child #> # A tibble: 1 × 3 #> value pk fk #> #> 1 d 4 4 dm_insert_in <- dm(parent = new_parent, child = new_child) %>% copy_dm_to(sqlite_db, ., temporary = TRUE) dm_insert_out <- demo_sql %>% dm_rows_insert(dm_insert_in) #> Result is returned as a dm object with lazy tables. Use `in_place = FALSE` #> to mute this message, or `in_place = TRUE` to write to the underlying #> tables. dm_insert_out$child #> # Source: SQL [4 x 3] #> # Database: sqlite 3.44.2 [] #> value pk fk #> #> 1 a 1 1 #> 2 b 2 1 #> 3 c 3 NA #> 4 d 4 4 demo_sql$child #> # Source: table [3 x 3] #> # Database: sqlite 3.44.2 [] #> value pk fk #> #> 1 a 1 1 #> 2 b 2 1 #> 3 c 3 NA dm_insert_out <- demo_sql %>% dm_rows_insert(dm_insert_in, in_place = TRUE) demo_sql$child #> # Source: table [4 x 3] #> # Database: sqlite 3.44.2 [] #> value pk fk #> #> 1 a 1 1 #> 2 b 2 1 #> 3 c 3 NA #> 4 d 4 4"},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"update","dir":"Articles","previous_headings":"","what":"dm_rows_update()","title":"Insert, update, or remove rows in a database","text":"dm_rows_update() works dm_rows_insert(). create dm object copy source destination. change foreign key row child containing “b” point correct row parent. persist changes.","code":"updated_child <- tibble(value = \"b\", pk = 2, fk = 2) updated_child #> # A tibble: 1 × 3 #> value pk fk #> #> 1 b 2 2 dm_update_in <- dm(child = updated_child) %>% copy_dm_to(sqlite_db, ., temporary = TRUE) dm_update_out <- demo_sql %>% dm_rows_update(dm_update_in, in_place = TRUE) demo_sql$child #> # Source: table [4 x 3] #> # Database: sqlite 3.44.2 [] #> value pk fk #> #> 1 a 1 1 #> 2 b 2 2 #> 3 c 3 NA #> 4 d 4 4"},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"delete","dir":"Articles","previous_headings":"","what":"dm_rows_delete()","title":"Insert, update, or remove rows in a database","text":"dm_rows_delete() currently implemented work RDBMS, shift demonstrations back local R environment. ’ve made changes demo_sql, use collect() copy current tables SQLite. Note persistence concern local dm objects. Every operation returns new dm object containing changes made.","code":"local_dm <- collect(demo_sql) local_dm$parent #> # A tibble: 4 × 2 #> value pk #> #> 1 A 1 #> 2 B 2 #> 3 C 3 #> 4 D 4 local_dm$child #> # A tibble: 4 × 3 #> value pk fk #> #> 1 a 1 1 #> 2 b 2 2 #> 3 c 3 NA #> 4 d 4 4 dm_deleted <- dm(parent = new_parent, child = new_child) %>% dm_rows_delete(local_dm, .) #> Result is returned as a dm object with lazy tables. Use `in_place = FALSE` to mute this message, or `in_place = TRUE` to write to the underlying tables. #> Ignoring extra `y` columns: value, fk #> Ignoring extra `y` columns: value dm_deleted$child #> # A tibble: 3 × 3 #> value pk fk #> #> 1 a 1 1 #> 2 b 2 2 #> 3 c 3 NA"},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"patch","dir":"Articles","previous_headings":"","what":"dm_rows_patch()","title":"Insert, update, or remove rows in a database","text":"dm_rows_patch() updates missing values existing records. use fix missing foreign key child table.","code":"patched_child <- tibble(value = \"c\", pk = 3, fk = 3) patched_child #> # A tibble: 1 × 3 #> value pk fk #> #> 1 c 3 3 dm_patched <- dm(child = patched_child) %>% dm_rows_patch(dm_deleted, .) #> Result is returned as a dm object with lazy tables. Use `in_place = FALSE` #> to mute this message, or `in_place = TRUE` to write to the underlying #> tables. dm_patched$child #> # A tibble: 3 × 3 #> value pk fk #> #> 1 a 1 1 #> 2 b 2 2 #> 3 c 3 3"},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"upsert","dir":"Articles","previous_headings":"","what":"dm_rows_upsert()","title":"Insert, update, or remove rows in a database","text":"dm_rows_upsert() updates rows supplied values exist inserts supplied values new rows don’t. example add letter “D” back dm, update foreign key “b”. done, forget disconnect:","code":"upserted_parent <- tibble(value = \"D\", pk = 4) upserted_parent #> # A tibble: 1 × 2 #> value pk #> #> 1 D 4 upserted_child <- tibble(value = c(\"b\", \"d\"), pk = c(2, 4), fk = c(3, 4)) upserted_child #> # A tibble: 2 × 3 #> value pk fk #> #> 1 b 2 3 #> 2 d 4 4 dm_upserted <- dm(parent = upserted_parent, child = upserted_child) %>% dm_rows_upsert(dm_patched, .) #> Result is returned as a dm object with lazy tables. Use `in_place = FALSE` #> to mute this message, or `in_place = TRUE` to write to the underlying #> tables. dm_upserted$parent #> # A tibble: 4 × 2 #> value pk #> #> 1 A 1 #> 2 B 2 #> 3 C 3 #> 4 D 4 dm_upserted$child #> # A tibble: 4 × 3 #> value pk fk #> #> 1 a 1 1 #> 2 b 2 3 #> 3 c 3 3 #> 4 d 4 4 DBI::dbDisconnect(sqlite_db)"},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"Insert, update, or remove rows in a database","text":"dm_rows_...() methods give row-level granularity modifications need make relational model. Using common in_place argument, can construct verify modifications committing . limitations, mentioned tutorial, addressed future updates {dm}.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"further-reading","dir":"Articles","previous_headings":"","what":"Further Reading","title":"Insert, update, or remove rows in a database","text":"tutorial answered questions, opened others, resources might assistance. data RDBMS? vignette(\"howto-dm-db\") offers detailed look working existing relational data model. data data frames, may want read vignette(\"howto-dm-df\") next. like know relational data models order get dm, check vignette(\"howto-dm-theory\"). ’re familiar relational data models want know work dm, vignette(\"tech-dm-join\"), vignette(\"tech-dm-filter\"), vignette(\"tech-dm-zoom\") good next step.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"data-frames-and-tables","dir":"Articles","previous_headings":"","what":"1. Data Frames and Tables","title":"Introduction to relational data models","text":"data frame fundamental data structure R. Columns represent variables, rows represent observations. technical terms, data frame list variables identical length unique row names. imagine visually, result typical table structure. working data spreadsheets convenient users popular {dplyr} package data wrangling mainly rely data frames. downside data frames flat file systems like spreadsheets can result bloated tables hold many repetitive values. worst case, data frame can contain multiple columns single value different row. calls better data organization utilizing resemblance data frames database tables, also consist columns rows. elements just named differently: Additionally, number rows columns data frame , respectively, analogous cardinality degree table. Relational databases, unlike data frames, keep data one large table instead split multiple smaller tables. separation sub-tables several advantages: information stored , avoiding redundancy conserving memory information needs updated one place, improving consistency avoiding errors may result updating (forgetting update) value multiple locations information organized topic segmented smaller tables easier handle reasons separation data helps data quality, explain popularity relational databases production-level data management. downside approach harder merge together information different data sources identify entities refer object, common task modeling plotting data. Thus, take full advantage relational database approach, associated data model needed overcome challenges arise working multiple tables. Let’s illustrate challenge data nycflights13 dataset contains detailed information 336,776 flights departed New York City 2013. information stored five tables. Details like full name airport available immediately; can obtained joining merging constituent tables, can result long inflated pipe chains full left_join(), anti_join() forms data merging. classical {dplyr} notation, need four left_join() calls gradually merge flights table airlines, planes, airports, weather tables create one wide data frame. {dm} offers elegant shorter way combine tables augmenting {dplyr}/{dbplyr} workflows. possible best worlds: manage data {dm} linked tables, , necessary, flatten multiple tables single data frame analysis {dplyr}. next step create data model based multiple tables:","code":"library(dm) library(nycflights13) nycflights13_df <- flights %>% left_join(airlines, by = \"carrier\") %>% left_join(planes, by = \"tailnum\") %>% left_join(airports, by = c(\"origin\" = \"faa\")) %>% left_join(weather, by = c(\"origin\", \"time_hour\")) nycflights13_df #> # A tibble: 336,776 × 48 #> year.x month.x day.x dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 1 1 517 515 2 830 #> 2 2013 1 1 533 529 4 850 #> 3 2013 1 1 542 540 2 923 #> 4 2013 1 1 544 545 -1 1004 #> 5 2013 1 1 554 600 -6 812 #> 6 2013 1 1 554 558 -4 740 #> 7 2013 1 1 555 600 -5 913 #> 8 2013 1 1 557 600 -3 709 #> 9 2013 1 1 557 600 -3 838 #> 10 2013 1 1 558 600 -2 753 #> # ℹ 336,766 more rows #> # ℹ 41 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour.x , minute , #> # time_hour , name.x , year.y , type , #> # manufacturer , model , engines , seats , #> # speed , engine , name.y , lat , lon , …"},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"model","dir":"Articles","previous_headings":"","what":"2. Data Model","title":"Introduction to relational data models","text":"data model shows structure multiple tables linked together. nycflights13 relations can transferred following graphical representation: flights table linked four tables: airlines, planes, weather, airports. using directed arrows, visualization shows explicitly connection different columns (called attributes relational data sphere). example: column carrier flights can joined column carrier airlines table. links tables established primary keys foreign keys. aside, can also now see avoiding redundant data building data models multiple tables can save memory compared storing data single data frame: Reading: {dm} methods visualizing data models.","code":"dm <- dm_nycflights13(cycle = TRUE) dm %>% dm_draw() object.size(dm) #> 476256 bytes object.size(nycflights13_df) #> 108020824 bytes"},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"pk","dir":"Articles","previous_headings":"","what":"3. Primary Keys","title":"Introduction to relational data models","text":"relational data model, table one several columns uniquely identify row. columns define primary key (abbreviated “pk”). key consists single column, called simple key. key consisting one column called compound key. Example: airlines table nycflights13 column carrier primary key, simple key. weather table combination origin time_hour primary key, compound key. can get primary keys dm calling dm_get_all_pks(): dm_enum_pk_candidates() checks suitability column serve simple primary key: Reading: {dm} package offers several functions dealing primary keys.","code":"dm %>% dm_get_all_pks() #> # A tibble: 4 × 3 #> table pk_col autoincrement #> #> 1 airlines carrier FALSE #> 2 airports faa FALSE #> 3 planes tailnum FALSE #> 4 weather origin, time_hour FALSE dm %>% dm_enum_pk_candidates(airports) #> # A tibble: 8 × 3 #> columns candidate why #> #> 1 faa TRUE \"\" #> 2 name TRUE \"\" #> 3 lat TRUE \"\" #> 4 lon TRUE \"\" #> 5 alt FALSE \"has duplicate values: 30 (4), 13 (3), 9 (2), 19 (2), … #> 6 tz FALSE \"has duplicate values: -5 (48), -6 (21), -8 (12), -7 (… #> 7 dst FALSE \"has duplicate values: A (84), N (2)\" #> 8 tzone FALSE \"has duplicate values: America/New_York (48), America/…"},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"fk","dir":"Articles","previous_headings":"","what":"4. Foreign Keys","title":"Introduction to relational data models","text":"counterpart primary key one table foreign key another table. order join two tables, primary key first table needs referenced second table. column columns called foreign key (abbreviated “fk”). example, want link airlines table flights table, primary key airlines needs match foreign key flights. condition satisfied column carrier present primary key airlines table well foreign key flights table. case compound keys, origin time_hour columns (form primary key weather table) also present flights table. can find foreign key candidates simple keys function dm_enum_fk_candidates(); marked TRUE candidate column. Additionally, can also extract summary foreign key relations present dm object using dm_get_all_fks(): Reading: {dm} functions working foreign keys.","code":"dm %>% dm_enum_fk_candidates(flights, airlines) #> # A tibble: 19 × 3 #> columns candidate why #> #> 1 carrier TRUE \"\" #> 2 year FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 3 month FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 4 day FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 5 dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 6 sched_dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 7 dep_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 8 arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 9 sched_arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 10 arr_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 11 flight FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 12 tailnum FALSE \"values of `flights$tailnum` not in `airlines$… #> 13 origin FALSE \"values of `flights$origin` not in `airlines$c… #> 14 dest FALSE \"values of `flights$dest` not in `airlines$car… #> 15 air_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 16 distance FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 17 hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 18 minute FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 19 time_hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… dm %>% dm_get_all_fks() #> # A tibble: 5 × 5 #> child_table child_fk_cols parent_table parent_key_cols on_delete #> #> 1 flights carrier airlines carrier no_action #> 2 flights origin airports faa no_action #> 3 flights dest airports faa no_action #> 4 flights tailnum planes tailnum no_action #> 5 flights origin, time_hour weather origin, time_hour no_action"},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"referential-integrity","dir":"Articles","previous_headings":"","what":"5. Referential Integrity","title":"Introduction to relational data models","text":"data set referential integrity relations tables valid. , every foreign key holds primary key present parent table. foreign key contains reference corresponding row parent table available, row orphan row database longer referential integrity. {dm} allows checking referential integrity dm_examine_constraints() function. following conditions checked: primary key values must unique missing (.e., NAs allowed). foreign key value must corresponding primary key value. example data model, substantial share flights, detailed information corresponding airplane available: Establishing referential integrity important providing clean data analysis downstream users. See vignette(\"howto-dm-rows\") information adding, deleting, updating individual rows, vignette(\"tech-dm-zoom\") operations data data model.","code":"dm %>% dm_examine_constraints() #> ! Unsatisfied constraints: #> • Table `flights`: foreign key `dest` into table `airports`: values of `flights$dest` not in `airports$faa`: SJU (30), BQN (6), STT (4), PSE (2) #> • Table `flights`: foreign key `tailnum` into table `planes`: values of `flights$tailnum` not in `planes$tailnum`: N725MQ (6), N537MQ (5), N722MQ (5), N730MQ (5), N736MQ (5), …"},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"normalization","dir":"Articles","previous_headings":"","what":"6. Normalization","title":"Introduction to relational data models","text":"Normalization technical term describes central design principle relational data model: splitting data multiple tables. normalized data schema consists several relations (tables) linked attributes (columns). relations can joined together means primary foreign keys. main goal normalization keep data organization clean simple possible avoiding redundant data entries. example, want change name one airport nycflights13 dataset, need update single data value. principle sometimes called single point truth. Another way demonstrate normalization splitting table two parts. Let’s look planes table, consists 3322 individual tail numbers corresponding information specific airplane, like year manufactured average cruising speed. function decompose_table() extracts two new tables creates new key model_id, links tables. results parent_table child_table differ massively number rows: child_table contains 3322 unique tailnum rows therefore consists 3322 rows, just like original planes table, parent_table shrunk just 147 rows, enough store relevant combinations avoid storing redundant information. Reading: See Simple English Wikipedia article database normalization details.","code":"# Update in one single location... airlines[airlines$carrier == \"UA\", \"name\"] <- \"United broke my guitar\" airlines %>% filter(carrier == \"UA\") #> # A tibble: 1 × 2 #> carrier name #> #> 1 UA United broke my guitar # ...propagates to all related records flights %>% left_join(airlines) %>% select(flight, name) #> Joining with `by = join_by(carrier)` #> # A tibble: 336,776 × 2 #> flight name #> #> 1 1545 United broke my guitar #> 2 1714 United broke my guitar #> 3 1141 American Airlines Inc. #> 4 725 JetBlue Airways #> 5 461 Delta Air Lines Inc. #> 6 1696 United broke my guitar #> 7 507 JetBlue Airways #> 8 5708 ExpressJet Airlines Inc. #> 9 79 JetBlue Airways #> 10 301 American Airlines Inc. #> # ℹ 336,766 more rows planes %>% decompose_table(model_id, model, manufacturer, type, engines, seats, speed) #> $child_table #> # A tibble: 3,322 × 4 #> tailnum year engine model_id #> #> 1 N10156 2004 Turbo-fan 120 #> 2 N102UW 1998 Turbo-fan 93 #> 3 N103US 1999 Turbo-fan 93 #> 4 N104UW 1999 Turbo-fan 93 #> 5 N10575 2002 Turbo-fan 119 #> 6 N105UW 1999 Turbo-fan 93 #> 7 N107US 1999 Turbo-fan 93 #> 8 N108UW 1999 Turbo-fan 93 #> 9 N109UW 1999 Turbo-fan 93 #> 10 N110UW 1999 Turbo-fan 93 #> # ℹ 3,312 more rows #> #> $parent_table #> # A tibble: 147 × 7 #> model_id model manufacturer type engines seats speed #> #> 1 120 EMB-145XR EMBRAER Fixed wing mu… 2 55 NA #> 2 93 A320-214 AIRBUS INDUSTRIE Fixed wing mu… 2 182 NA #> 3 119 EMB-145LR EMBRAER Fixed wing mu… 2 55 NA #> 4 39 737-824 BOEING Fixed wing mu… 2 149 NA #> 5 68 767-332 BOEING Fixed wing mu… 2 330 NA #> 6 52 757-224 BOEING Fixed wing mu… 2 178 NA #> 7 94 A320-214 AIRBUS Fixed wing mu… 2 182 NA #> 8 112 CL-600-2D24 BOMBARDIER INC Fixed wing mu… 2 95 NA #> 9 30 737-724 BOEING Fixed wing mu… 2 149 NA #> 10 27 737-524 BOEING Fixed wing mu… 2 149 NA #> # ℹ 137 more rows"},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"relational-databases","dir":"Articles","previous_headings":"","what":"7. Relational Databases","title":"Introduction to relational data models","text":"{dm} built upon relational data models database . Databases systems data management many constructed relational databases (e.g., SQLite, MySQL, MSSQL, Postgres, etc.). can guess names databases, SQL, short Structured Querying Language, plays important role: invented purpose querying relational databases. production, data stored relational database {dm} used work data. Therefore, {dm} can copy data databases, works transparently -memory data relational database systems. example, let’s create local SQLite database copy dm object : opposite direction, dm can also populated data database. Unfortunately, keys currently can learned Microsoft SQL Server Postgres, SQLite. Therefore, dm contains tables keys: Remember terminate database connection:","code":"con_sqlite <- DBI::dbConnect(RSQLite::SQLite()) con_sqlite #> #> Path: #> Extensions: TRUE DBI::dbListTables(con_sqlite) #> character(0) copy_dm_to(con_sqlite, dm) DBI::dbListTables(con_sqlite) #> [1] \"airlines_1_20200828_071303_12345\" \"airports_1_20200828_071303_12345\" #> [3] \"flights_1_20200828_071303_12345\" \"planes_1_20200828_071303_12345\" #> [5] \"weather_1_20200828_071303_12345\" dm_from_con(con_sqlite) #> ! unable to fetch autoincrement metadata for src 'src_SQLiteConnection' #> Keys could not be queried. #> ── Table source ─────────────────────────────────────────────────────────── #> src: sqlite 3.44.2 [] #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines_1_20200828_071303_12345`, `airports_1_20200828_071303_12345`, `flights_1_20200828_071303_12345`, `planes_1_20200828_071303_12345`, `weather_1_20200828_071303_12345` #> Columns: 53 #> Primary keys: 0 #> Foreign keys: 0 DBI::dbDisconnect(con_sqlite)"},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"Introduction to relational data models","text":"article, learned fundamental concepts data structures associated relational database management system (RDBMS).","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"further-reading","dir":"Articles","previous_headings":"","what":"Further reading","title":"Introduction to relational data models","text":"vignette(\"howto-dm-db\") – article covers accessing working RDBMSs within R session, including manipulating data, filling missing relationships tables, getting data RDBMS model, deploying data model RDBMS. vignette(\"howto-dm-df\") – data local data frames? article covers creating data model local data frames, including building relationships data model, verifying model, leveraging power dplyr operate data model.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/articles/tech-dm-cdm.html","id":"replace-cdm-with-dm","dir":"Articles","previous_headings":"Changes required when updating from version 0.0.5 to 0.0.6","what":"Replace cdm with dm","title":"Migration guide: 'cdm' -> 'dm'","text":"update prevalent prefix cdm discarded favor dm. old prefix still job, warning message issued time function beginning cdm used, informing function soft-deprecated suggesting use newer version. script based older {dm} version, still work newer version, albeit complaining time outdated function used. can repaired : either going script step step, testing output line code use new function names provided generated warnings update function calls. just replacing occurrences cdm dm script. can e.g. done RStudio using “Find” terminal using sed -e 's/cdm/dm/g' path--file Windows sed -'' -e 's/cdm/dm/g' path--file Mac. script errors step, need check exactly error happens manually repair damage.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-cdm.html","id":"be-careful-with-methods-for-dm-tbl","dir":"Articles","previous_headings":"Changes required when updating from version 0.0.5 to 0.0.6","what":"Be careful with methods for dm: tbl, [[, $","title":"Migration guide: 'cdm' -> 'dm'","text":"Furthermore, need pay attention used one tbl.dm(), [[.dm(), $.dm(). update implementation methods changed well, don’t get convenient warning messages. change , update, mentioned methods return table “filtering” just contain rows values relate via foreign key relations tables filtered earlier. update just table returned. want retain former behavior, need replace methods function dm_apply_filters_to_tbl(), made available update. methods course avoided general, filters set anyway result change update. short example different cases: Formerly access “filtered” tables using following syntax: update result achieved type function call:","code":"library(dm) flights_dm <- dm_nycflights13() tbl(flights_dm, \"airports\") #> Warning: `tbl.dm()` was deprecated in dm 0.2.0. #> ℹ Use `dm[[table_name]]` instead to access a specific table. #> This warning is displayed once every 8 hours. #> Call `lifecycle::last_lifecycle_warnings()` to see where this warning was #> generated. #> # A tibble: 86 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta I… 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Loga… 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows flights_dm$planes #> # A tibble: 945 × 9 #> tailnum year type manufacturer model engines seats speed engine #> #> 1 N10156 2004 Fixed wing … EMBRAER EMB-… 2 55 NA Turbo… #> 2 N104UW 1999 Fixed wing … AIRBUS INDU… A320… 2 182 NA Turbo… #> 3 N10575 2002 Fixed wing … EMBRAER EMB-… 2 55 NA Turbo… #> 4 N105UW 1999 Fixed wing … AIRBUS INDU… A320… 2 182 NA Turbo… #> 5 N110UW 1999 Fixed wing … AIRBUS INDU… A320… 2 182 NA Turbo… #> 6 N11106 2002 Fixed wing … EMBRAER EMB-… 2 55 NA Turbo… #> 7 N11107 2002 Fixed wing … EMBRAER EMB-… 2 55 NA Turbo… #> 8 N11109 2002 Fixed wing … EMBRAER EMB-… 2 55 NA Turbo… #> 9 N11121 2003 Fixed wing … EMBRAER EMB-… 2 55 NA Turbo… #> 10 N11137 2003 Fixed wing … EMBRAER EMB-… 2 55 NA Turbo… #> # ℹ 935 more rows flights_dm[[\"weather\"]] #> # A tibble: 144 × 15 #> origin year month day hour temp dewp humid wind_dir wind_speed #> #> 1 EWR 2013 1 10 0 41 32 70.1 230 8.06 #> 2 EWR 2013 1 10 1 39.0 30.0 69.9 210 9.21 #> 3 EWR 2013 1 10 2 39.0 28.9 66.8 230 6.90 #> 4 EWR 2013 1 10 3 39.9 27.0 59.5 270 5.75 #> 5 EWR 2013 1 10 4 41 26.1 55.0 320 6.90 #> 6 EWR 2013 1 10 5 41 26.1 55.0 300 12.7 #> 7 EWR 2013 1 10 6 39.9 25.0 54.8 280 6.90 #> 8 EWR 2013 1 10 7 41 25.0 52.6 330 6.90 #> 9 EWR 2013 1 10 8 43.0 25.0 48.7 330 8.06 #> 10 EWR 2013 1 10 9 45.0 23 41.6 320 17.3 #> # ℹ 134 more rows #> # ℹ 5 more variables: wind_gust , precip , pressure , #> # visib , time_hour dm_apply_filters_to_tbl(flights_dm, airlines) #> Warning: `dm_apply_filters_to_tbl()` was deprecated in dm 1.0.0. #> ℹ Access tables directly after `dm_filter()`. #> This warning is displayed once every 8 hours. #> Call `lifecycle::last_lifecycle_warnings()` to see where this warning was #> generated. #> # A tibble: 15 × 2 #> carrier name #> #> 1 9E Endeavor Air Inc. #> 2 AA American Airlines Inc. #> 3 AS Alaska Airlines Inc. #> 4 B6 JetBlue Airways #> 5 DL Delta Air Lines Inc. #> 6 EV ExpressJet Airlines Inc. #> 7 F9 Frontier Airlines Inc. #> 8 FL AirTran Airways Corporation #> 9 HA Hawaiian Airlines Inc. #> 10 MQ Envoy Air #> 11 UA United Air Lines Inc. #> 12 US US Airways Inc. #> 13 VX Virgin America #> 14 WN Southwest Airlines Co. #> 15 YV Mesa Airlines Inc."},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"class-dm","dir":"Articles","previous_headings":"","what":"Class dm","title":"Class dm and basic operations","text":"dm class consists collection tables metadata tables, names tables names columns tables primary foreign keys tables link tables together data (either data frames references database tables) tables dm must obtained data source; csv files spreadsheets need imported data frames R.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"ex_dm","dir":"Articles","previous_headings":"","what":"Examples of dm objects","title":"Class dm and basic operations","text":"currently three options available creating dm object. relevant functions creating dm objects : dm() as_dm() new_dm() dm_from_con() illustrate options, now create dm several different ways. can use tables well-known {nycflights13} package.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"pass-the-tables-directly","dir":"Articles","previous_headings":"Examples of dm objects","what":"Pass the tables directly","title":"Class dm and basic operations","text":"Create dm object directly providing data frames dm():","code":"library(nycflights13) library(dm) dm(airlines, airports, flights, planes, weather) #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 0 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"start-with-an-empty-dm","dir":"Articles","previous_headings":"Examples of dm objects","what":"Start with an empty dm","title":"Class dm and basic operations","text":"Start empty dm object created dm() new_dm(), add tables object:","code":"library(nycflights13) library(dm) empty_dm <- dm() empty_dm #> dm() dm(empty_dm, airlines, airports, flights, planes, weather) #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 0 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"coerce-a-list-of-tables","dir":"Articles","previous_headings":"Examples of dm objects","what":"Coerce a list of tables","title":"Class dm and basic operations","text":"Turn named list tables dm as_dm():","code":"as_dm(list( airlines = airlines, airports = airports, flights = flights, planes = planes, weather = weather )) #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 0 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"turn-tables-from-a-src-into-a-dm","dir":"Articles","previous_headings":"Examples of dm objects","what":"Turn tables from a src into a dm","title":"Class dm and basic operations","text":"Squeeze (subset ) tables belonging src object dm using dm_from_con(): function dm_from_con(con, table_names = NULL) includes available tables source dm object. means can use , example, postgres database access via DBI::dbConnect(RPostgres::Postgres()) (appropriate arguments dbname, host, port, …), produce dm object tables database.","code":"sqlite_con <- dbplyr::nycflights13_sqlite() flights_dm <- dm_from_con(sqlite_con) flights_dm #> ── Table source ─────────────────────────────────────────────────────────── #> src: sqlite 3.44.2 [/tmp/RtmpqSPcvW/nycflights13.sqlite] #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `sqlite_stat1`, … (7 total) #> Columns: 62 #> Primary keys: 0 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"low-level-construction","dir":"Articles","previous_headings":"Examples of dm objects","what":"Low-level construction","title":"Class dm and basic operations","text":"Another way creating dm object calling new_dm() list tbl objects: constructor optimized speed perform integrity checks. Use caution, validate using dm_validate() necessary.","code":"base_dm <- new_dm(list( airlines = airlines, airports = airports, flights = flights, planes = planes, weather = weather )) base_dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 0 #> Foreign keys: 0 dm_validate(base_dm)"},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"access-tables","dir":"Articles","previous_headings":"","what":"Access tables","title":"Class dm and basic operations","text":"can get list tables dm_get_tables() src object dm_get_con(). order pull specific table dm, use: can use {dm}-functions manage primary keys tables dm object?","code":"flights_dm[[\"airports\"]] #> # Source: table [?? x 8] #> # Database: sqlite 3.44.2 [/tmp/RtmpqSPcvW/nycflights13.sqlite] #> faa name lat lon alt tz dst tzone #> #> 1 04G Lansdowne Airport 41.1 -80.6 1044 -5 A Amer… #> 2 06A Moton Field Municipal Airport 32.5 -85.7 264 -6 A Amer… #> 3 06C Schaumburg Regional 42.0 -88.1 801 -6 A Amer… #> 4 06N Randall Airport 41.4 -74.4 523 -5 A Amer… #> 5 09J Jekyll Island Airport 31.1 -81.4 11 -5 A Amer… #> 6 0A9 Elizabethton Municipal Airpo… 36.4 -82.2 1593 -5 A Amer… #> 7 0G6 Williams County Airport 41.5 -84.5 730 -5 A Amer… #> 8 0G7 Finger Lakes Regional Airport 42.9 -76.8 492 -5 A Amer… #> 9 0P2 Shoestring Aviation Airfield 39.8 -76.6 1000 -5 U Amer… #> 10 0S9 Jefferson County Intl 48.1 -123. 108 -8 A Amer… #> # ℹ more rows"},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"pk","dir":"Articles","previous_headings":"","what":"Primary keys of dm objects","title":"Class dm and basic operations","text":"useful functions managing primary key settings : dm_add_pk() dm_get_all_pks() dm_rm_pk() dm_enum_pk_candidates() created dm object according examples “Examples dm objects”, object yet primary keys set. let’s add one. use nycflights13 tables, .e. flights_dm . dm now primary key: get overview tables primary keys, use dm_get_all_pks(): Remove primary key: still need get know data better, already available form dm object, can use dm_enum_pk_candidates() function order get information columns table unique keys: flights table one-column primary key candidates: dm_add_pk() check argument. set TRUE, function checks column table given user unique. performance reasons, default check = FALSE. See also [dm_examine_constraints()] checking constraints dm.","code":"dm_has_pk(flights_dm, airports) #> [1] FALSE flights_dm_with_key <- dm_add_pk(flights_dm, airports, faa) flights_dm_with_key #> ── Table source ─────────────────────────────────────────────────────────── #> src: sqlite 3.44.2 [/tmp/RtmpqSPcvW/nycflights13.sqlite] #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `sqlite_stat1`, … (7 total) #> Columns: 62 #> Primary keys: 1 #> Foreign keys: 0 dm_has_pk(flights_dm_with_key, airports) #> [1] TRUE dm_get_all_pks(flights_dm_with_key) #> # A tibble: 1 × 3 #> table pk_col autoincrement #> #> 1 airports faa FALSE dm_rm_pk(flights_dm_with_key, airports) %>% dm_has_pk(airports) #> [1] FALSE dm_enum_pk_candidates(flights_dm_with_key, airports) #> # A tibble: 8 × 3 #> columns candidate why #> #> 1 faa TRUE \"\" #> 2 lon TRUE \"\" #> 3 name FALSE \"has duplicate values: Municipal Airport (5), All Airp… #> 4 lat FALSE \"has duplicate values: 38.88944 (2), 40.63975 (2)\" #> 5 alt FALSE \"has duplicate values: 0 (51), 13 (13), 14 (12), 15 (1… #> 6 tz FALSE \"has duplicate values: -5 (521), -6 (342), -9 (240), -… #> 7 dst FALSE \"has duplicate values: A (1388), U (47), N (23)\" #> 8 tzone FALSE \"has duplicate values: America/New_York (519), America… dm_enum_pk_candidates(flights_dm_with_key, flights) %>% dplyr::count(candidate) #> # A tibble: 1 × 2 #> candidate n #> #> 1 FALSE 19 try( dm_add_pk(flights_dm, airports, tzone, check = TRUE) ) #> Error in abort_not_unique_key(x_label, orig_names) : #> (`tzone`) not a unique key of `airports`."},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"foreign-keys","dir":"Articles","previous_headings":"","what":"Foreign keys","title":"Class dm and basic operations","text":"Useful functions managing foreign key relations include: dm_add_fk() dm_get_all_fks() dm_rm_fk() dm_enum_fk_candidates() Now gets (even ) interesting: want define relations different tables. dm_add_fk() function can define column table points another table’s column. done choosing foreign key one table point primary key another table. primary key referred table must set dm_add_pk(). dm_add_fk() find primary key column referenced table make indicated column child table point . throw error: Let’s create dm object foreign key relation work later : tried add another foreign key relation flights airports object? Column dest might work, since also contains airport codes: Checks opt-executed check = TRUE. can still add foreign key default check = FALSE. See also dm_examine_constraints() checking constraints dm. Get overview foreign key relations withdm_get_all_fks(): Remove foreign key relations dm_rm_fk() (parameter columns = NULL means relations removed, message): Since primary keys defined dm object, usually need provide referenced column name ref_table. Another function getting know data better (cf. dm_enum_pk_candidates() “Primary keys dm objects”) dm_enum_fk_candidates(). Use get overview foreign key candidates point one table another:","code":"flights_dm_with_key %>% dm_add_fk(flights, origin, airports) #> ── Table source ─────────────────────────────────────────────────────────── #> src: sqlite 3.44.2 [/tmp/RtmpqSPcvW/nycflights13.sqlite] #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `sqlite_stat1`, … (7 total) #> Columns: 62 #> Primary keys: 1 #> Foreign keys: 1 try( flights_dm %>% dm_add_fk(flights, origin, airports) ) #> Error in abort_ref_tbl_has_no_pk(ref_table_name) : #> ref_table `airports` needs a primary key first. Use `dm_enum_pk_candidates()` to find appropriate columns and `dm_add_pk()` to define a primary key. flights_dm_with_fk <- dm_add_fk(flights_dm_with_key, flights, origin, airports) try( flights_dm_with_fk %>% dm_add_fk(flights, dest, airports, check = TRUE) ) #> Error in abort_not_subset_of(table_name, col_name, ref_table_name, ref_col_name) : #> Column (`dest`) of table `flights` contains values (see examples above) that are not present in column (`faa`) of table `airports`. dm_get_all_fks(dm_nycflights13(cycle = TRUE)) #> # A tibble: 5 × 5 #> child_table child_fk_cols parent_table parent_key_cols on_delete #> #> 1 flights carrier airlines carrier no_action #> 2 flights origin airports faa no_action #> 3 flights dest airports faa no_action #> 4 flights tailnum planes tailnum no_action #> 5 flights origin, time_hour weather origin, time_hour no_action try( flights_dm_with_fk %>% dm_rm_fk(table = flights, column = dest, ref_table = airports) %>% dm_get_all_fks(c(flights, airports)) ) #> Error in abort_is_not_fkc() : No foreign keys to remove. flights_dm_with_fk %>% dm_rm_fk(flights, origin, airports) %>% dm_get_all_fks(c(flights, airports)) #> # A tibble: 0 × 5 #> # ℹ 5 variables: child_table , child_fk_cols , #> # parent_table , parent_key_cols , on_delete flights_dm_with_fk %>% dm_rm_fk(flights, columns = NULL, airports) %>% dm_get_all_fks(c(flights, airports)) #> Removing foreign keys: %>% #> dm_rm_fk(flights, origin, airports) #> # A tibble: 0 × 5 #> # ℹ 5 variables: child_table , child_fk_cols , #> # parent_table , parent_key_cols , on_delete dm_enum_fk_candidates(flights_dm_with_key, weather, airports) #> # A tibble: 15 × 3 #> columns candidate why #> #> 1 origin TRUE \"\" #> 2 year FALSE \"values of `weather$year` not in `airports$faa`: 2… #> 3 month FALSE \"values of `weather$month` not in `airports$faa`: … #> 4 day FALSE \"values of `weather$day` not in `airports$faa`: 3 … #> 5 hour FALSE \"values of `weather$hour` not in `airports$faa`: 1… #> 6 temp FALSE \"values of `weather$temp` not in `airports$faa`: 3… #> 7 dewp FALSE \"values of `weather$dewp` not in `airports$faa`: 2… #> 8 humid FALSE \"values of `weather$humid` not in `airports$faa`: … #> 9 wind_dir FALSE \"values of `weather$wind_dir` not in `airports$faa… #> 10 wind_speed FALSE \"values of `weather$wind_speed` not in `airports$f… #> 11 wind_gust FALSE \"values of `weather$wind_gust` not in `airports$fa… #> 12 precip FALSE \"values of `weather$precip` not in `airports$faa`:… #> 13 pressure FALSE \"values of `weather$pressure` not in `airports$faa… #> 14 visib FALSE \"values of `weather$visib` not in `airports$faa`: … #> 15 time_hour FALSE \"values of `weather$time_hour` not in `airports$fa…"},{"path":"https://dm.cynkra.com/articles/tech-dm-filter.html","id":"data-nycflights13","dir":"Articles","previous_headings":"","what":"Data: nycflights13","title":"Filtering in relational data models","text":"explore filtering {dm}, ’ll use {nycflights13} data flights, planes, airlines, airports weather tables. dataset contains information 336 776 flights departed New York City 2013, 3322 different planes 1458 airports involved. data comes US Bureau Transportation Statistics, documented ?nycflights13::flights. start exploration, create dm object {nycflights13} data. built-dm::dm_nycflights13() function takes care . default uses subset complete data though: flights 10th month considered, reducing number rows flights table 11 227. data model object contains data source tables, metadata tables. like create dm object tables example data, can use new_dm(), dm() as_dm() functions. See vignette(\"howto-dm-df\") details. console output ’dm` object shows data metadata, colored clarity: Now know five tables dm object. connected? relations best displayed visualization entity-relationship model: can look single table tbl. print airports table, call","code":"dm <- dm_nycflights13() dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4 dm_draw(dm) tbl(dm, \"airports\") #> Warning: `tbl.dm()` was deprecated in dm 0.2.0. #> ℹ Use `dm[[table_name]]` instead to access a specific table. #> This warning is displayed once every 8 hours. #> Call `lifecycle::last_lifecycle_warnings()` to see where this warning was #> generated. #> # A tibble: 86 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta I… 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Loga… 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows"},{"path":"https://dm.cynkra.com/articles/tech-dm-filter.html","id":"filter","dir":"Articles","previous_headings":"","what":"Filtering a dm object","title":"Filtering in relational data models","text":"dm_filter() allows select subset dm object.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-filter.html","id":"how-it-works","dir":"Articles","previous_headings":"Filtering a dm object","what":"How it works","title":"Filtering in relational data models","text":"Filtering dm object different filtering dataframe tibble dplyr::filter(). corresponding {dm} function dm::dm_filter(). function one filtering conditions can set one tables dm object. conditions immediately evaluated respective tables related tables. resulting table, related tables (directly indirectly) filter condition taken account following way: - filtering semi-joins successively performed along paths filtered tables requested table, join reducing left-hand side tables joins rows key values corresponding values key columns right-hand side tables join. - eventually requested table returned, containing remaining rows filtering joins Currently, works graph induced foreign key relations cycle free. Fortunately, default dm_nycflights13().","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-filter.html","id":"filtering-examples","dir":"Articles","previous_headings":"Filtering a dm object","what":"Filtering Examples","title":"Filtering in relational data models","text":"Let’s see filtering action: want data related John F. Kennedy International Airport. can get numbers rows table dm_nrow(). total number rows dm drops 2 951 987 (unaffected table disconnected weather table). Next example: Get dm object containing data flights New York Dulles International Airport Washington D.C., abbreviated IAD. Applying multiple filters different tables also supported. example: Get January 2013 flights Delta Air Lines didn’t depart John F. Kennedy International Airport. can inspect filtered tables subsetting . airlines table, Delta remaining carrier: planes used service flights? indeed, included flights departed January (month == 1): comparison, let’s review equivalent manual query flights dplyr syntax: {dm} code leaner foreign key information encoded object.","code":"filtered_dm <- dm %>% dm_filter(airports = (name == \"John F Kennedy Intl\")) filtered_dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4 rows_per_table <- filtered_dm %>% dm_nrow() rows_per_table #> airlines airports flights planes weather #> 10 1 602 336 38 sum(rows_per_table) #> [1] 987 sum_nrow <- sum(dm_nrow(dm)) sum_nrow_filtered <- sum(dm_nrow(dm_apply_filters(filtered_dm))) #> Warning: `dm_apply_filters()` was deprecated in dm 1.0.0. #> ℹ Calling `dm_apply_filters()` after `dm_filter()` is no longer necessary. #> This warning is displayed once every 8 hours. #> Call `lifecycle::last_lifecycle_warnings()` to see where this warning was #> generated. dm %>% dm_filter(flights = (dest == \"IAD\")) %>% dm_nrow() #> airlines airports flights planes weather #> 4 3 32 28 30 dm_delta_may <- dm %>% dm_filter( airlines = (name == \"Delta Air Lines Inc.\"), airports = (name != \"John F Kennedy Intl\"), flights = (month == 1) ) dm_delta_may #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4 dm_delta_may %>% dm_nrow() #> airlines airports flights planes weather #> 1 2 75 58 25 dm_delta_may$airlines #> # A tibble: 1 × 2 #> carrier name #> #> 1 DL Delta Air Lines Inc. dm_delta_may$planes #> # A tibble: 58 × 9 #> tailnum year type manufacturer model engines seats speed engine #> #> 1 N302NB 1999 Fixed wing … AIRBUS INDU… A319… 2 145 NA Turbo… #> 2 N304DQ 2008 Fixed wing … BOEING 737-… 2 149 NA Turbo… #> 3 N306DQ 2009 Fixed wing … BOEING 737-… 2 149 NA Turbo… #> 4 N307DQ 2009 Fixed wing … BOEING 737-… 2 149 NA Turbo… #> 5 N309US 1990 Fixed wing … AIRBUS INDU… A320… 2 182 NA Turbo… #> 6 N316US 1991 Fixed wing … AIRBUS INDU… A320… 2 182 NA Turbo… #> 7 N317NB 2000 Fixed wing … AIRBUS INDU… A319… 2 145 NA Turbo… #> 8 N318NB 2000 Fixed wing … AIRBUS INDU… A319… 2 145 NA Turbo… #> 9 N318US 1991 Fixed wing … AIRBUS INDU… A320… 2 182 NA Turbo… #> 10 N322NB 2001 Fixed wing … AIRBUS INDU… A319… 2 145 NA Turbo… #> # ℹ 48 more rows dm_delta_may$flights %>% dplyr::count(month) #> # A tibble: 1 × 2 #> month n #> #> 1 1 75 airlines_filtered <- filter(airlines, name == \"Delta Air Lines Inc.\") airports_filtered <- filter(airports, name != \"John F Kennedy Intl\") flights %>% semi_join(airlines_filtered, by = \"carrier\") %>% semi_join(airports_filtered, by = c(\"origin\" = \"faa\")) %>% filter(month == 5) #> # A tibble: 2,340 × 19 #> year month day dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 5 1 554 600 -6 731 #> 2 2013 5 1 555 600 -5 819 #> 3 2013 5 1 603 610 -7 754 #> 4 2013 5 1 622 630 -8 848 #> 5 2013 5 1 654 700 -6 931 #> 6 2013 5 1 655 700 -5 944 #> 7 2013 5 1 656 705 -9 1005 #> 8 2013 5 1 658 700 -2 925 #> 9 2013 5 1 743 745 -2 1014 #> 10 2013 5 1 755 800 -5 929 #> # ℹ 2,330 more rows #> # ℹ 12 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour "},{"path":"https://dm.cynkra.com/articles/tech-dm-filter.html","id":"sql-statements-behind-filtering-a-dm-object-on-a-database","dir":"Articles","previous_headings":"","what":"SQL statements behind filtering a dm object on a database","title":"Filtering in relational data models","text":"{dm} meant work relational data models, locally well databases. project, data probably stored locally remote relational database can queried SQL statements. can check queries using sql_render() {dbplyr} package. Example: Print SQL statements getting January 2013 flights Delta Air Lines, depart John F. Kennedy International Airport, data stored sqlite database. show SQL query behind dm_filter(), copy flights, airlines airports tables nyflights13 dataset temporary -memory database using built-function copy_dm_to() dbplyr::src_memdb. filter data, print corresponding SQL statement dbplyr::sql_render(). reading: {dm}’s function copying data databases.","code":"dm %>% dm_select_tbl(flights, airlines, airports) %>% copy_dm_to(dbplyr::src_memdb(), .) %>% dm_filter( airlines = (name == \"Delta Air Lines Inc.\"), airports = (name != \"John F Kennedy Intl\"), flights = (month == 1) ) %>% dm_get_tables() %>% purrr::map(dbplyr::sql_render) #> $flights #> SELECT `LHS`.* #> FROM ( #> SELECT `LHS`.* #> FROM ( #> SELECT `flights_1_20200828_071303_12345`.* #> FROM `flights_1_20200828_071303_12345` #> WHERE ((`month` = 1.0)) #> ) AS `LHS` #> WHERE EXISTS ( #> SELECT 1 FROM `airlines_1_20200828_071303_12345` #> WHERE #> (`LHS`.`carrier` = `airlines_1_20200828_071303_12345`.`carrier`) AND #> ((`airlines_1_20200828_071303_12345`.`name` = 'Delta Air Lines Inc.')) #> ) #> ) AS `LHS` #> WHERE EXISTS ( #> SELECT 1 FROM `airports_1_20200828_071303_12345` #> WHERE #> (`LHS`.`origin` = `airports_1_20200828_071303_12345`.`faa`) AND #> ((`airports_1_20200828_071303_12345`.`name` != 'John F Kennedy Intl')) #> ) #> #> $airlines #> SELECT `LHS`.* #> FROM ( #> SELECT `airlines_1_20200828_071303_12345`.* #> FROM `airlines_1_20200828_071303_12345` #> WHERE ((`name` = 'Delta Air Lines Inc.')) #> ) AS `LHS` #> WHERE EXISTS ( #> SELECT 1 FROM ( #> SELECT `LHS`.* #> FROM ( #> SELECT `flights_1_20200828_071303_12345`.* #> FROM `flights_1_20200828_071303_12345` #> WHERE ((`month` = 1.0)) #> ) AS `LHS` #> WHERE EXISTS ( #> SELECT 1 FROM `airports_1_20200828_071303_12345` #> WHERE #> (`LHS`.`origin` = `airports_1_20200828_071303_12345`.`faa`) AND #> ((`airports_1_20200828_071303_12345`.`name` != 'John F Kennedy Intl')) #> ) #> ) AS `RHS` #> WHERE (`LHS`.`carrier` = `RHS`.`carrier`) #> ) #> #> $airports #> SELECT `LHS`.* #> FROM ( #> SELECT `airports_1_20200828_071303_12345`.* #> FROM `airports_1_20200828_071303_12345` #> WHERE ((`name` != 'John F Kennedy Intl')) #> ) AS `LHS` #> WHERE EXISTS ( #> SELECT 1 FROM ( #> SELECT `LHS`.* #> FROM ( #> SELECT `flights_1_20200828_071303_12345`.* #> FROM `flights_1_20200828_071303_12345` #> WHERE ((`month` = 1.0)) #> ) AS `LHS` #> WHERE EXISTS ( #> SELECT 1 FROM `airlines_1_20200828_071303_12345` #> WHERE #> (`LHS`.`carrier` = `airlines_1_20200828_071303_12345`.`carrier`) AND #> ((`airlines_1_20200828_071303_12345`.`name` = 'Delta Air Lines Inc.')) #> ) #> ) AS `RHS` #> WHERE (`LHS`.`faa` = `RHS`.`origin`) #> )"},{"path":"https://dm.cynkra.com/articles/tech-dm-join.html","id":"data-nycflights13","dir":"Articles","previous_headings":"","what":"Data: nycflights13","title":"Joining in relational data models","text":"explore filtering {dm}, ’ll use {nycflights13} data tables flights, planes, airlines airports. dataset contains information 336,776 flights departed New York City 2013, 3,322 different planes 1,458 airports involved. data comes US Bureau Transportation Statistics, documented ?nycflights13. First, create dm object {nycflights13} data. implemented dm_nycflights13(). data model object contains data well metadata. like create dm tables, please look ?dm function new_dm().","code":"dm <- dm_nycflights13()"},{"path":"https://dm.cynkra.com/articles/tech-dm-join.html","id":"join","dir":"Articles","previous_headings":"","what":"Joining a dm object","title":"Joining in relational data models","text":"{dm} allows join two tables dm object based shared column. can use join functions know {dplyr} package. Currently {dplyr} supports four types mutating joins, two types filtering joins, nesting join. See ?dplyr::join details.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-join.html","id":"how-it-works","dir":"Articles","previous_headings":"Joining a dm object","what":"How it works","title":"Joining in relational data models","text":"join combination two tables based shared information. technical terms, merge tables need directly connected foreign key relation. existing links can inspected two ways: Visually, drawing data model dm_draw() directed arrows show explicitly relation different columns. Printed console calling dm_get_all_fks()","code":"dm %>% dm_draw() dm %>% dm_get_all_fks() #> # A tibble: 4 × 5 #> child_table child_fk_cols parent_table parent_key_cols on_delete #> #> 1 flights carrier airlines carrier no_action #> 2 flights origin airports faa no_action #> 3 flights tailnum planes tailnum no_action #> 4 flights origin, time_hour weather origin, time_hour no_action"},{"path":"https://dm.cynkra.com/articles/tech-dm-join.html","id":"joining-examples","dir":"Articles","previous_headings":"Joining a dm object","what":"Joining Examples","title":"Joining in relational data models","text":"Let’s look examples: Add column airline names airlines table flights table. can see , dm_joined data frame one column flights table. difference name column airlines table. result dm object anymore, (tibble) data frame: Another example: Get flights can’t matched airlines names. expect flights data {nycflights13} package clean well organized, flights remain. can check anti_join: example filtering dm merging: Get May 2013 flights Delta Air Lines didn’t depart John F. Kennedy International Airport - join airports data flights table. See vignette(\"tech-dm-filter\") details filtering. last example: Merge tables one big table. Sometimes need everything one place. case, can use dm_flatten_to_tbl() function. joins tables dm object together one wide table. specify starting table. following joins determined foreign key links. precise, dm_flatten_to_tbl() join tables one level hierarchy (.e., direct neighbors table .start). want cover tables levels hierarchy, use argument recursive = TRUE dm_flatten_to_tbl() instead. Also, aware column names need unique. dm_flatten_to_tbl() takes care automatically renaming relevant columns informs user names changed, e.g. dm_rename(airlines, airlines.name = name). want merge tables, get nested table return, use dm_wrap_tbl() pull_tbl() instead:","code":"dm_joined <- dm %>% dm_flatten_to_tbl(flights, airlines, .join = left_join) dm_joined #> # A tibble: 1,761 × 20 #> year month day dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 2359 4 426 #> 2 2013 1 10 16 2359 17 447 #> 3 2013 1 10 450 500 -10 634 #> 4 2013 1 10 520 525 -5 813 #> 5 2013 1 10 530 530 0 824 #> 6 2013 1 10 531 540 -9 832 #> 7 2013 1 10 535 540 -5 1015 #> 8 2013 1 10 546 600 -14 645 #> 9 2013 1 10 549 600 -11 652 #> 10 2013 1 10 550 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 13 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour , name dm$flights %>% names() #> [1] \"year\" \"month\" \"day\" \"dep_time\" #> [5] \"sched_dep_time\" \"dep_delay\" \"arr_time\" \"sched_arr_time\" #> [9] \"arr_delay\" \"carrier\" \"flight\" \"tailnum\" #> [13] \"origin\" \"dest\" \"air_time\" \"distance\" #> [17] \"hour\" \"minute\" \"time_hour\" dm$airlines %>% names() #> [1] \"carrier\" \"name\" dm_joined %>% names() #> [1] \"year\" \"month\" \"day\" \"dep_time\" #> [5] \"sched_dep_time\" \"dep_delay\" \"arr_time\" \"sched_arr_time\" #> [9] \"arr_delay\" \"carrier\" \"flight\" \"tailnum\" #> [13] \"origin\" \"dest\" \"air_time\" \"distance\" #> [17] \"hour\" \"minute\" \"time_hour\" \"name\" dm_joined %>% class() #> [1] \"tbl_df\" \"tbl\" \"data.frame\" dm %>% dm_flatten_to_tbl(flights, airlines, .join = anti_join) #> # A tibble: 0 × 19 #> # ℹ 19 variables: year , month , day , dep_time , #> # sched_dep_time , dep_delay , arr_time , #> # sched_arr_time , arr_delay , carrier , flight , #> # tailnum , origin , dest , air_time , #> # distance , hour , minute , time_hour dm_nycflights13(subset = FALSE) %>% dm_filter( airlines = (name == \"Delta Air Lines Inc.\"), airports = (name != \"John F Kennedy Intl\"), flights = (month == 5) ) %>% dm_flatten_to_tbl(flights, airports, .join = left_join) #> # A tibble: 2,340 × 26 #> year month day dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 5 1 554 600 -6 731 #> 2 2013 5 1 555 600 -5 819 #> 3 2013 5 1 603 610 -7 754 #> 4 2013 5 1 622 630 -8 848 #> 5 2013 5 1 654 700 -6 931 #> 6 2013 5 1 655 700 -5 944 #> 7 2013 5 1 656 705 -9 1005 #> 8 2013 5 1 658 700 -2 925 #> 9 2013 5 1 743 745 -2 1014 #> 10 2013 5 1 755 800 -5 929 #> # ℹ 2,330 more rows #> # ℹ 19 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour , name , lat , lon , alt , #> # tz , dst , tzone dm_nycflights13() %>% dm_select_tbl(-weather) %>% dm_flatten_to_tbl(.start = flights) #> Renaming ambiguous columns: %>% #> dm_rename(flights, year.flights = year) %>% #> dm_rename(airlines, name.airlines = name) %>% #> dm_rename(airports, name.airports = name) %>% #> dm_rename(planes, year.planes = year) #> # A tibble: 1,761 × 35 #> year.flights month day dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 2359 4 426 #> 2 2013 1 10 16 2359 17 447 #> 3 2013 1 10 450 500 -10 634 #> 4 2013 1 10 520 525 -5 813 #> 5 2013 1 10 530 530 0 824 #> 6 2013 1 10 531 540 -9 832 #> 7 2013 1 10 535 540 -5 1015 #> 8 2013 1 10 546 600 -14 645 #> 9 2013 1 10 549 600 -11 652 #> 10 2013 1 10 550 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 28 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour , name.airlines , name.airports , lat , #> # lon , alt , tz , dst , tzone , #> # year.planes , type , manufacturer , model , … dm_nycflights13() %>% dm_wrap_tbl(root = flights) %>% pull_tbl(flights) #> # A tibble: 1,761 × 23 #> year month day dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 2359 4 426 #> 2 2013 1 10 16 2359 17 447 #> 3 2013 1 10 450 500 -10 634 #> 4 2013 1 10 520 525 -5 813 #> 5 2013 1 10 530 530 0 824 #> 6 2013 1 10 531 540 -9 832 #> 7 2013 1 10 535 540 -5 1015 #> 8 2013 1 10 546 600 -14 645 #> 9 2013 1 10 549 600 -11 652 #> 10 2013 1 10 550 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 16 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour , airlines , airports , #> # planes , weather "},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"enabling-dplyr-workflow-within-a-dm","dir":"Articles","previous_headings":"","what":"Enabling {dplyr}-workflow within a dm","title":"Manipulating individual tables","text":"dm_get_tables() pull_tbl() functions new experimental argument keyed, defaults FALSE. set TRUE, list objects class dm_keyed_tbl returned instead. dm_keyed_tbl inherits tbl tbl_lazy, many {dplyr} {tidyr} verbs work unchanged. objects also attempt track primary foreign keys, available joins recombining tables later dm object. finished transforming data, can use dm() new_dm() recombine tables dm object. resulting tables dm primary foreign keys available tracked original table. Reconstructing dm object strictly necessary ’re primarily interested deriving one multiple separate tables analysis. workflow proves useful seems, subsetting tables via $, [[ default keyed = TRUE forthcoming major release {dm}.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"Manipulating individual tables","text":"much theory, look feel? explore , make use trusted {nycflights13} data.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"use-case-1-add-a-new-column-to-an-existing-table","dir":"Articles","previous_headings":"Examples","what":"Use case 1: Add a new column to an existing table","title":"Manipulating individual tables","text":"Imagine want column flights, specifying flight left noon . Just like {dplyr}, can tackle mutate(). Let us step step: update original dm new flights table use dm(). bang-bang-bang (!!!) technical necessity become superfluous forthcoming release.","code":"library(dm) library(dplyr) flights_dm <- dm_nycflights13(cycle = TRUE) flights_dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 5 flights_keyed <- flights_dm %>% dm_get_tables(keyed = TRUE) # The print output for a `dm_keyed_tbl` looks very much like that from a normal # `tibble`, with additional details about keys. flights_keyed$flights #> # A tibble: 1,761 × 19 #> # Keys: — | 0 | 5 #> year month day dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 2359 4 426 #> 2 2013 1 10 16 2359 17 447 #> 3 2013 1 10 450 500 -10 634 #> 4 2013 1 10 520 525 -5 813 #> 5 2013 1 10 530 530 0 824 #> 6 2013 1 10 531 540 -9 832 #> 7 2013 1 10 535 540 -5 1015 #> 8 2013 1 10 546 600 -14 645 #> 9 2013 1 10 549 600 -11 652 #> 10 2013 1 10 550 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 12 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour flights_tbl_mutate <- flights_keyed$flights %>% mutate(am_pm_dep = if_else(dep_time < 1200, \"am\", \"pm\"), .after = dep_time) flights_tbl_mutate #> # A tibble: 1,761 × 20 #> # Keys: — | 0 | 5 #> year month day dep_time am_pm_dep sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 am 2359 4 426 #> 2 2013 1 10 16 am 2359 17 447 #> 3 2013 1 10 450 am 500 -10 634 #> 4 2013 1 10 520 am 525 -5 813 #> 5 2013 1 10 530 am 530 0 824 #> 6 2013 1 10 531 am 540 -9 832 #> 7 2013 1 10 535 am 540 -5 1015 #> 8 2013 1 10 546 am 600 -14 645 #> 9 2013 1 10 549 am 600 -11 652 #> 10 2013 1 10 550 am 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 12 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour updated_flights_dm <- dm( flights = flights_tbl_mutate, !!!flights_keyed[c(\"airlines\", \"airports\", \"planes\", \"weather\")] ) # The only difference in the `dm` print output is the increased number of # columns updated_flights_dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `flights`, `airlines`, `airports`, `planes`, `weather` #> Columns: 54 #> Primary keys: 4 #> Foreign keys: 5 # The schematic view of the data model remains unchanged dm_draw(updated_flights_dm)"},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"use-case-2-creation-of-a-surrogate-key","dir":"Articles","previous_headings":"Examples","what":"Use case 2: Creation of a surrogate key","title":"Manipulating individual tables","text":"course action , example, employed create surrogate key table, synthetic simple key replaces compound key. can weather table.","code":"library(tidyr) flights_keyed$weather #> # A tibble: 144 × 15 #> # Keys: `origin`, `time_hour` | 1 | 0 #> origin year month day hour temp dewp humid wind_dir wind_speed #> #> 1 EWR 2013 1 10 0 41 32 70.1 230 8.06 #> 2 EWR 2013 1 10 1 39.0 30.0 69.9 210 9.21 #> 3 EWR 2013 1 10 2 39.0 28.9 66.8 230 6.90 #> 4 EWR 2013 1 10 3 39.9 27.0 59.5 270 5.75 #> 5 EWR 2013 1 10 4 41 26.1 55.0 320 6.90 #> 6 EWR 2013 1 10 5 41 26.1 55.0 300 12.7 #> 7 EWR 2013 1 10 6 39.9 25.0 54.8 280 6.90 #> 8 EWR 2013 1 10 7 41 25.0 52.6 330 6.90 #> 9 EWR 2013 1 10 8 43.0 25.0 48.7 330 8.06 #> 10 EWR 2013 1 10 9 45.0 23 41.6 320 17.3 #> # ℹ 134 more rows #> # ℹ 5 more variables: wind_gust , precip , pressure , #> # visib , time_hour # Maybe there is some hidden candidate for a primary key that we overlooked? enum_pk_candidates(flights_keyed$weather) #> # A tibble: 15 × 3 #> columns candidate why #> #> 1 origin FALSE has duplicate values: EWR (48), JFK (48), LGA (48) #> 2 year FALSE has duplicate values: 2013 (144) #> 3 month FALSE has duplicate values: 1 (72), 2 (72) #> 4 day FALSE has duplicate values: 10 (144) #> 5 hour FALSE has duplicate values: 0 (6), 1 (6), 2 (6), 3 (6), … #> 6 temp FALSE has duplicate values: 44.06 (12), 41.00 (8), 44.96… #> 7 dewp FALSE has duplicate values: 21.92 (16), 24.98 (16), 6.98… #> 8 humid FALSE has duplicate values: 53.71 (4), 56.56 (4), 32.53 … #> 9 wind_dir FALSE has duplicate values: 320 (25), 330 (17), 310 (15)… #> 10 wind_speed FALSE has duplicate values: 6.90468 (20), 8.05546 (19), … #> 11 wind_gust FALSE has 123 missing values, and duplicate values: 23.0… #> 12 precip FALSE has duplicate values: 0 (144) #> 13 pressure FALSE has duplicate values: 1028.9 (6), 1029.0 (5), 1032… #> 14 visib FALSE has duplicate values: 10 (144) #> 15 time_hour FALSE has duplicate values: 2013-01-10 00:00:00 (3), 201… # Seems we have to construct a column with unique values # This can be done by combining column `origin` with `time_hour`, if the latter # is converted to a single time zone first; all within the `dm`: weather_tbl_mutate <- flights_keyed$weather %>% # first convert all times to the same time zone: mutate(time_hour_fmt = format(time_hour, tz = \"UTC\")) %>% # paste together as character the airport code and the time unite(\"origin_slot_id\", origin, time_hour_fmt) %>% select(origin_slot_id, everything()) # check if we the result is as expected: weather_tbl_mutate %>% enum_pk_candidates() %>% filter(candidate) #> # A tibble: 1 × 3 #> columns candidate why #> #> 1 origin_slot_id TRUE \"\" # We apply the same transformation to create # the foreign key in the flights table: flights_tbl_mutate <- flights_keyed$flights %>% mutate(time_hour_fmt = format(time_hour, tz = \"UTC\")) %>% unite(\"origin_slot_id\", origin, time_hour_fmt) %>% select(origin_slot_id, everything()) surrogate_flights_dm <- dm( weather = weather_tbl_mutate, flights = flights_tbl_mutate, !!!flights_keyed[c(\"airlines\", \"airports\", \"planes\")] ) %>% dm_add_pk(weather, origin_slot_id) %>% dm_add_fk(flights, origin_slot_id, weather) surrogate_flights_dm %>% dm_draw()"},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"use-case-3-disentangle-dm","dir":"Articles","previous_headings":"Examples","what":"Use case 3: Disentangle dm","title":"Manipulating individual tables","text":"look dm created dm_nycflights13(cycle = TRUE), see two columns flights relate table, airports. One column stands departure airport arrival airport. generates cycle leads failures many operations work cycle-free data models, dm_flatten_to_tbl(), dm_filter() dm_wrap_tbl(). cases, can beneficial “disentangle” dm duplicating referred table. One way {dm}-framework follows:","code":"disentangled_flights_dm <- dm( destination = flights_keyed$airports, origin = flights_keyed$airports, !!!flights_keyed[c(\"flights\", \"airlines\", \"planes\", \"weather\")] ) %>% # Key relations are also duplicated, so the wrong ones need to be removed dm_rm_fk(flights, dest, origin) %>% dm_rm_fk(flights, origin, destination) disentangled_flights_dm %>% dm_draw()"},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"use-case-4-add-summary-table-to-dm","dir":"Articles","previous_headings":"Examples","what":"Use case 4: Add summary table to dm","title":"Manipulating individual tables","text":"example adding summary table new table dm. Foreign-key relations taken care automatically. example shows alternative approach deconstruction reconstruction using pull_tbl().","code":"flights_derived <- flights_dm %>% pull_tbl(flights, keyed = TRUE) %>% dplyr::count(origin, carrier) derived_flights_dm <- dm(flights_derived, !!!flights_keyed) derived_flights_dm %>% dm_draw()"},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"use-case-5-joining-tables","dir":"Articles","previous_headings":"Examples","what":"Use case 5: Joining tables","title":"Manipulating individual tables","text":"like join columns one table another, can make use one ..._join() methods dm_keyed_tbl. many cases, using keyed tables derived dm object allows omitting argument without triggering message, safely inferred foreign keys stored dm_keyed_tbl objects. syntax, please see example .","code":"planes_for_join <- flights_keyed$planes %>% select(tailnum, plane_type = type) joined_flights_tbl <- flights_keyed$flights %>% # let's first reduce the number of columns of flights select(-dep_delay:-arr_delay, -air_time:-minute, -starts_with(\"sched_\")) %>% # in the {dm}-method for the joins you can specify which columns you want to # add to the subsetted table left_join(planes_for_join) joined_flights_dm <- dm( flights_plane_type = joined_flights_tbl, !!!flights_keyed[c(\"airlines\", \"airports\", \"weather\")] ) # this is how the table looks now joined_flights_dm$flights_plane_type #> # A tibble: 1,761 × 11 #> year month day dep_time carrier flight tailnum origin dest #> #> 1 2013 1 10 3 B6 727 N571JB JFK BQN #> 2 2013 1 10 16 B6 739 N564JB JFK PSE #> 3 2013 1 10 450 US 1117 N171US EWR CLT #> 4 2013 1 10 520 UA 1018 N35204 EWR IAH #> 5 2013 1 10 530 UA 404 N815UA LGA IAH #> 6 2013 1 10 531 AA 1141 N5EAAA JFK MIA #> 7 2013 1 10 535 B6 725 N784JB JFK BQN #> 8 2013 1 10 546 B6 380 N337JB EWR BOS #> 9 2013 1 10 549 EV 6055 N19554 LGA IAD #> 10 2013 1 10 550 US 2114 N740UW LGA BOS #> # ℹ 1,751 more rows #> # ℹ 2 more variables: time_hour , plane_type # also here, the FK-relations are transferred to the new table joined_flights_dm %>% dm_draw()"},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"use-case-6-retrieve-all-tables","dir":"Articles","previous_headings":"Examples","what":"Use case 6: Retrieve all tables","title":"Manipulating individual tables","text":"Retrieving tables dm object requires lot boilerplate code. dm_deconstruct() function helps creating boilerplate. dm object, prints code necessary create local variables tables. code can copy-pasted script function.","code":"dm <- dm_nycflights13() dm_deconstruct(dm) #> airlines <- pull_tbl(dm, \"airlines\", keyed = TRUE) #> airports <- pull_tbl(dm, \"airports\", keyed = TRUE) #> flights <- pull_tbl(dm, \"flights\", keyed = TRUE) #> planes <- pull_tbl(dm, \"planes\", keyed = TRUE) #> weather <- pull_tbl(dm, \"weather\", keyed = TRUE)"},{"path":"https://dm.cynkra.com/articles/tech-dm-low-level.html","id":"testing-key-constraints","dir":"Articles","previous_headings":"","what":"Testing key constraints","title":"Model verification - keys, constraints and normalization","text":"section contains information examples following functions: check_key(.data, ...) check_subset(t1, c1, t2, c2) check_set_equality(t1, c1, t2, c2) tables (data frames) connected key relations, {dm} can help verify assumed key relations /determine existing key relations tables. example, tables: want know primary key data_1, can use check_key() function: Mind error message test passed. data_2, column key: see column one table contains values also present another column another table, check_subset() function can used: function important determining column foreign key table. inverse relation? kept mind check_subset() test column c2 unique key table t2. order find (child) table t1 contains column c1 foreign key (parent) table t2 corresponding column c2, following method used: check directions , find unique values c_1 t_1 c_2 t_2, {dm} provides function check_set_equality(): Introducing one table enables us show looks test passed: test passed, return value function first table parameter (invisibly). ensures functions can conveniently used pipe configuration.","code":"data_1 <- tibble(a = c(1, 2, 1), b = c(1, 4, 1), c = c(5, 6, 7)) data_2 <- tibble(a = c(1, 2, 3), b = c(4, 5, 6), c = c(7, 8, 9)) check_key(data_1, a) #> Error in `abort_not_unique_key()` at dm/R/key-helpers.R:64:5: #> ! (`a`) not a unique key of `data_1`. check_key(data_2, a) check_subset(data_1, a, data_2, a) check_subset(data_2, a, data_1, a) #> # A tibble: 1 × 1 #> a #> #> 1 3 #> Error in `abort_not_subset_of()` at dm/R/key-helpers.R:240:3: #> ! Column (`a`) of table `data_2` contains values (see examples above) that are not present in column (`a`) of table `data_1`. check_key(t2, c2) check_subset(t1, c1, t2, c2) check_set_equality(data_1, a, data_2, a) #> # A tibble: 1 × 1 #> a #> #> 1 3 #> Error in `abort_sets_not_equal()` at dm/R/key-helpers.R:190:5: #> ! Column (`a`) of table `data_2` contains values (see examples above) that are not present in column (`a`) of table `data_1`. data_3 <- tibble(a = c(2, 1, 2), b = c(4, 5, 6), c = c(7, 8, 9)) check_set_equality(data_1, a, data_3, a)"},{"path":"https://dm.cynkra.com/articles/tech-dm-low-level.html","id":"testing-cardinalities-between-two-tables","dir":"Articles","previous_headings":"","what":"Testing cardinalities between two tables","title":"Model verification - keys, constraints and normalization","text":"section contains information examples functions check_cardinality_0_n(parent_table, primary_key_column, child_table, foreign_key_column) check_cardinality_1_n(parent_table, primary_key_column, child_table, foreign_key_column) check_cardinality_0_1(parent_table, primary_key_column, child_table, foreign_key_column) check_cardinality_1_1(parent_table, primary_key_column, child_table, foreign_key_column) examine_cardinality(parent_table, primary_key_column, child_table, foreign_key_column) four functions testing specific kind cardinality relation require parent table child table inputs. functions first test requirement fulfilled checking : primary_key_column unique key parent_table set values foreign_key_column subset set values primary_key_column cardinality specifications 0_n, 1_n, 0_1, 1_1 refer expected relation child table parent table. numbers ‘0’, ‘1’ ‘n’ refer number values child table’s column (foreign_key_column) correspond value parent table’s column (primary_key_column). ‘n’ means one context, upper limit. 0_n means, value parent_key_column, number corresponding records child table unrestricted. 1_n means, value parent_key_column least one corresponding record child table. means “surjective” relation child table parent table w.r.t. specified columns, .e. parent table column value exists least one equal child table column value. 0_1 means, value parent_key_column, least zero one value correspond column child table. means “injective” relation child table parent table w.r.t. specified columns, .e. parent table column value addressed multiple times. parent table column values referred . 1_1 means, value parent_key_column, exactly one value correspond child table’s column. means “bijective” (“injective” “surjective”) relation child table parent table w.r.t. specified columns, .e. set values two columns equal duplicates either . Also examine_cardinality() first performs mentioned tests figure , parent-child table relationship criteria met. Subsequently, two checks made determine nature relation (surjective, injective, bijective, none ) two columns.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-low-level.html","id":"examples","dir":"Articles","previous_headings":"Testing cardinalities between two tables","what":"Examples","title":"Model verification - keys, constraints and normalization","text":"Given following three data frames: examples cardinality testing functions can used: examine_cardinality() returns type relation, e.g.: Just like underlying cardinality functions, also inform restrictions cardinality violated:","code":"d1 <- tibble(a = 1:5) d2 <- tibble(c = c(1:5, 5)) d3 <- tibble(c = 1:4) d4 <- tibble(a = c(2:5, 5)) # This does not pass, `c` is not unique key of d2: check_cardinality_0_n(d2, c, d1, a) #> Error in `abort_not_unique_key()` at dm/R/key-helpers.R:64:5: #> ! (`c`) not a unique key of `d2`. # This passes, multiple values in d2$c are allowed: check_cardinality_0_n(d1, a, d2, c) # This does not pass, injectivity is violated: check_cardinality_1_1(d1, a, d2, c) #> Error in `abort_not_bijective()` at dm/R/check-cardinalities.R:155:3: #> ! 1..1 cardinality (bijectivity) is not given: Column (`c`) in table `d2` contains duplicate values. # This passes: check_cardinality_0_1(d1, a, d3, c) examine_cardinality(d1, a, d3, c) #> [1] \"injective mapping (child: 0 or 1 -> parent: 1)\" examine_cardinality(d1, a, d2, c) #> [1] \"surjective mapping (child: 1 to n -> parent: 1)\" examine_cardinality(d1, a, d1, a) #> [1] \"bijective mapping (child: 1 -> parent: 1)\" examine_cardinality(d1, a, d4, a) #> [1] \"generic mapping (child: 0 to n -> parent: 1)\" examine_cardinality(d2, c, d1, a) #> Column (`c`) not a unique key of `d2`."},{"path":"https://dm.cynkra.com/articles/tech-dm-low-level.html","id":"table-surgery","dir":"Articles","previous_headings":"","what":"Table surgery","title":"Model verification - keys, constraints and normalization","text":"relevant functions : decompose_table(.data, new_id_column, ...) reunite_parent_child(child_table, parent_table, id_column) reunite_parent_child_from_list(list_of_parent_child_tables, id_column) first function implements table normalization. existing table split parent table (.e. lookup table) child table (containing observations), linked key column (: new_id_column). Basically, foreign key relation created, pointing new_id_column child table parent table’s corresponding column, can seen parent table’s primary key column. function decompose_table() , can seen following example: new column created, two tables can joined , essentially creating original table. functions inverse operation, .e. join parent child table subsequently drop new_id_column, reunite_parent_child() reunite_parent_child_from_list(). former takes arguments two tables unquoted name ID column, latter takes arguments list two tables plus unquoted name ID column: Currently, functions exist low-level operation tables. plan extend operation dm objects future.","code":"mtcars_tibble <- tibble::as_tibble(mtcars) mtcars_tibble #> # A tibble: 32 × 11 #> mpg cyl disp hp drat wt qsec vs am gear carb #> #> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4 #> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4 #> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1 #> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1 #> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2 #> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1 #> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4 #> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2 #> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2 #> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4 #> # ℹ 22 more rows decomposed_table <- decompose_table(mtcars_tibble, am_gear_carb_id, am, gear, carb) decomposed_table #> $child_table #> # A tibble: 32 × 9 #> mpg cyl disp hp drat wt qsec vs am_gear_carb_id #> #> 1 21 6 160 110 3.9 2.62 16.5 0 7 #> 2 21 6 160 110 3.9 2.88 17.0 0 7 #> 3 22.8 4 108 93 3.85 2.32 18.6 1 8 #> 4 21.4 6 258 110 3.08 3.22 19.4 1 1 #> 5 18.7 8 360 175 3.15 3.44 17.0 0 2 #> 6 18.1 6 225 105 2.76 3.46 20.2 1 1 #> 7 14.3 8 360 245 3.21 3.57 15.8 0 3 #> 8 24.4 4 147. 62 3.69 3.19 20 1 4 #> 9 22.8 4 141. 95 3.92 3.15 22.9 1 4 #> 10 19.2 6 168. 123 3.92 3.44 18.3 1 5 #> # ℹ 22 more rows #> #> $parent_table #> # A tibble: 13 × 4 #> am_gear_carb_id am gear carb #> #> 1 7 1 4 4 #> 2 8 1 4 1 #> 3 1 0 3 1 #> 4 2 0 3 2 #> 5 3 0 3 4 #> 6 4 0 4 2 #> 7 5 0 4 4 #> 8 6 0 3 3 #> 9 9 1 4 2 #> 10 10 1 5 2 #> 11 11 1 5 4 #> 12 12 1 5 6 #> 13 13 1 5 8 parent_table <- decomposed_table$parent_table child_table <- decomposed_table$child_table reunite_parent_child(child_table, parent_table, id_column = am_gear_carb_id) #> # A tibble: 32 × 11 #> mpg cyl disp hp drat wt qsec vs am gear carb #> #> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4 #> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4 #> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1 #> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1 #> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2 #> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1 #> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4 #> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2 #> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2 #> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4 #> # ℹ 22 more rows # Shortcut: reunite_parent_child_from_list(decomposed_table, id_column = am_gear_carb_id)"},{"path":"https://dm.cynkra.com/articles/tech-dm-naming.html","id":"prefixes","dir":"Articles","previous_headings":"","what":"Prefixes","title":"Function naming logic","text":"function takes dm object first argument function constructs dm object objects check_: Certain tests arguments performed error thrown case passed. tests passed, first argument returned invisibly. examine_: function executes checks returns object containing overview results checks. important extended prefixes dm_..._: dm_examine_: function examines several aspects dm object dm_add_: Adds either key constraints new tables dm dm_get_: Retrieves specific piece information dm (often part constituents) dm_rm_: Removes either key constraints tables dm","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-naming.html","id":"suffixes","dir":"Articles","previous_headings":"","what":"Suffixes","title":"Function naming logic","text":"_dm: Validators, checkers, coercers _to_tbl: Data dm processed way tibble produced _candidates: key-candidates calculated presented tibble-form _pk(s): Relates primary key(s) _fk(s): Relates foreign key(s) _tbl: Add/remove/select/rename tibble //within dm object _colors: Relates colors visualization dm object _zoomed: Insert, update, discard zoomed table. combination prefix dm_, indicates first argument dm_zoomed rather dm.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"enabling-dplyr-workflow-within-a-dm","dir":"Articles","previous_headings":"","what":"Enabling {dplyr}-workflow within a dm","title":"Zooming and manipulating tables","text":"“Zooming” table dm means: information stored original dm kept, including originally zoomed table object class dm_zoomed produced, presenting view table transformations need specify table calling select(), mutate() table manipulation functions {dm} provides methods many {dplyr}-verbs dm_zoomed behave way used , affecting zoomed table leaving rest dm untouched. finished transforming table, three options proceed: use dm_update_zoomed() want replace originally zoomed table new table use dm_insert_zoomed() creating new table dm use dm_discard_zoomed() need result want discard employing one first two options, resulting table dm primary foreign keys available tracked originally zoomed table.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"Zooming and manipulating tables","text":"much theory, look feel? explore , make use trusted {nycflights13} data.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"use-case-1-add-a-new-column-to-an-existing-table","dir":"Articles","previous_headings":"Examples","what":"Use case 1: Add a new column to an existing table","title":"Zooming and manipulating tables","text":"Imagine want column flights, specifying flight left noon . Just like {dplyr}, can tackle mutate(). Let us step step:","code":"library(dm) library(dplyr) flights_dm <- dm_nycflights13() flights_dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4 flights_zoomed <- flights_dm %>% dm_zoom_to(flights) # The print output for a `dm_zoomed` looks very much like that from a normal `tibble`. flights_zoomed #> # Zoomed table: flights #> # A tibble: 1,761 × 19 #> year month day dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 2359 4 426 #> 2 2013 1 10 16 2359 17 447 #> 3 2013 1 10 450 500 -10 634 #> 4 2013 1 10 520 525 -5 813 #> 5 2013 1 10 530 530 0 824 #> 6 2013 1 10 531 540 -9 832 #> 7 2013 1 10 535 540 -5 1015 #> 8 2013 1 10 546 600 -14 645 #> 9 2013 1 10 549 600 -11 652 #> 10 2013 1 10 550 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 12 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour flights_zoomed_mutate <- flights_zoomed %>% mutate(am_pm_dep = if_else(dep_time < 1200, \"am\", \"pm\")) %>% # in order to see our changes in the output we use `select()` for reordering the columns select(year:dep_time, am_pm_dep, everything()) flights_zoomed_mutate #> # Zoomed table: flights #> # A tibble: 1,761 × 20 #> year month day dep_time am_pm_dep sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 am 2359 4 426 #> 2 2013 1 10 16 am 2359 17 447 #> 3 2013 1 10 450 am 500 -10 634 #> 4 2013 1 10 520 am 525 -5 813 #> 5 2013 1 10 530 am 530 0 824 #> 6 2013 1 10 531 am 540 -9 832 #> 7 2013 1 10 535 am 540 -5 1015 #> 8 2013 1 10 546 am 600 -14 645 #> 9 2013 1 10 549 am 600 -11 652 #> 10 2013 1 10 550 am 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 12 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour # To update the original `dm` with a new `flights` table we use `dm_update_zoomed()`: updated_flights_dm <- flights_zoomed_mutate %>% dm_update_zoomed() # The only difference in the `dm` print output is the increased number of columns updated_flights_dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 54 #> Primary keys: 4 #> Foreign keys: 4 # The schematic view of the data model remains unchanged dm_draw(updated_flights_dm)"},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"use-case-2-creation-of-a-surrogate-key","dir":"Articles","previous_headings":"Examples","what":"Use case 2: Creation of a surrogate key","title":"Zooming and manipulating tables","text":"course action , example, employed create surrogate key table, synthetic simple key replaces compound key. can weather table.","code":"library(tidyr) weather_zoomed <- flights_dm %>% dm_zoom_to(weather) weather_zoomed #> # Zoomed table: weather #> # A tibble: 144 × 15 #> origin year month day hour temp dewp humid wind_dir wind_speed #> #> 1 EWR 2013 1 10 0 41 32 70.1 230 8.06 #> 2 EWR 2013 1 10 1 39.0 30.0 69.9 210 9.21 #> 3 EWR 2013 1 10 2 39.0 28.9 66.8 230 6.90 #> 4 EWR 2013 1 10 3 39.9 27.0 59.5 270 5.75 #> 5 EWR 2013 1 10 4 41 26.1 55.0 320 6.90 #> 6 EWR 2013 1 10 5 41 26.1 55.0 300 12.7 #> 7 EWR 2013 1 10 6 39.9 25.0 54.8 280 6.90 #> 8 EWR 2013 1 10 7 41 25.0 52.6 330 6.90 #> 9 EWR 2013 1 10 8 43.0 25.0 48.7 330 8.06 #> 10 EWR 2013 1 10 9 45.0 23 41.6 320 17.3 #> # ℹ 134 more rows #> # ℹ 5 more variables: wind_gust , precip , pressure , #> # visib , time_hour # Maybe there is some hidden candidate for a primary key that we overlooked enum_pk_candidates(weather_zoomed) #> # A tibble: 15 × 3 #> columns candidate why #> #> 1 origin FALSE has duplicate values: EWR (48), JFK (48), LGA (48) #> 2 year FALSE has duplicate values: 2013 (144) #> 3 month FALSE has duplicate values: 1 (72), 2 (72) #> 4 day FALSE has duplicate values: 10 (144) #> 5 hour FALSE has duplicate values: 0 (6), 1 (6), 2 (6), 3 (6), … #> 6 temp FALSE has duplicate values: 44.06 (12), 41.00 (8), 44.96… #> 7 dewp FALSE has duplicate values: 21.92 (16), 24.98 (16), 6.98… #> 8 humid FALSE has duplicate values: 53.71 (4), 56.56 (4), 32.53 … #> 9 wind_dir FALSE has duplicate values: 320 (25), 330 (17), 310 (15)… #> 10 wind_speed FALSE has duplicate values: 6.90468 (20), 8.05546 (19), … #> 11 wind_gust FALSE has 123 missing values, and duplicate values: 23.0… #> 12 precip FALSE has duplicate values: 0 (144) #> 13 pressure FALSE has duplicate values: 1028.9 (6), 1029.0 (5), 1032… #> 14 visib FALSE has duplicate values: 10 (144) #> 15 time_hour FALSE has duplicate values: 2013-01-10 00:00:00 (3), 201… # Seems we have to construct a column with unique values # This can be done by combining column `origin` with `time_hour`, if the latter # is converted to a single time zone first; all within the `dm`: weather_zoomed_mutate <- weather_zoomed %>% # first convert all times to the same time zone: mutate(time_hour_fmt = format(time_hour, tz = \"UTC\")) %>% # paste together as character the airport code and the time unite(\"origin_slot_id\", origin, time_hour_fmt) %>% select(origin_slot_id, everything()) # check if we the result is as expected: enum_pk_candidates(weather_zoomed_mutate) %>% filter(candidate) #> # A tibble: 1 × 3 #> columns candidate why #> #> 1 origin_slot_id TRUE \"\" flights_upd_weather_dm <- weather_zoomed_mutate %>% dm_update_zoomed() %>% dm_add_pk(weather, origin_slot_id) flights_upd_weather_dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 3 # creating the coveted FK relation between `flights` and `weather` extended_flights_dm <- flights_upd_weather_dm %>% dm_zoom_to(flights) %>% mutate(time_hour_fmt = format(time_hour, tz = \"UTC\")) %>% # need to keep `origin` as FK to airports, so `remove = FALSE` unite(\"origin_slot_id\", origin, time_hour_fmt, remove = FALSE) %>% dm_update_zoomed() %>% dm_add_fk(flights, origin_slot_id, weather) extended_flights_dm %>% dm_draw()"},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"use-case-3-disentangle-dm","dir":"Articles","previous_headings":"Examples","what":"Use case 3: Disentangle dm","title":"Zooming and manipulating tables","text":"look dm created dm_nycflights13(cycle = TRUE), see two columns flights relate one table, airports. One column stands departure airport arrival airport. generates cycle leads failures many operations work cycle-free data models, dm_flatten_to_tbl(), dm_filter() dm_wrap_to_tbl(). cases, can beneficial “disentangle” dm duplicating referred table. One way {dm}-framework follows: future update, provide convenient way “disentangle” dm objects, individual steps done automatically.","code":"dm_draw(dm_nycflights13(cycle = TRUE)) disentangled_flights_dm <- dm_nycflights13(cycle = TRUE) %>% # zooming and immediately inserting essentially creates a copy of the original table dm_zoom_to(airports) %>% # reinserting the `airports` table under the name `destination` dm_insert_zoomed(\"destination\") %>% # renaming the originally zoomed table dm_rename_tbl(origin = airports) %>% # Key relations are also duplicated, so the wrong ones need to be removed dm_rm_fk(flights, dest, origin) %>% dm_rm_fk(flights, origin, destination) dm_draw(disentangled_flights_dm)"},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"use-case-4-add-summary-table-to-dm","dir":"Articles","previous_headings":"Examples","what":"Use case 4: Add summary table to dm","title":"Zooming and manipulating tables","text":"example adding summary table new table dm (FK-relations taken care automatically):","code":"dm_with_summary <- flights_dm %>% dm_zoom_to(flights) %>% dplyr::count(origin, carrier) %>% dm_insert_zoomed(\"dep_carrier_count\") dm_draw(dm_with_summary)"},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"use-case-5-joining-tables","dir":"Articles","previous_headings":"Examples","what":"Use case 5: Joining tables","title":"Zooming and manipulating tables","text":"like join columns one table another, can make use one join-methods dm_zoomed. addition usual arguments {dplyr}-joins, supplying select argument can specify columns RHS-table want included join. syntax please see example . LHS-table join always zoomed table.","code":"joined_flights_dm <- flights_dm %>% dm_zoom_to(flights) %>% # let's first reduce the number of columns of flights select(-dep_delay:-arr_delay, -air_time:-time_hour) %>% # in the {dm}-method for the joins you can specify which columns you want to add to the zoomed table left_join(planes, select = c(tailnum, plane_type = type)) %>% dm_insert_zoomed(\"flights_plane_type\") # this is how the table looks now joined_flights_dm$flights_plane_type #> # A tibble: 1,761 × 11 #> year month day dep_time sched_dep_time carrier flight tailnum origin #> #> 1 2013 1 10 3 2359 B6 727 N571JB JFK #> 2 2013 1 10 16 2359 B6 739 N564JB JFK #> 3 2013 1 10 450 500 US 1117 N171US EWR #> 4 2013 1 10 520 525 UA 1018 N35204 EWR #> 5 2013 1 10 530 530 UA 404 N815UA LGA #> 6 2013 1 10 531 540 AA 1141 N5EAAA JFK #> 7 2013 1 10 535 540 B6 725 N784JB JFK #> 8 2013 1 10 546 600 B6 380 N337JB EWR #> 9 2013 1 10 549 600 EV 6055 N19554 LGA #> 10 2013 1 10 550 600 US 2114 N740UW LGA #> # ℹ 1,751 more rows #> # ℹ 2 more variables: dest , plane_type # also here, the FK-relations are transferred to the new table dm_draw(joined_flights_dm)"},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"tip-accessing-the-zoomed-table","dir":"Articles","previous_headings":"Examples","what":"Tip: Accessing the zoomed table","title":"Zooming and manipulating tables","text":"point, can retrieve zoomed table calling pull_tbl() dm_zoomed. use last example :","code":"flights_dm %>% dm_zoom_to(flights) %>% select(-dep_delay:-arr_delay, -air_time:-time_hour) %>% left_join(planes, select = c(tailnum, plane_type = type)) %>% pull_tbl() #> # A tibble: 1,761 × 11 #> year month day dep_time sched_dep_time carrier flight tailnum origin #> #> 1 2013 1 10 3 2359 B6 727 N571JB JFK #> 2 2013 1 10 16 2359 B6 739 N564JB JFK #> 3 2013 1 10 450 500 US 1117 N171US EWR #> 4 2013 1 10 520 525 UA 1018 N35204 EWR #> 5 2013 1 10 530 530 UA 404 N815UA LGA #> 6 2013 1 10 531 540 AA 1141 N5EAAA JFK #> 7 2013 1 10 535 540 B6 725 N784JB JFK #> 8 2013 1 10 546 600 B6 380 N337JB EWR #> 9 2013 1 10 549 600 EV 6055 N19554 LGA #> 10 2013 1 10 550 600 US 2114 N740UW LGA #> # ℹ 1,751 more rows #> # ℹ 2 more variables: dest , plane_type "},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"possible-pitfalls-and-caveats","dir":"Articles","previous_headings":"Examples","what":"Possible pitfalls and caveats","title":"Zooming and manipulating tables","text":"Currently, {dplyr}-verbs method dm_zoomed object, aware cases still necessary resort extracting one tables dm reinserting transformed version back dm object. supported functions : group_by(), ungroup(), summarise(), mutate(), transmute(), filter(), select(), relocate(), rename(), distinct(), arrange(), slice(), left_join(), inner_join(), full_join(), right_join(), semi_join(), anti_join(). true {tidyr}-functions. Methods provided : unite() separate(). might situations like key relations remain intact, dropped nevertheless. rigid logic implemented, drop key associated column acted upon e.g. mutate() call. cases, key relations need re-established finishing manipulations. implemented {dplyr}-verb, logic tracking key relations tables. {dm} version 0.2.4 tried track columns detailed manner. become increasingly difficult, especially dplyr::across(). {dm} 0.2.5, give responsibility {dm} user: Now columns tracked whose names remain resulting table. Affected changes methods : mutate(), transmute(), distinct(). using one functions, aware want replace key column column different content name, column automatically become key column.","code":""},{"path":"https://dm.cynkra.com/articles/wip/dm-insert.html","id":"tables","dir":"Articles > Wip","previous_headings":"","what":"Tables","title":"Updating tables and dm objects","text":"dplyr, operations tables dplyr generally transient ephemeral. Resulting table objects must stored new object, otherwise lost. operations default return new table object disconnected original.","code":""},{"path":"https://dm.cynkra.com/articles/wip/dm-insert.html","id":"operations","dir":"Articles > Wip","previous_headings":"Tables","what":"Operations","title":"Updating tables and dm objects","text":"operations modeled existing database statements, exception new “patch”. insert new rows — error keys already exist, similar tibble::add_row(). update values — overrides existing values. (Similar https://github.com/tidyverse/tidyr/issues/183) patch values — like update, replaces missing values (Also similar https://github.com/tidyverse/tidyr/issues/183) upsert — update insert depending presence/absence keys operations either take multiple named inputs single unnamed data frame. Additional restrictions options may apply backends, specified arguments start dot. extensibility, named inputs start dot silently discarded. operations require specification .key argument. Unlike joins, .key argument mandatory, RHS column names must subset LHS column names. Keys must name target input. table container knows keys (e.g., grouped data frames data.table), .key may omitted. target table source columns/table must compatible: Source extra tables columns. Key columns must present source.","code":""},{"path":"https://dm.cynkra.com/articles/wip/dm-insert.html","id":"mutable-backends","dir":"Articles > Wip","previous_headings":"Tables","what":"Mutable backends","title":"Updating tables and dm objects","text":"mutable backends, notably databases, Google sheets data.table, permit -place update source data. Update operations mutable backends optionally allow updating source data. potentially destructive exception dplyr guarantees, -place updates must “opt ”. default result always “lazy” table. allows previewing results update operation materializing. backends, following additional operations useful: delete — remove rows match keys, variant anti_join() truncate — remove rows Databases require data already database ask user supply copy argument. mutable backends, update operations return input, invisibly, update carried -place. Challenges: make compatible sql_render()?","code":""},{"path":"https://dm.cynkra.com/articles/wip/dm-insert.html","id":"dm","dir":"Articles > Wip","previous_headings":"","what":"dm","title":"Updating tables and dm objects","text":"Operations dm object generally transient ephemeral. Resulting dm table objects must stored new object, otherwise lost.","code":""},{"path":"https://dm.cynkra.com/articles/wip/dm-insert.html","id":"design","dir":"Articles > Wip","previous_headings":"dm","what":"Design","title":"Updating tables and dm objects","text":"records tables source dm appended/updated/upserted/removed/replaced/… target dm source source subset target tables check integrity constraints still valid running compare -state transactions scope, caller can use DBI::withTransaction() fixed set operations, op knows “direction”","code":""},{"path":"https://dm.cynkra.com/articles/wip/dm-insert.html","id":"logic-of-operation","dir":"Articles > Wip","previous_headings":"dm","what":"Logic of operation","title":"Updating tables and dm objects","text":"check compatibility persist tables one one, topologically sorted put back dm necessary","code":""},{"path":"https://dm.cynkra.com/articles/wip/dm-insert.html","id":"api-draft","dir":"Articles > Wip","previous_headings":"dm","what":"API draft","title":"Updating tables and dm objects","text":"","code":"dm_insert <- function(target_dm, dm, ..., dry_run = FALSE) { check_dots_empty() dm_persist(target_dm, dm, operation = tbl_insert, top_down = TRUE, dry_run = dry_run) } dm_update <- function(target_dm, dm, ..., dry_run = FALSE) { check_dots_empty() dm_persist(target_dm, dm, operation = tbl_update, top_down = TRUE, dry_run = dry_run) } dm_upsert <- function(target_dm, dm, ..., dry_run = FALSE) { check_dots_empty() dm_persist(target_dm, dm, operation = tbl_upsert, top_down = TRUE, dry_run = dry_run) } dm_delete <- function(target_dm, dm, ..., dry_run = FALSE) { check_dots_empty() dm_persist(target_dm, dm, operation = tbl_delete, top_down = FALSE, dry_run = dry_run) } dm_truncate <- function(target_dm, dm, ..., dry_run = FALSE) { check_dots_empty() dm_persist(target_dm, dm, operation = tbl_truncate, top_down = FALSE, dry_run = dry_run) } dm_persist <- function(target_dm, dm, operation, top_down, dry_run = FALSE) { dm_check_persist(target_dm, dm) dm_run_persist(target_dm, dm, operation, top_down, dry_run) } dm_check_persist <- function(target_dm, dm) { check_not_zoomed(target_dm) check_not_zoomed(dm) check_same_src(target_dm, dm) walk2(dm_get_tables(target_dm), dm_get_tables(dm), check_columns_superset) check_keys_compatible(target_dm, dm) } dm_run_persist <- function(target_dm, dm, operation, top_down, dry_run) { # topologically sort tables # run operation(target_tbl, source_tbl, dry_run = dry_run) for each table # operation() always returns tbl, only need to patch if not the same tbl # new_tables is list of non-NULL operation() values target_dm %>% dm_patch_tbl(!!!new_tables) } dm_patch_tbl <- function(dm, ...) { check_not_zoomed(dm) new_tables <- list2(...) # FIXME: Better error message for unknown tables def <- dm_get_def(dm) idx <- match(names(new_tables), def$table) def[idx, \"data\"] <- unname(new_tables) dm_from_def(def) }"},{"path":"https://dm.cynkra.com/articles/wip/dm-readme-old.html","id":"background","dir":"Articles > Wip","previous_headings":"","what":"Background","title":"","text":"Relational databases flat tables, like data frames spreadsheets, present data fundamentally different ways. data frames spreadsheets, data presented together one large table many rows columns. means data accessible one location disadvantage values may repeated multiple times, resulting bloated tables redundant data. worst case scenario, data frame may many rows columns single value different row. Relational databases, hand, keep data together split multiple smaller tables. separation sub-tables several advantages: information stored , avoiding repetition conserving memory information updated one place, improving consistency avoiding errors may result updating value multiple locations information organized topic segmented smaller tables easier handle Separation data, thus, helps data quality, explains continuing popularity relational databases production-level data management. downside approach harder merge together information different data sources identify entities refer object, common task modeling plotting data. mapped uniquely, entities need designated keys, separate tables collated together process called joining. R, already exist packages support handling inter-linked tables code complex requires multiple command sequences. goal {dm} package simplify data management processes R keeping advantages relational data models core concept splitting one table multiple tables. way, can best worlds: manage data collection linked tables, flatten multiple tables one analysis {dplyr} packages, -needed basis. Although {dm} built upon relational data models, database . can work transparently relational database systems -memory data, copy data databases.","code":""},{"path":"https://dm.cynkra.com/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Tobias Schieferdecker. Author. Kirill Müller. Author, maintainer. Antoine Fabri. Contributor. Darko Bergant. Author. Katharina Brunner. Contributor. James Wondrasek. Contributor. Indrajeet Patil. Contributor. Maëlle Salmon. Contributor. . Funder. . Funder, copyright holder.","code":""},{"path":"https://dm.cynkra.com/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Schieferdecker T, Müller K, Bergant D (2024). dm: Relational Data Models. R package version 1.0.10, https://github.com/cynkra/dm, https://dm.cynkra.com/.","code":"@Manual{, title = {dm: Relational Data Models}, author = {Tobias Schieferdecker and Kirill Müller and Darko Bergant}, year = {2024}, note = {R package version 1.0.10, https://github.com/cynkra/dm}, url = {https://dm.cynkra.com/}, }"},{"path":"https://dm.cynkra.com/index.html","id":"dm","dir":"","previous_headings":"","what":"Relational Data Models","title":"Relational Data Models","text":"using multiple data frames database tables R? Organize dm. Use data analysis today. Build data models tomorrow. Deploy data models organization’s Relational Database Management System (RDBMS) day .","code":""},{"path":"https://dm.cynkra.com/index.html","id":"overview","dir":"","previous_headings":"","what":"Overview","title":"Relational Data Models","text":"dm bridges gap data pipeline individual data frames relational databases. ’s grammar joined tables provides consistent set verbs consuming, creating, deploying relational data models. individual researchers, broadens scope datasets can work work . organizations, enables teams quickly efficiently create share large, complex datasets. dm objects encapsulate relational data models constructed local data frames lazy tables connected RDBMS. dm objects support full suite dplyr data manipulation verbs along additional methods constructing verifying relational data models, including key selection, key creation, rigorous constraint checking. data model complete, dm provides methods deploying RDBMS. allows scale datasets fit memory databases billions rows.","code":""},{"path":"https://dm.cynkra.com/index.html","id":"features","dir":"","previous_headings":"","what":"Features","title":"Relational Data Models","text":"dm makes easy bring existing relational data model R session. dm object behaves like named list tables requires little change incorporate within existing workflows. dm interface behavior modeled dplyr, may already familiar many verbs. dm also offers: visualization help understand relationships entities represented tables simpler joins “know” tables related, including “flatten” operation automatically follows keys performs column name disambiguation consistency constraint checks help understand (fix) limitations data ’s just tip iceberg. See Getting started hit ground running explore features.","code":""},{"path":"https://dm.cynkra.com/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Relational Data Models","text":"latest stable version {dm} package can obtained CRAN command latest development version {dm} can installed R-universe: GitHub:","code":"install.packages(\"dm\") # Enable repository from cynkra options( repos = c( cynkra = \"https://cynkra.r-universe.dev\", CRAN = \"https://cloud.r-project.org\" ) ) # Download and install dm in R install.packages('dm') # install.packages(\"devtools\") devtools::install_github(\"cynkra/dm\")"},{"path":"https://dm.cynkra.com/index.html","id":"usage","dir":"","previous_headings":"","what":"Usage","title":"Relational Data Models","text":"Create dm object (see Getting started details). dm named list tables: Visualize relationships time: Simple joins: Check consistency: Learn Getting started article.","code":"library(dm) dm <- dm_nycflights13(table_description = TRUE) dm #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4 names(dm) #> [1] \"airlines\" \"airports\" \"flights\" \"planes\" \"weather\" nrow(dm$airports) #> [1] 86 dm$flights %>% count(origin) #> # A tibble: 3 × 2 #> origin n #> #> 1 EWR 641 #> 2 JFK 602 #> 3 LGA 518 dm %>% dm_draw() dm %>% dm_flatten_to_tbl(flights) #> Renaming ambiguous columns: %>% #> dm_rename(flights, year.flights = year) %>% #> dm_rename(flights, month.flights = month) %>% #> dm_rename(flights, day.flights = day) %>% #> dm_rename(flights, hour.flights = hour) %>% #> dm_rename(airlines, name.airlines = name) %>% #> dm_rename(airports, name.airports = name) %>% #> dm_rename(planes, year.planes = year) %>% #> dm_rename(weather, year.weather = year) %>% #> dm_rename(weather, month.weather = month) %>% #> dm_rename(weather, day.weather = day) %>% #> dm_rename(weather, hour.weather = hour) #> # A tibble: 1,761 × 48 #> year.flights month.…¹ day.f…² dep_t…³ sched…⁴ dep_d…⁵ arr_t…⁶ sched…⁷ arr_d…⁸ #> #> 1 2013 1 10 3 2359 4 426 437 -11 #> 2 2013 1 10 16 2359 17 447 444 3 #> 3 2013 1 10 450 500 -10 634 648 -14 #> 4 2013 1 10 520 525 -5 813 820 -7 #> 5 2013 1 10 530 530 0 824 829 -5 #> 6 2013 1 10 531 540 -9 832 850 -18 #> 7 2013 1 10 535 540 -5 1015 1017 -2 #> 8 2013 1 10 546 600 -14 645 709 -24 #> 9 2013 1 10 549 600 -11 652 724 -32 #> 10 2013 1 10 550 600 -10 649 703 -14 #> # ℹ 1,751 more rows #> # ℹ abbreviated names: ¹​month.flights, ²​day.flights, ³​dep_time, #> # ⁴​sched_dep_time, ⁵​dep_delay, ⁶​arr_time, ⁷​sched_arr_time, ⁸​arr_delay #> # ℹ 39 more variables: carrier , flight , tailnum , #> # origin , dest , air_time , distance , #> # hour.flights , minute , time_hour , name.airlines , #> # name.airports , lat , lon , alt , tz , dst , #> # tzone , year.planes , type , manufacturer , #> # model , engines , seats , speed , engine , #> # year.weather , month.weather , day.weather , #> # hour.weather , temp , dewp , humid , wind_dir , #> # wind_speed , wind_gust , precip , pressure , … dm %>% dm_examine_constraints() #> ! Unsatisfied constraints: #> • Table `flights`: foreign key `tailnum` into table `planes`: values of `flights$tailnum` not in `planes$tailnum`: N725MQ (6), N537MQ (5), N722MQ (5), N730MQ (5), N736MQ (5), …"},{"path":"https://dm.cynkra.com/index.html","id":"getting-help","dir":"","previous_headings":"","what":"Getting help","title":"Relational Data Models","text":"encounter clear bug, please file issue minimal reproducible example GitHub. questions discussion, please use community.rstudio.com. License: MIT © cynkra GmbH. Funded : Please note ‘dm’ project released Contributor Code Conduct. contributing project, agree abide terms.","code":""},{"path":"https://dm.cynkra.com/reference/check_key.html","id":null,"dir":"Reference","previous_headings":"","what":"Check if column(s) can be used as keys — check_key","title":"Check if column(s) can be used as keys — check_key","text":"check_key() accepts data frame , optionally, columns. throws error specified columns unique key data frame. columns given ellipsis key, data frame returned silently, can used piping.","code":""},{"path":"https://dm.cynkra.com/reference/check_key.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check if column(s) can be used as keys — check_key","text":"","code":"check_key(x, ..., .data = deprecated())"},{"path":"https://dm.cynkra.com/reference/check_key.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check if column(s) can be used as keys — check_key","text":"x data frame whose columns tested key properties. ... names columns checked, processed dplyr::select(). omitted, columns checked. .data Deprecated.","code":""},{"path":"https://dm.cynkra.com/reference/check_key.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check if column(s) can be used as keys — check_key","text":"Returns x, invisibly, check passed. Otherwise error thrown reason explained.","code":""},{"path":"https://dm.cynkra.com/reference/check_key.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check if column(s) can be used as keys — check_key","text":"","code":"data <- tibble::tibble(a = c(1, 2, 1), b = c(1, 4, 1), c = c(5, 6, 7)) # this is failing: try(check_key(data, a, b)) #> Error in abort_not_unique_key(x_label, orig_names) : #> (`a`, `b`) not a unique key of `data`. # this is passing: check_key(data, a, c) check_key(data)"},{"path":"https://dm.cynkra.com/reference/check_set_equality.html","id":null,"dir":"Reference","previous_headings":"","what":"Check column values for set equality — check_set_equality","title":"Check column values for set equality — check_set_equality","text":"check_set_equality() wrapper check_subset(). tests one table subset another vice versa, .e., sets . , throws error.","code":""},{"path":"https://dm.cynkra.com/reference/check_set_equality.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check column values for set equality — check_set_equality","text":"","code":"check_set_equality( x, y, ..., x_select = NULL, y_select = NULL, by_position = NULL )"},{"path":"https://dm.cynkra.com/reference/check_set_equality.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check column values for set equality — check_set_equality","text":"x, y data frame lazy table. ... dots future extensions must empty. x_select, y_select Key columns restrict check, processed dplyr::select(). by_position Set TRUE ignore column names match position instead. default means matching name, use x_select /y_select align names.","code":""},{"path":"https://dm.cynkra.com/reference/check_set_equality.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check column values for set equality — check_set_equality","text":"Returns x, invisibly, check passed. Otherwise error thrown reason explained.","code":""},{"path":"https://dm.cynkra.com/reference/check_set_equality.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check column values for set equality — check_set_equality","text":"","code":"data_1 <- tibble::tibble(a = c(1, 2, 1), b = c(1, 4, 1), c = c(5, 6, 7)) data_2 <- tibble::tibble(a = c(1, 2, 3), b = c(4, 5, 6), c = c(7, 8, 9)) # this is failing: try(check_set_equality(data_1, data_2, x_select = a, y_select = a)) #> # A tibble: 1 × 1 #> a #> #> 1 3 #> Error in abort_sets_not_equal(map_chr(catchers, conditionMessage)) : #> Column (`a`) of table `data_2` contains values (see examples above) that are not present in column (`a`) of table `data_1`. data_3 <- tibble::tibble(a = c(2, 1, 2), b = c(4, 5, 6), c = c(7, 8, 9)) # this is passing: check_set_equality(data_1, data_3, x_select = a, y_select = a) # this is still failing: try(check_set_equality(data_2, data_3)) #> # A tibble: 3 × 3 #> a b c #> #> 1 1 4 7 #> 2 2 5 8 #> 3 3 6 9 #> # A tibble: 3 × 3 #> a b c #> #> 1 2 4 7 #> 2 1 5 8 #> 3 2 6 9 #> Error in abort_sets_not_equal(map_chr(catchers, conditionMessage)) : #> Columns (`a`, `b`, `c`) of table `data_2` contain values (see examples above) that are not present in columns (`a`, `b`, `c`) of table `data_3`. #> Columns (`a`, `b`, `c`) of table `data_3` contain values (see examples above) that are not present in columns (`a`, `b`, `c`) of table `data_2`."},{"path":"https://dm.cynkra.com/reference/check_subset.html","id":null,"dir":"Reference","previous_headings":"","what":"Check column values for subset — check_subset","title":"Check column values for subset — check_subset","text":"check_subset() tests x subset y. convenience, x_select y_select arguments allow restricting check set key columns without affecting return value.","code":""},{"path":"https://dm.cynkra.com/reference/check_subset.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check column values for subset — check_subset","text":"","code":"check_subset(x, y, ..., x_select = NULL, y_select = NULL, by_position = NULL)"},{"path":"https://dm.cynkra.com/reference/check_subset.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check column values for subset — check_subset","text":"x, y data frame lazy table. ... dots future extensions must empty. x_select, y_select Key columns restrict check, processed dplyr::select(). by_position Set TRUE ignore column names match position instead. default means matching name, use x_select /y_select align names.","code":""},{"path":"https://dm.cynkra.com/reference/check_subset.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check column values for subset — check_subset","text":"Returns x, invisibly, check passed. Otherwise error thrown reason explained.","code":""},{"path":"https://dm.cynkra.com/reference/check_subset.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check column values for subset — check_subset","text":"","code":"data_1 <- tibble::tibble(a = c(1, 2, 1), b = c(1, 4, 1), c = c(5, 6, 7)) data_2 <- tibble::tibble(a = c(1, 2, 3), b = c(4, 5, 6), c = c(7, 8, 9)) # this is passing: check_subset(data_1, data_2, x_select = a, y_select = a) # this is failing: try(check_subset(data_2, data_1)) #> # A tibble: 3 × 3 #> a b c #> #> 1 1 4 7 #> 2 2 5 8 #> 3 3 6 9 #> Error in abort_not_subset_of(x_label, colnames(x), y_label, colnames(y)) : #> Columns (`a`, `b`, `c`) of table `data_2` contain values (see examples above) that are not present in columns (`a`, `b`, `c`) of table `data_1`."},{"path":"https://dm.cynkra.com/reference/copy_dm_to.html","id":null,"dir":"Reference","previous_headings":"","what":"Copy data model to data source — copy_dm_to","title":"Copy data model to data source — copy_dm_to","text":"copy_dm_to() takes dplyr::src_dbi object DBI::DBIConnection object first argument dm object second argument. latter copied former. default create temporary tables, set temporary = FALSE create permanent tables. Unless set_key_constraints FALSE, primary key constraints set databases, addition foreign key constraints set MSSQL Postgres databases.","code":""},{"path":"https://dm.cynkra.com/reference/copy_dm_to.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Copy data model to data source — copy_dm_to","text":"","code":"copy_dm_to( dest, dm, ..., set_key_constraints = TRUE, table_names = NULL, temporary = TRUE, schema = NULL, progress = NA, unique_table_names = NULL, copy_to = NULL )"},{"path":"https://dm.cynkra.com/reference/copy_dm_to.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Copy data model to data source — copy_dm_to","text":"dest object class \"src\" \"DBIConnection\". dm dm object. ... dots future extensions must empty. set_key_constraints TRUE mirror dm primary foreign key constraints database create indexes foreign key constraints. Set FALSE data model currently satisfy primary foreign key constraints. table_names Desired names tables dest; names within dm remain unchanged. Can NULL, named character vector, vector DBI::Id objects. left NULL (default), names determined automatically depending temporary argument: temporary = TRUE (default): unique table names based names tables dm created. temporary = FALSE: table names dm used names tables dest. function one-sided formula, table_names converted function using rlang::as_function(). function called unquoted table names dm object argument. output function processed DBI::dbQuoteIdentifier(), result vector identifiers length original table names. Use variant table_names = ~ DBI::SQL(paste0(\"schema_name\", \".\", .x)) specify schema tables. Use table_names = identity temporary = TRUE avoid giving temporary tables unique names. named character vector, names vector need correspond table names dm, values desired names dest. value processed DBI::dbQuoteIdentifier(), result vector identifiers length original table names. Use qualified names corresponding database's syntax specify e.g. database schema tables. temporary TRUE, temporary tables created. tables vanish disconnecting database. schema Name schema copy dm . schema provided, error thrown temporary = FALSE table_names NULL. DBMS supported. progress Whether display progress bar, NA (default) hide non-interactive mode, show interactive mode. Requires 'progress' package. unique_table_names, copy_to Must NULL.","code":""},{"path":"https://dm.cynkra.com/reference/copy_dm_to.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Copy data model to data source — copy_dm_to","text":"dm object given src table names input dm.","code":""},{"path":"https://dm.cynkra.com/reference/copy_dm_to.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Copy data model to data source — copy_dm_to","text":"","code":"con <- DBI::dbConnect(RSQLite::SQLite()) # Copy to temporary tables, unique table names by default: temp_dm <- copy_dm_to( con, dm_nycflights13(), set_key_constraints = FALSE ) # Persist, explicitly specify table names: persistent_dm <- copy_dm_to( con, dm_nycflights13(), temporary = FALSE, table_names = ~ paste0(\"flights_\", .x) ) dbplyr::remote_name(persistent_dm$planes) #> [1] \"flights_planes\" DBI::dbDisconnect(con)"},{"path":"https://dm.cynkra.com/reference/db_schema_create.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a schema on a database — db_schema_create","title":"Create a schema on a database — db_schema_create","text":"db_schema_create() creates schema database.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_create.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a schema on a database — db_schema_create","text":"","code":"db_schema_create(con, schema, ...)"},{"path":"https://dm.cynkra.com/reference/db_schema_create.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a schema on a database — db_schema_create","text":"con object class \"src\" \"DBIConnection\". schema Class character SQL (cf. Details), name schema ... Passed individual methods.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_create.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a schema on a database — db_schema_create","text":"NULL invisibly.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_create.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Create a schema on a database — db_schema_create","text":"Methods available DBMS. error thrown schema name already exists. argument schema (dbname MSSQL) can provided SQL objects. Keep mind, case assumed already correctly quoted identifiers using DBI::dbQuoteIdentifier(). Additional arguments : dbname: supported MSSQL. Create schema different database connected MSSQL-server; default: database addressed con.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/db_schema_drop.html","id":null,"dir":"Reference","previous_headings":"","what":"Remove a schema from a database — db_schema_drop","title":"Remove a schema from a database — db_schema_drop","text":"db_schema_drop() deletes schema database. certain DBMS possible force removal non-empty schema, see .","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_drop.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Remove a schema from a database — db_schema_drop","text":"","code":"db_schema_drop(con, schema, force = FALSE, ...)"},{"path":"https://dm.cynkra.com/reference/db_schema_drop.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Remove a schema from a database — db_schema_drop","text":"con object class \"src\" \"DBIConnection\". schema Class character SQL (cf. Details), name schema force Boolean, default FALSE. Set TRUE drop schema objects contains . Currently supported Postgres. ... Passed individual methods.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_drop.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Remove a schema from a database — db_schema_drop","text":"NULL invisibly.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_drop.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Remove a schema from a database — db_schema_drop","text":"Methods available DBMS. error thrown schema name exists. argument schema (dbname MSSQL) can provided SQL objects. Keep mind, case assumed already correctly quoted identifiers. Additional arguments : dbname: supported MSSQL. Remove schema different database connected MSSQL-server; default: database addressed con.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/db_schema_exists.html","id":null,"dir":"Reference","previous_headings":"","what":"Check for existence of a schema on a database — db_schema_exists","title":"Check for existence of a schema on a database — db_schema_exists","text":"db_schema_exists() checks, schema exists database.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_exists.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check for existence of a schema on a database — db_schema_exists","text":"","code":"db_schema_exists(con, schema, ...)"},{"path":"https://dm.cynkra.com/reference/db_schema_exists.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check for existence of a schema on a database — db_schema_exists","text":"con object class \"src\" \"DBIConnection\". schema Class character SQL, name schema ... Passed individual methods.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_exists.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check for existence of a schema on a database — db_schema_exists","text":"boolean: TRUE schema exists, FALSE otherwise.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_exists.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Check for existence of a schema on a database — db_schema_exists","text":"Methods available DBMS. Additional arguments : dbname: supported MSSQL. Check schema exists different database connected MSSQL-server; default: database addressed con.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/db_schema_list.html","id":null,"dir":"Reference","previous_headings":"","what":"List schemas on a database — db_schema_list","title":"List schemas on a database — db_schema_list","text":"db_schema_list() lists available schemas database.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_list.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"List schemas on a database — db_schema_list","text":"","code":"db_schema_list(con, include_default = TRUE, ...)"},{"path":"https://dm.cynkra.com/reference/db_schema_list.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"List schemas on a database — db_schema_list","text":"con object class \"src\" \"DBIConnection\". include_default Boolean, TRUE (default), also default schema database included result ... Passed individual methods.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_list.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"List schemas on a database — db_schema_list","text":"tibble following columns: schema_name names schemas, schema_owner schema owner names.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_list.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"List schemas on a database — db_schema_list","text":"Methods available DBMS. Additional arguments : dbname: supported MSSQL. List schemas different database connected MSSQL-server; default: database addressed con.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/decompose_table.html","id":null,"dir":"Reference","previous_headings":"","what":"Decompose a table into two linked tables — decompose_table","title":"Decompose a table into two linked tables — decompose_table","text":"Perform table surgery extracting 'parent table' table, linking original table new table key, returning tables. decompose_table() accepts data frame, name 'ID column' newly created, names columns extracted new data frame. creates 'parent table', consists columns specified ellipsis, new 'ID column'. removes columns original table, now called 'child table, adds 'ID column'.","code":""},{"path":"https://dm.cynkra.com/reference/decompose_table.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Decompose a table into two linked tables — decompose_table","text":"","code":"decompose_table(.data, new_id_column, ...)"},{"path":"https://dm.cynkra.com/reference/decompose_table.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Decompose a table into two linked tables — decompose_table","text":".data Data frame columns ... extracted. new_id_column Name identifier column (primary key column) parent table. column name also added 'child table'. ... columns extracted .data. One unquoted expressions separated commas. can treat variable names positions, can use expressions like x:y select ranges variables. arguments ... automatically quoted evaluated context column names represent column positions. also support unquoting splicing. See vignette(\"programming\") introduction concepts. See select helpers details, examples tidyselect helpers, starts_with(), everything(), ...","code":""},{"path":"https://dm.cynkra.com/reference/decompose_table.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Decompose a table into two linked tables — decompose_table","text":"named list length two: entry \"child_table\": child table column new_id_column referring column parent_table, entry \"parent_table\": \"lookup table\" child_table.","code":""},{"path":"https://dm.cynkra.com/reference/decompose_table.html","id":"life-cycle","dir":"Reference","previous_headings":"","what":"Life cycle","title":"Decompose a table into two linked tables — decompose_table","text":"function marked \"experimental\" seems useful applied table dm object. Changing interface later seems harmless functions likely used interactively.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/decompose_table.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Decompose a table into two linked tables — decompose_table","text":"","code":"decomposed_table <- decompose_table(mtcars, new_id, am, gear, carb) decomposed_table$child_table #> mpg cyl disp hp drat wt qsec vs new_id #> 1 21.0 6 160.0 110 3.90 2.620 16.46 0 7 #> 2 21.0 6 160.0 110 3.90 2.875 17.02 0 7 #> 3 22.8 4 108.0 93 3.85 2.320 18.61 1 8 #> 4 21.4 6 258.0 110 3.08 3.215 19.44 1 1 #> 5 18.7 8 360.0 175 3.15 3.440 17.02 0 2 #> 6 18.1 6 225.0 105 2.76 3.460 20.22 1 1 #> 7 14.3 8 360.0 245 3.21 3.570 15.84 0 3 #> 8 24.4 4 146.7 62 3.69 3.190 20.00 1 4 #> 9 22.8 4 140.8 95 3.92 3.150 22.90 1 4 #> 10 19.2 6 167.6 123 3.92 3.440 18.30 1 5 #> 11 17.8 6 167.6 123 3.92 3.440 18.90 1 5 #> 12 16.4 8 275.8 180 3.07 4.070 17.40 0 6 #> 13 17.3 8 275.8 180 3.07 3.730 17.60 0 6 #> 14 15.2 8 275.8 180 3.07 3.780 18.00 0 6 #> 15 10.4 8 472.0 205 2.93 5.250 17.98 0 3 #> 16 10.4 8 460.0 215 3.00 5.424 17.82 0 3 #> 17 14.7 8 440.0 230 3.23 5.345 17.42 0 3 #> 18 32.4 4 78.7 66 4.08 2.200 19.47 1 8 #> 19 30.4 4 75.7 52 4.93 1.615 18.52 1 9 #> 20 33.9 4 71.1 65 4.22 1.835 19.90 1 8 #> 21 21.5 4 120.1 97 3.70 2.465 20.01 1 1 #> 22 15.5 8 318.0 150 2.76 3.520 16.87 0 2 #> 23 15.2 8 304.0 150 3.15 3.435 17.30 0 2 #> 24 13.3 8 350.0 245 3.73 3.840 15.41 0 3 #> 25 19.2 8 400.0 175 3.08 3.845 17.05 0 2 #> 26 27.3 4 79.0 66 4.08 1.935 18.90 1 8 #> 27 26.0 4 120.3 91 4.43 2.140 16.70 0 10 #> 28 30.4 4 95.1 113 3.77 1.513 16.90 1 10 #> 29 15.8 8 351.0 264 4.22 3.170 14.50 0 11 #> 30 19.7 6 145.0 175 3.62 2.770 15.50 0 12 #> 31 15.0 8 301.0 335 3.54 3.570 14.60 0 13 #> 32 21.4 4 121.0 109 4.11 2.780 18.60 1 9 decomposed_table$parent_table #> new_id am gear carb #> Mazda RX4 7 1 4 4 #> Datsun 710 8 1 4 1 #> Hornet 4 Drive 1 0 3 1 #> Hornet Sportabout 2 0 3 2 #> Duster 360 3 0 3 4 #> Merc 240D 4 0 4 2 #> Merc 280 5 0 4 4 #> Merc 450SE 6 0 3 3 #> Honda Civic 9 1 4 2 #> Porsche 914-2 10 1 5 2 #> Ford Pantera L 11 1 5 4 #> Ferrari Dino 12 1 5 6 #> Maserati Bora 13 1 5 8"},{"path":"https://dm.cynkra.com/reference/deprecated.html","id":null,"dir":"Reference","previous_headings":"","what":"Deprecated functions — deprecated","title":"Deprecated functions — deprecated","text":"functions deprecated favor better alternatives. functions cdm_ prefix identical alternative dm_ prefix. sql_schema_*() functions replaced corresponding db_schema_*() functions. dm_join_to_tbl() deprecated favor dm_flatten_to_tbl(). dm_is_referenced() soft-deprecated, use information returned dm_get_all_fks() instead. dm_get_referencing_tables() soft-deprecated, use information returned dm_get_all_fks() instead. validate_dm() replaced dm_validate() consistency. dm_add_tbl deprecated dm 1.0.0, functionality offered dm() .name_repair = \"unique\". dm_bind() deprecated dm 1.0.0, functionality offered dm(). dm_squash_to_tbl() deprecated dm 1.0.0, functionality offered dm_flatten_to_tbl() recursive = TRUE. rows_truncate() deprecated dm 1.0.0, DDL operation requires different permissions dplyr::rows_*() functions.","code":""},{"path":"https://dm.cynkra.com/reference/deprecated.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Deprecated functions — deprecated","text":"","code":"sql_schema_create(dest, schema, ...) sql_schema_drop(dest, schema, force = FALSE, ...) sql_schema_exists(dest, schema, ...) sql_schema_list(dest, include_default = TRUE, ...) dm_apply_filters(dm) dm_apply_filters_to_tbl(dm, table) dm_get_filters(dm) dm_join_to_tbl(dm, table_1, table_2, join = left_join) dm_is_referenced(dm, table) dm_get_referencing_tables(dm, table) validate_dm(x) check_if_subset(t1, c1, t2, c2) check_cardinality(parent_table, pk_column, child_table, fk_column) cdm_get_src(x) cdm_get_con(x) cdm_get_tables(x) cdm_get_filter(x) cdm_add_tbl(dm, ..., repair = \"unique\", quiet = FALSE) cdm_rm_tbl(dm, ...) cdm_copy_to( dest, dm, ..., types = NULL, overwrite = NULL, indexes = NULL, unique_indexes = NULL, set_key_constraints = TRUE, unique_table_names = FALSE, table_names = NULL, temporary = TRUE ) cdm_disambiguate_cols(dm, sep = \".\", quiet = FALSE) cdm_draw( dm, rankdir = \"LR\", col_attr = \"column\", view_type = \"keys_only\", columnArrows = TRUE, graph_attrs = \"\", node_attrs = \"\", edge_attrs = \"\", focus = NULL, graph_name = \"Data Model\" ) cdm_set_colors(dm, ...) cdm_get_colors(dm) cdm_get_available_colors() cdm_filter(dm, table, ...) cdm_nrow(dm) cdm_flatten_to_tbl(dm, start, ..., join = left_join) cdm_squash_to_tbl(dm, start, ..., join = left_join) cdm_join_to_tbl(dm, table_1, table_2, join = left_join) cdm_apply_filters(dm) cdm_apply_filters_to_tbl(dm, table) cdm_add_pk(dm, table, column, check = FALSE, force = FALSE) cdm_add_fk(dm, table, column, ref_table, check = FALSE) cdm_has_fk(dm, table, ref_table) cdm_get_fk(dm, table, ref_table) cdm_get_all_fks(dm) cdm_rm_fk(dm, table, columns, ref_table) cdm_enum_fk_candidates(dm, table, ref_table) cdm_is_referenced(dm, table) cdm_get_referencing_tables(dm, table) cdm_learn_from_db(dest) cdm_check_constraints(dm) cdm_nycflights13(cycle = FALSE, color = TRUE, subset = TRUE) cdm_paste(dm, select = FALSE, tab_width = 2) cdm_has_pk(dm, table) cdm_get_pk(dm, table) cdm_get_all_pks(dm) cdm_rm_pk(dm, table, rm_referencing_fks = FALSE) cdm_enum_pk_candidates(dm, table) cdm_select_tbl(dm, ...) cdm_rename_tbl(dm, ...) cdm_select(dm, table, ...) cdm_rename(dm, table, ...) cdm_zoom_to_tbl(dm, table) cdm_insert_zoomed_tbl( dm, new_tbl_name = NULL, repair = \"unique\", quiet = FALSE ) cdm_update_zoomed_tbl(dm) cdm_zoom_out(dm) dm_rm_tbl(dm, ...) dm_add_tbl(dm, ..., repair = \"unique\", quiet = FALSE) dm_bind(..., repair = \"check_unique\", quiet = FALSE) dm_squash_to_tbl(dm, start, ..., join = left_join) rows_truncate(x, ..., in_place = FALSE) sql_rows_truncate(x, ...) dm_rows_truncate(x, y, ..., in_place = NULL, progress = NA)"},{"path":"https://dm.cynkra.com/reference/deprecated.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Deprecated functions — deprecated","text":"... dots future extensions must empty. force Boolean, FALSE (default), error thrown already primary key set table. TRUE, potential old pk deleted setting new one. dm dm object. table table dm. table_1 One tables involved join. table_2 second table join. join type join performed, see dplyr::join(). x object. check Boolean, TRUE, check made combination columns unique key table. columns Table columns, unquoted. define compound key, use c(col1, col2).","code":""},{"path":"https://dm.cynkra.com/reference/dm-package.html","id":null,"dir":"Reference","previous_headings":"","what":"dm: Relational Data Models — dm-package","title":"dm: Relational Data Models — dm-package","text":"Provides tools working multiple related tables, stored data frames relational database. Multiple tables (data metadata) stored compound object, can manipulated pipe-friendly syntax.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"dm: Relational Data Models — dm-package","text":"Maintainer: Kirill Müller kirill@cynkra.com (ORCID) Authors: Tobias Schieferdecker tobias@cynkra.com Darko Bergant darko.bergant@gmail.com contributors: Antoine Fabri [contributor] Katharina Brunner [contributor] James Wondrasek [contributor] Indrajeet Patil (ORCID) [contributor] Maëlle Salmon (ORCID) [contributor] energie360° AG info@energie360.ch [funder] cynkra GmbH mail@cynkra.com [funder, copyright holder]","code":""},{"path":"https://dm.cynkra.com/reference/dm.html","id":null,"dir":"Reference","previous_headings":"","what":"Data model class — dm","title":"Data model class — dm","text":"dm class holds list tables relationships. inspired datamodelr, extends idea offering operations access data tables. dm() creates dm object tbl objects (tibbles lazy data objects). new_dm() low-level constructor creates new dm object. called without arguments, create empty dm. called arguments, validation checks made ascertain inputs expected class internally consistent; use dm_validate() double-check returned object. is_dm() returns TRUE input class dm. as_dm() coerces objects dm class","code":""},{"path":"https://dm.cynkra.com/reference/dm.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data model class — dm","text":"","code":"dm( ..., .name_repair = c(\"check_unique\", \"unique\", \"universal\", \"minimal\"), .quiet = FALSE ) new_dm(tables = list()) is_dm(x) as_dm(x, ...)"},{"path":"https://dm.cynkra.com/reference/dm.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Data model class — dm","text":"... Tables existing dm objects add dm object. Unnamed tables auto-named, dm objects must named. .name_repair, .quiet Options name repair. Forwarded repair quiet vctrs::vec_as_names(). tables named list tables (tibble-objects, names), included dm object. x object.","code":""},{"path":"https://dm.cynkra.com/reference/dm.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Data model class — dm","text":"dm(), new_dm(), as_dm(): dm object. is_dm(): scalar logical, TRUE object dm.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data model class — dm","text":"","code":"dm(trees, mtcars) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `trees`, `mtcars` #> Columns: 14 #> Primary keys: 0 #> Foreign keys: 0 new_dm(list(trees = trees, mtcars = mtcars)) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `trees`, `mtcars` #> Columns: 14 #> Primary keys: 0 #> Foreign keys: 0 as_dm(list(trees = trees, mtcars = mtcars)) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `trees`, `mtcars` #> Columns: 14 #> Primary keys: 0 #> Foreign keys: 0 is_dm(dm_nycflights13()) #> [1] TRUE dm_nycflights13()$airports #> # A tibble: 86 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta Intl 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Logan Intl 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows dm_nycflights13()[\"airports\"] #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airports` #> Columns: 8 #> Primary keys: 1 #> Foreign keys: 0 dm_nycflights13()[[\"airports\"]] #> # A tibble: 86 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta Intl 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Logan Intl 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows dm_nycflights13() %>% names() #> [1] \"airlines\" \"airports\" \"flights\" \"planes\" \"weather\" library(dm) library(nycflights13) # using `data.frame` objects new_dm(tibble::lst(weather, airports)) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `weather`, `airports` #> Columns: 23 #> Primary keys: 0 #> Foreign keys: 0 # using `dm_keyed_tbl` objects dm <- dm_nycflights13() y1 <- dm$planes %>% mutate() %>% select(everything()) y2 <- dm$flights %>% left_join(dm$airlines, by = \"carrier\") new_dm(list(\"tbl1\" = y1, \"tbl2\" = y2)) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `tbl1`, `tbl2` #> Columns: 29 #> Primary keys: 0 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/reference/dm_add_fk.html","id":null,"dir":"Reference","previous_headings":"","what":"Add foreign keys — dm_add_fk","title":"Add foreign keys — dm_add_fk","text":"dm_add_fk() marks specified columns foreign key table table respect key table ref_table. Usually referenced columns primary key ref_table. However, also possible specify columns via ref_columns argument. check == TRUE, first check values columns subset values key table ref_table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_fk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add foreign keys — dm_add_fk","text":"","code":"dm_add_fk( dm, table, columns, ref_table, ref_columns = NULL, ..., check = FALSE, on_delete = c(\"no_action\", \"cascade\") )"},{"path":"https://dm.cynkra.com/reference/dm_add_fk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add foreign keys — dm_add_fk","text":"dm dm object. table table dm. columns columns table become foreign key columns reference ref_table. define compound key, use c(col1, col2). ref_table table table referencing. ref_columns column(s) table become referenced column(s) ref_table. default, primary key used. define compound key, use c(col1, col2). ... dots future extensions must empty. check Boolean, TRUE, check performed determine values columns subset values key column(s) ref_table. on_delete Defines behavior row parent table deleted. - \"no_action\", default, means action taken operation aborted child rows exist - \"cascade\" means child row also deleted setting picked copy_dm_to() set_key_constraints = TRUE, dm_sql(), might considered dm_rows_delete() future version.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_fk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add foreign keys — dm_add_fk","text":"updated dm additional foreign key relation.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_fk.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add foreign keys — dm_add_fk","text":"possible foreign key (FK) pointing columns neither primary (PK) explicit unique keys (UK). can happen FK added without corresponding PK UK present parent table PK UK removed (dm_rm_pk()/dm_rm_uk()) without first removing associated FKs. columns -called \"implicit unique key\" referenced table can listed via dm_get_all_uks().","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_add_fk.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add foreign keys — dm_add_fk","text":"","code":"nycflights_dm <- dm( planes = nycflights13::planes, flights = nycflights13::flights, weather = nycflights13::weather ) nycflights_dm %>% dm_draw() %0 flightsflightsplanesplanesweatherweather # Create foreign keys: nycflights_dm %>% dm_add_pk(planes, tailnum) %>% dm_add_fk(flights, tailnum, planes) %>% dm_add_pk(weather, c(origin, time_hour)) %>% dm_add_fk(flights, c(origin, time_hour), weather) %>% dm_draw() %0 flightsflightstailnumorigin, time_hourplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour # Keys can be checked during creation: try( nycflights_dm %>% dm_add_pk(planes, tailnum) %>% dm_add_fk(flights, tailnum, planes, check = TRUE) ) #> Error in abort_not_subset_of(table_name, col_name, ref_table_name, ref_col_name) : #> Column (`tailnum`) of table `flights` contains values (see examples above) that are not present in column (`tailnum`) of table `planes`."},{"path":"https://dm.cynkra.com/reference/dm_add_pk.html","id":null,"dir":"Reference","previous_headings":"","what":"Add a primary key — dm_add_pk","title":"Add a primary key — dm_add_pk","text":"dm_add_pk() marks specified columns primary key specified table. check == TRUE, first check given combination columns unique key table. force == TRUE, function replace already set key, without altering foreign keys previously pointing primary key.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_pk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add a primary key — dm_add_pk","text":"","code":"dm_add_pk( dm, table, columns, ..., autoincrement = FALSE, check = FALSE, force = FALSE )"},{"path":"https://dm.cynkra.com/reference/dm_add_pk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add a primary key — dm_add_pk","text":"dm dm object. table table dm. columns Table columns, unquoted. define compound key, use c(col1, col2). ... dots future extensions must empty. autoincrement TRUE, column specified columns populated automatically sequence integers. check Boolean, TRUE, check made combination columns unique key table. force Boolean, FALSE (default), error thrown already primary key set table. TRUE, potential old pk deleted setting new one.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_pk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add a primary key — dm_add_pk","text":"updated dm additional primary key.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_pk.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add a primary key — dm_add_pk","text":"can one primary key per table dm. possible though set unlimited number unique keys using dm_add_uk() adding foreign keys pointing columns primary key columns dm_add_fk().","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_add_pk.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add a primary key — dm_add_pk","text":"","code":"nycflights_dm <- dm( planes = nycflights13::planes, airports = nycflights13::airports, weather = nycflights13::weather ) nycflights_dm %>% dm_draw() %0 airportsairportsplanesplanesweatherweather # Create primary keys: nycflights_dm %>% dm_add_pk(planes, tailnum) %>% dm_add_pk(airports, faa, check = TRUE) %>% dm_add_pk(weather, c(origin, time_hour)) %>% dm_draw() %0 airportsairportsfaaplanesplanestailnumweatherweatherorigin, time_hour # Keys can be checked during creation: try( nycflights_dm %>% dm_add_pk(planes, manufacturer, check = TRUE) ) #> Error in abort_not_unique_key(x_label, orig_names) : #> (`manufacturer`) not a unique key of `planes`."},{"path":"https://dm.cynkra.com/reference/dm_add_uk.html","id":null,"dir":"Reference","previous_headings":"","what":"Add a unique key — dm_add_uk","title":"Add a unique key — dm_add_uk","text":"dm_add_uk() marks specified columns unique key specified table. check == TRUE, first check given combination columns unique key table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_uk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add a unique key — dm_add_uk","text":"","code":"dm_add_uk(dm, table, columns, ..., check = FALSE)"},{"path":"https://dm.cynkra.com/reference/dm_add_uk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add a unique key — dm_add_uk","text":"dm dm object. table table dm. columns Table columns, unquoted. define compound key, use c(col1, col2). ... dots future extensions must empty. check Boolean, TRUE, check made combination columns unique key table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_uk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add a unique key — dm_add_uk","text":"updated dm additional unqiue key.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_uk.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add a unique key — dm_add_uk","text":"difference primary key (PK) unique key (UK) consists following: local dm copied database (DB) copy_dm_to(), PK set DB default, whereas UK ignored. PK can set autoincrement key (also implemented certain DBMS dm transferred DB) can one PK table, whereas can unlimited UKs UK used, table autoincrement PK addition, ensure delta load processes DB (cf. dm_rows_append()) foreign keys updated accordingly. UK available, insertion done row-wise, also ensures correct matching, can much slower. UK can generally enhance data model adding additional information can also implicit UKs, columns addressed foreign key neither PK UK. implicit UKs also listed dm_get_all_uks()","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_add_uk.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add a unique key — dm_add_uk","text":"","code":"nycflights_dm <- dm( planes = nycflights13::planes, airports = nycflights13::airports, weather = nycflights13::weather ) # Create unique keys: nycflights_dm %>% dm_add_uk(planes, tailnum) %>% dm_add_uk(airports, faa, check = TRUE) %>% dm_add_uk(weather, c(origin, time_hour)) %>% dm_get_all_uks() #> # A tibble: 3 × 3 #> table uk_col kind #> #> 1 planes tailnum explicit UK #> 2 airports faa explicit UK #> 3 weather origin, time_hour explicit UK # Keys can be checked during creation: try( nycflights_dm %>% dm_add_uk(planes, manufacturer, check = TRUE) ) #> Error in abort_not_unique_key(x_label, orig_names) : #> (`manufacturer`) not a unique key of `planes`."},{"path":"https://dm.cynkra.com/reference/dm_deconstruct.html","id":null,"dir":"Reference","previous_headings":"","what":"Create code to deconstruct a dm object — dm_deconstruct","title":"Create code to deconstruct a dm object — dm_deconstruct","text":"Emits code assigns table dm variable, using pull_tbl() keyed = TRUE. tables retain information primary foreign keys, even data transformations, can converted back dm object dm().","code":""},{"path":"https://dm.cynkra.com/reference/dm_deconstruct.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create code to deconstruct a dm object — dm_deconstruct","text":"","code":"dm_deconstruct(dm, dm_name = NULL)"},{"path":"https://dm.cynkra.com/reference/dm_deconstruct.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create code to deconstruct a dm object — dm_deconstruct","text":"dm dm object. dm_name code use access dm object, default expression passed function.","code":""},{"path":"https://dm.cynkra.com/reference/dm_deconstruct.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create code to deconstruct a dm object — dm_deconstruct","text":"function called side effect printing generated code.","code":""},{"path":"https://dm.cynkra.com/reference/dm_deconstruct.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create code to deconstruct a dm object — dm_deconstruct","text":"","code":"dm <- dm_nycflights13() dm_deconstruct(dm) #> airlines <- pull_tbl(dm, \"airlines\", keyed = TRUE) #> airports <- pull_tbl(dm, \"airports\", keyed = TRUE) #> flights <- pull_tbl(dm, \"flights\", keyed = TRUE) #> planes <- pull_tbl(dm, \"planes\", keyed = TRUE) #> weather <- pull_tbl(dm, \"weather\", keyed = TRUE) airlines <- pull_tbl(dm, \"airlines\", keyed = TRUE) airports <- pull_tbl(dm, \"airports\", keyed = TRUE) flights <- pull_tbl(dm, \"flights\", keyed = TRUE) planes <- pull_tbl(dm, \"planes\", keyed = TRUE) weather <- pull_tbl(dm, \"weather\", keyed = TRUE) by_origin <- flights %>% group_by(origin) %>% summarize(mean_arr_delay = mean(arr_delay, na.rm = TRUE)) %>% ungroup() by_origin #> # A tibble: 3 × 2 #> # Keys: `origin` | 0 | 0 #> origin mean_arr_delay #> #> 1 EWR 3.43 #> 2 JFK -4.36 #> 3 LGA 0.523 dm(airlines, airports, flights, planes, weather, by_origin) %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaby_originby_originoriginby_origin:origin->airports:faaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour"},{"path":"https://dm.cynkra.com/reference/dm_disambiguate_cols.html","id":null,"dir":"Reference","previous_headings":"","what":"Resolve column name ambiguities — dm_disambiguate_cols","title":"Resolve column name ambiguities — dm_disambiguate_cols","text":"function ensures columns dm unique names.","code":""},{"path":"https://dm.cynkra.com/reference/dm_disambiguate_cols.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Resolve column name ambiguities — dm_disambiguate_cols","text":"","code":"dm_disambiguate_cols( dm, .sep = \".\", ..., .quiet = FALSE, .position = c(\"suffix\", \"prefix\") )"},{"path":"https://dm.cynkra.com/reference/dm_disambiguate_cols.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Resolve column name ambiguities — dm_disambiguate_cols","text":"dm dm object. .sep character variable separates names table names ambiguous columns. ... dots future extensions must empty. .quiet Boolean. default, function lists renamed columns message, pass TRUE suppress message. .position default, table names appended column names resolve conflicts. Prepending table names default versions 1.0.0, use \"prefix\" achieve behavior.","code":""},{"path":"https://dm.cynkra.com/reference/dm_disambiguate_cols.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Resolve column name ambiguities — dm_disambiguate_cols","text":"dm whose column names unambiguous.","code":""},{"path":"https://dm.cynkra.com/reference/dm_disambiguate_cols.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Resolve column name ambiguities — dm_disambiguate_cols","text":"function first checks column names unique. , columns assigned new, unique, names prefixing existing name name table separator. Columns act primary foreign keys renamed foreign key column remain two tables joined, making column name \"unique\" well.","code":""},{"path":"https://dm.cynkra.com/reference/dm_disambiguate_cols.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Resolve column name ambiguities — dm_disambiguate_cols","text":"","code":"dm_nycflights13() %>% dm_disambiguate_cols() #> Renaming ambiguous columns: %>% #> dm_rename(airlines, carrier.airlines = carrier) %>% #> dm_rename(airlines, name.airlines = name) %>% #> dm_rename(airports, name.airports = name) %>% #> dm_rename(flights, year.flights = year) %>% #> dm_rename(flights, month.flights = month) %>% #> dm_rename(flights, day.flights = day) %>% #> dm_rename(flights, carrier.flights = carrier) %>% #> dm_rename(flights, tailnum.flights = tailnum) %>% #> dm_rename(flights, origin.flights = origin) %>% #> dm_rename(flights, hour.flights = hour) %>% #> dm_rename(flights, time_hour.flights = time_hour) %>% #> dm_rename(planes, tailnum.planes = tailnum) %>% #> dm_rename(planes, year.planes = year) %>% #> dm_rename(weather, origin.weather = origin) %>% #> dm_rename(weather, year.weather = year) %>% #> dm_rename(weather, month.weather = month) %>% #> dm_rename(weather, day.weather = day) %>% #> dm_rename(weather, hour.weather = hour) %>% #> dm_rename(weather, time_hour.weather = time_hour) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/dm_draw.html","id":null,"dir":"Reference","previous_headings":"","what":"Draw a diagram of the data model — dm_draw","title":"Draw a diagram of the data model — dm_draw","text":"dm_draw() draws diagram, visual representation data model.","code":""},{"path":"https://dm.cynkra.com/reference/dm_draw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Draw a diagram of the data model — dm_draw","text":"","code":"dm_draw( dm, rankdir = \"LR\", ..., col_attr = NULL, view_type = c(\"keys_only\", \"all\", \"title_only\"), columnArrows = TRUE, graph_attrs = \"\", node_attrs = \"\", edge_attrs = \"\", focus = NULL, graph_name = \"Data Model\", column_types = NULL, backend = \"DiagrammeR\", font_size = NULL )"},{"path":"https://dm.cynkra.com/reference/dm_draw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Draw a diagram of the data model — dm_draw","text":"dm dm object. rankdir Graph attribute direction (e.g., 'BT' = bottom --> top). ... dots future extensions must empty. col_attr Deprecated, use colummn_types instead. view_type Can \"keys_only\" (default), \"\" \"title_only\". defines level details rendering tables (primary foreign keys, columns, columns). columnArrows Edges columns columns (default: TRUE). graph_attrs Additional graph attributes. node_attrs Additional node attributes. edge_attrs Additional edge attributes. focus list parameters rendering (table filter). graph_name name graph. column_types Set TRUE show column types. backend Currently, default \"DiagrammeR\" accepted. Pass value explicitly code uses function display data model relies type return value. font_size Font size : header, defaults 16 column, defaults 16 table_description, defaults 8 Can set named integer vector, e.g. c(table_headers = 18L, table_description = 6L).","code":""},{"path":"https://dm.cynkra.com/reference/dm_draw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Draw a diagram of the data model — dm_draw","text":"object print() method, , printed, produces output seen viewer side effect. Currently, object class grViz (see also DiagrammeR::grViz()), subject change.","code":""},{"path":"https://dm.cynkra.com/reference/dm_draw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Draw a diagram of the data model — dm_draw","text":"Currently, dm uses DiagrammeR draw diagrams. Use DiagrammeRsvg::export_svg() convert diagram SVG file. backend drawing diagrams might change future. rely DiagrammeR, pass explicit value backend argument.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_draw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Draw a diagram of the data model — dm_draw","text":"","code":"dm_nycflights13() %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour dm_nycflights13(cycle = TRUE) %>% dm_draw(view_type = \"title_only\") %0 airlinesairlinesairportsairportsflightsflightsflights:carrier->airlines:carrierflights:origin->airports:faaflights:dest->airports:faaplanesplanesflights:tailnum->planes:tailnumweatherweatherflights:origin, time_hour->weather:origin, time_hour head(dm_get_available_colors()) #> [1] \"default\" \"white\" \"aliceblue\" \"antiquewhite\" #> [5] \"antiquewhite1\" \"antiquewhite2\" length(dm_get_available_colors()) #> [1] 658 dm_nycflights13() %>% dm_get_colors() #> #ED7D31FF #ED7D31FF #5B9BD5FF #ED7D31FF #70AD47FF #> \"airlines\" \"airports\" \"flights\" \"planes\" \"weather\""},{"path":"https://dm.cynkra.com/reference/dm_enum_fk_candidates.html","id":null,"dir":"Reference","previous_headings":"","what":"Foreign key candidates — dm_enum_fk_candidates","title":"Foreign key candidates — dm_enum_fk_candidates","text":"Determine columns good candidates used foreign keys table, reference primary key column another table dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_enum_fk_candidates.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Foreign key candidates — dm_enum_fk_candidates","text":"","code":"dm_enum_fk_candidates(dm, table, ref_table, ...) enum_fk_candidates(dm_zoomed, ref_table, ...)"},{"path":"https://dm.cynkra.com/reference/dm_enum_fk_candidates.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Foreign key candidates — dm_enum_fk_candidates","text":"dm dm object. table table whose columns tested suitability foreign keys. ref_table table primary key. ... dots future extensions must empty. dm_zoomed dm zoomed table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_enum_fk_candidates.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Foreign key candidates — dm_enum_fk_candidates","text":"tibble following columns: columns columns table, candidate boolean: columns candidate foreign key, candidate foreign key, explanation .","code":""},{"path":"https://dm.cynkra.com/reference/dm_enum_fk_candidates.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Foreign key candidates — dm_enum_fk_candidates","text":"dm_enum_fk_candidates() first checks ref_table primary key set, , error thrown. ref_table primary key, join operation tried using key argument join() match column table. Attempting join incompatible columns triggers error. outcome join operation determines value column result: empty value column table suitable foreign key candidate count percentage missing matches column suitable error message triggered unsuitable candidates may include types mismatched columns enum_fk_candidates() works like dm_enum_fk_candidates() zoomed table table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_enum_fk_candidates.html","id":"life-cycle","dir":"Reference","previous_headings":"","what":"Life cycle","title":"Foreign key candidates — dm_enum_fk_candidates","text":"functions marked \"experimental\" yet sure interface, particular need dm_enum...() enum...() variants. Changing interface later seems harmless functions likely used interactively.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_enum_fk_candidates.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Foreign key candidates — dm_enum_fk_candidates","text":"","code":"dm_nycflights13() %>% dm_enum_fk_candidates(flights, airports) #> # A tibble: 19 × 3 #> columns candidate why #> #> 1 origin TRUE \"\" #> 2 year FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 3 month FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 4 day FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 5 dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 6 sched_dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 7 dep_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 8 arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 9 sched_arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 10 arr_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 11 carrier FALSE \"values of `flights$carrier` not in `airports$faa`:… #> 12 flight FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 13 tailnum FALSE \"values of `flights$tailnum` not in `airports$faa`:… #> 14 dest FALSE \"values of `flights$dest` not in `airports$faa`: SJ… #> 15 air_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 16 distance FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 17 hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 18 minute FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 19 time_hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… dm_nycflights13() %>% dm_zoom_to(flights) %>% enum_fk_candidates(airports) #> # A tibble: 19 × 3 #> columns candidate why #> #> 1 origin TRUE \"\" #> 2 year FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 3 month FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 4 day FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 5 dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 6 sched_dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 7 dep_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 8 arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 9 sched_arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 10 arr_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 11 carrier FALSE \"values of `flights$carrier` not in `airports$faa`:… #> 12 flight FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 13 tailnum FALSE \"values of `flights$tailnum` not in `airports$faa`:… #> 14 dest FALSE \"values of `flights$dest` not in `airports$faa`: SJ… #> 15 air_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 16 distance FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 17 hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 18 minute FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 19 time_hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v…"},{"path":"https://dm.cynkra.com/reference/dm_enum_pk_candidates.html","id":null,"dir":"Reference","previous_headings":"","what":"Primary key candidate — enum_pk_candidates","title":"Primary key candidate — enum_pk_candidates","text":"enum_pk_candidates() checks column table column contains unique values, thus suitable candidate primary key table. dm_enum_pk_candidates() performs checks table dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_enum_pk_candidates.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Primary key candidate — enum_pk_candidates","text":"","code":"enum_pk_candidates(table, ...) dm_enum_pk_candidates(dm, table, ...)"},{"path":"https://dm.cynkra.com/reference/dm_enum_pk_candidates.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Primary key candidate — enum_pk_candidates","text":"table table dm. ... dots future extensions must empty. dm dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_enum_pk_candidates.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Primary key candidate — enum_pk_candidates","text":"tibble following columns: columns columns table, candidate boolean: columns candidate primary key, candidate primary key column, explanation .","code":""},{"path":"https://dm.cynkra.com/reference/dm_enum_pk_candidates.html","id":"life-cycle","dir":"Reference","previous_headings":"","what":"Life cycle","title":"Primary key candidate — enum_pk_candidates","text":"functions marked \"experimental\" yet sure interface, particular need dm_enum...() enum...() variants. Changing interface later seems harmless functions likely used interactively.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_enum_pk_candidates.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Primary key candidate — enum_pk_candidates","text":"","code":"nycflights13::flights %>% enum_pk_candidates() #> # A tibble: 19 × 3 #> columns candidate why #> #> 1 year FALSE has duplicate values: 2013 (336776) #> 2 month FALSE has duplicate values: 7 (29425), 8 (29327), 10 (288… #> 3 day FALSE has duplicate values: 18 (11399), 11 (11359), 22 (1… #> 4 dep_time FALSE has 8255 missing values, and duplicate values: 555 … #> 5 sched_dep_time FALSE has duplicate values: 600 (7016), 700 (4900), 630 (… #> 6 dep_delay FALSE has duplicate values: -5 (24821), -4 (24619), -3 (2… #> 7 arr_time FALSE has 8713 missing values, and duplicate values: 1008… #> 8 sched_arr_time FALSE has duplicate values: 1025 (1324), 2015 (1234), 111… #> 9 arr_delay FALSE has 9430 missing values, and duplicate values: -13 … #> 10 carrier FALSE has duplicate values: UA (58665), B6 (54635), EV (5… #> 11 flight FALSE has duplicate values: 15 (968), 27 (898), 181 (882)… #> 12 tailnum FALSE has 2512 missing values, and duplicate values: N725… #> 13 origin FALSE has duplicate values: EWR (120835), JFK (111279), L… #> 14 dest FALSE has duplicate values: ORD (17283), ATL (17215), LAX… #> 15 air_time FALSE has 9430 missing values, and duplicate values: 42 (… #> 16 distance FALSE has duplicate values: 2475 (11262), 762 (10263), 73… #> 17 hour FALSE has duplicate values: 8 (27242), 6 (25951), 17 (244… #> 18 minute FALSE has duplicate values: 0 (60696), 30 (33899), 45 (20… #> 19 time_hour FALSE has duplicate values: 2013-09-13 08:00:00 (94), 201… dm_nycflights13() %>% dm_enum_pk_candidates(airports) #> # A tibble: 8 × 3 #> columns candidate why #> #> 1 faa TRUE \"\" #> 2 name TRUE \"\" #> 3 lat TRUE \"\" #> 4 lon TRUE \"\" #> 5 alt FALSE \"has duplicate values: 30 (4), 13 (3), 9 (2), 19 (2), 26 (2… #> 6 tz FALSE \"has duplicate values: -5 (48), -6 (21), -8 (12), -7 (4)\" #> 7 dst FALSE \"has duplicate values: A (84), N (2)\" #> 8 tzone FALSE \"has duplicate values: America/New_York (48), America/Chica…"},{"path":"https://dm.cynkra.com/reference/dm_examine_cardinalities.html","id":null,"dir":"Reference","previous_headings":"","what":"Learn about your data model — dm_examine_cardinalities","title":"Learn about your data model — dm_examine_cardinalities","text":"function returns tibble information cardinality FK constraints. printing object special, use as_tibble() print regular tibble.","code":""},{"path":"https://dm.cynkra.com/reference/dm_examine_cardinalities.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Learn about your data model — dm_examine_cardinalities","text":"","code":"dm_examine_cardinalities( .dm, ..., .progress = NA, dm = deprecated(), progress = deprecated() )"},{"path":"https://dm.cynkra.com/reference/dm_examine_cardinalities.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Learn about your data model — dm_examine_cardinalities","text":".dm dm object. ... dots future extensions must empty. .progress Whether display progress bar, NA (default) hide non-interactive mode, show interactive mode. Requires 'progress' package. dm, progress","code":""},{"path":"https://dm.cynkra.com/reference/dm_examine_cardinalities.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Learn about your data model — dm_examine_cardinalities","text":"tibble following columns: child_table child table, child_fk_cols foreign key column(s) child table list character vectors, parent_table parent table, parent_key_cols key column(s) parent table list character vectors, cardinality nature cardinality along foreign key.","code":""},{"path":"https://dm.cynkra.com/reference/dm_examine_cardinalities.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Learn about your data model — dm_examine_cardinalities","text":"Uses examine_cardinality() foreign key defined dm.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_examine_cardinalities.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Learn about your data model — dm_examine_cardinalities","text":"","code":"dm_nycflights13() %>% dm_examine_cardinalities() #> • FK: flights$(`carrier`) -> airlines$(`carrier`): surjective mapping (child: 1 to n -> parent: 1) #> • FK: flights$(`origin`) -> airports$(`faa`): generic mapping (child: 0 to n -> parent: 1) #> • FK: flights$(`origin`, `time_hour`) -> weather$(`origin`, `time_hour`): generic mapping (child: 0 to n -> parent: 1) #> • FK: flights$(`tailnum`) -> planes$(`tailnum`): Column (`tailnum`) of table `flights` not a subset of column (`tailnum`) of table `planes`. #> ! Not all FK constraints satisfied, call `dm_examine_constraints()` for details."},{"path":"https://dm.cynkra.com/reference/dm_examine_constraints.html","id":null,"dir":"Reference","previous_headings":"","what":"Validate your data model — dm_examine_constraints","title":"Validate your data model — dm_examine_constraints","text":"function returns tibble information key constraints met (is_key = TRUE) violated (FALSE). printing object special, use as_tibble() print regular tibble.","code":""},{"path":"https://dm.cynkra.com/reference/dm_examine_constraints.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validate your data model — dm_examine_constraints","text":"","code":"dm_examine_constraints( .dm, ..., .progress = NA, dm = deprecated(), progress = deprecated() )"},{"path":"https://dm.cynkra.com/reference/dm_examine_constraints.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validate your data model — dm_examine_constraints","text":".dm dm object. ... dots future extensions must empty. .progress Whether display progress bar, NA (default) hide non-interactive mode, show interactive mode. Requires 'progress' package. dm, progress","code":""},{"path":"https://dm.cynkra.com/reference/dm_examine_constraints.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Validate your data model — dm_examine_constraints","text":"tibble following columns: table table dm, kind \"PK\" \"FK\", columns table columns define key, ref_table foreign keys, referenced table, is_key logical, problem is_key = FALSE, reason .","code":""},{"path":"https://dm.cynkra.com/reference/dm_examine_constraints.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validate your data model — dm_examine_constraints","text":"primary key constraints, tested values respective columns unique. foreign key constraints, tests check foreign key constraint, values foreign key column form subset values referenced column.","code":""},{"path":"https://dm.cynkra.com/reference/dm_examine_constraints.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validate your data model — dm_examine_constraints","text":"","code":"dm_nycflights13() %>% dm_examine_constraints() #> ! Unsatisfied constraints: #> • Table `flights`: foreign key `tailnum` into table `planes`: values of `flights$tailnum` not in `planes$tailnum`: N725MQ (6), N537MQ (5), N722MQ (5), N730MQ (5), N736MQ (5), …"},{"path":"https://dm.cynkra.com/reference/dm_filter.html","id":null,"dir":"Reference","previous_headings":"","what":"Filtering — dm_filter","title":"Filtering — dm_filter","text":"Filtering table dm object may affect tables connected directly indirectly via foreign key relations. dm_filter() can used define filter conditions tables using syntax similar dplyr::filter(). filters work across related tables: resulting dm object contains rows related (directly indirectly) rows remain applying filters tables.","code":""},{"path":"https://dm.cynkra.com/reference/dm_filter.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Filtering — dm_filter","text":"","code":"dm_filter(.dm, ...)"},{"path":"https://dm.cynkra.com/reference/dm_filter.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Filtering — dm_filter","text":".dm dm object. ... Named logical predicates. names correspond tables dm object. predicates defined terms variables corresponding table, passed dplyr::filter(). Multiple conditions combined &. rows condition evaluates TRUE kept.","code":""},{"path":"https://dm.cynkra.com/reference/dm_filter.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Filtering — dm_filter","text":"updated dm object filters executed across tables.","code":""},{"path":"https://dm.cynkra.com/reference/dm_filter.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Filtering — dm_filter","text":"dm 1.0.0, conditions longer stored dm object, instead applied tables call dm_filter(). Calling dm_apply_filters() dm_apply_filters_to_tbl() longer necessary. Use dm_zoom_to() dplyr::filter() filter rows without affecting related tables.","code":""},{"path":"https://dm.cynkra.com/reference/dm_filter.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Filtering — dm_filter","text":"","code":"dm_nyc <- dm_nycflights13() dm_nyc %>% dm_nrow() #> airlines airports flights planes weather #> 15 86 1761 945 144 dm_nyc_filtered <- dm_nycflights13() %>% dm_filter(airports = (name == \"John F Kennedy Intl\")) dm_nyc_filtered %>% dm_nrow() #> airlines airports flights planes weather #> 10 1 602 336 38 # If you want to keep only those rows in the parent tables # whose primary key values appear as foreign key values in # `flights`, you can set a `TRUE` filter in `flights`: dm_nyc %>% dm_filter(flights = (1 == 1)) %>% dm_nrow() #> airlines airports flights planes weather #> 15 3 1761 945 105 # note that in this example, the only affected table is # `airports` because the departure airports in `flights` are # only the three New York airports."},{"path":"https://dm.cynkra.com/reference/dm_financial.html","id":null,"dir":"Reference","previous_headings":"","what":"Creates a dm object for the Financial data — dm_financial","title":"Creates a dm object for the Financial data — dm_financial","text":"dm_financial() creates example dm object tables https://relational.fit.cvut.cz/dataset/Financial. connection established per session, subsequent calls return connection. dm_financial_sqlite() copies data temporary SQLite database. data downloaded per session, subsequent calls return database. trans table excluded due size.","code":""},{"path":"https://dm.cynkra.com/reference/dm_financial.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Creates a dm object for the Financial data — dm_financial","text":"","code":"dm_financial() dm_financial_sqlite()"},{"path":"https://dm.cynkra.com/reference/dm_financial.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Creates a dm object for the Financial data — dm_financial","text":"dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_financial.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Creates a dm object for the Financial data — dm_financial","text":"","code":"if (FALSE) { # dm:::dm_has_financial() && rlang::is_installed(\"DiagrammeR\") dm_financial() %>% dm_draw() }"},{"path":"https://dm.cynkra.com/reference/dm_flatten_to_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Flatten a part of a dm into a wide table — dm_flatten_to_tbl","title":"Flatten a part of a dm into a wide table — dm_flatten_to_tbl","text":"dm_flatten_to_tbl() gathers information interest one place wide table. performs disambiguation column names cascade joins.","code":""},{"path":"https://dm.cynkra.com/reference/dm_flatten_to_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Flatten a part of a dm into a wide table — dm_flatten_to_tbl","text":"","code":"dm_flatten_to_tbl(dm, .start, ..., .recursive = FALSE, .join = left_join)"},{"path":"https://dm.cynkra.com/reference/dm_flatten_to_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Flatten a part of a dm into a wide table — dm_flatten_to_tbl","text":"dm dm object. .start table outgoing foreign key relations considered establishing processing order joins. interesting choice example fact table star schema. ... Unquoted names tables included addition .start table. order tables determines order joins. argument empty, tables can reached included. tidyselect supported, see dplyr::select() details semantics. .recursive Logical, defaults FALSE. parent tables joined .start, also ancestors? .join type join performed, see dplyr::join().","code":""},{"path":"https://dm.cynkra.com/reference/dm_flatten_to_tbl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Flatten a part of a dm into a wide table — dm_flatten_to_tbl","text":"single table results consecutively joining affected tables .start table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_flatten_to_tbl.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Flatten a part of a dm into a wide table — dm_flatten_to_tbl","text":"... left empty, function join together tables dm object can reached .start table, direction foreign key relations (pointing child tables parent tables), using foreign key relations determine argument necessary joins. result one table unique column names. Use ... argument like control tables joined .start table. Mind calling dm_flatten_to_tbl() .join = right_join table order determined ... argument lead well-defined result two foreign tables joined .start. resulting table depend order tables listed dm. Therefore, trying result warning. Since .join = nest_join make sense direction (LHS = child table, RHS = parent table: valid key constraints nested column entry tibble one row), error thrown method chosen. difference .recursive = FALSE .recursive = TRUE following (see examples): .recursive = FALSE allows one level hierarchy (.e., direct neighbors table .start), .recursive = TRUE go levels hierarchy joining. Additionally, functions differ dm_wrap_tbl(), always returns dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_flatten_to_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Flatten a part of a dm into a wide table — dm_flatten_to_tbl","text":"","code":"if (FALSE) { # dm:::dm_has_financial() dm_financial() %>% dm_select_tbl(-loans) %>% dm_flatten_to_tbl(.start = cards) dm_financial() %>% dm_select_tbl(-loans) %>% dm_flatten_to_tbl(.start = cards, .recursive = TRUE) }"},{"path":"https://dm.cynkra.com/reference/dm_from_con.html","id":null,"dir":"Reference","previous_headings":"","what":"Load a dm from a remote data source — dm_from_con","title":"Load a dm from a remote data source — dm_from_con","text":"dm_from_con() creates dm tables src (database environment) accessible via DBI-Connection. Postgres SQL Server databases, primary foreign keys imported database.","code":""},{"path":"https://dm.cynkra.com/reference/dm_from_con.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Load a dm from a remote data source — dm_from_con","text":"","code":"dm_from_con( con = NULL, table_names = NULL, learn_keys = NULL, .names = NULL, ... )"},{"path":"https://dm.cynkra.com/reference/dm_from_con.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Load a dm from a remote data source — dm_from_con","text":"con DBI::DBIConnection Pool object. table_names character vector names tables include. learn_keys Set TRUE query definition primary foreign keys database. Currently works Postgres SQL Server databases. default attempts query issues informative message. .names glue specification describes name tables within output, currently MSSQL, Postgres MySQL/MariaDB. can use {.table} stand table name, {.schema} stand name schema table lives within. default (NULL) equivalent \"{.table}\" single schema specified schema, \"{.schema}.{.table}\" case multiple schemas given, may change future versions. ... Additional parameters schema learning query. schema: supported MSSQL (default: \"dbo\"), Postgres (default: \"public\"), MariaDB/MySQL (default: current database). Learn tables specific schema (database MariaDB/MySQL). dbname: supported MSSQL. Access different databases connected MSSQL-server; default: active database. table_type: supported Postgres (default: \"BASE TABLE\"). Specify table type. Options : \"BASE TABLE\" persistent table (normal table type) \"VIEW\" view \"FOREIGN TABLE\" foreign table \"LOCAL TEMPORARY\" temporary table","code":""},{"path":"https://dm.cynkra.com/reference/dm_from_con.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Load a dm from a remote data source — dm_from_con","text":"dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_from_con.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Load a dm from a remote data source — dm_from_con","text":"","code":"if (FALSE) { # dm:::dm_has_financial() con <- dm_get_con(dm_financial()) # Avoid DBI::dbDisconnect() here, because we don't own the connection }"},{"path":"https://dm.cynkra.com/reference/dm_from_src.html","id":null,"dir":"Reference","previous_headings":"","what":"Load a dm from a remote data source — dm_from_src","title":"Load a dm from a remote data source — dm_from_src","text":"Deprecated dm 0.3.0 favor dm_from_con().","code":""},{"path":"https://dm.cynkra.com/reference/dm_from_src.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Load a dm from a remote data source — dm_from_src","text":"","code":"dm_from_src(src = NULL, table_names = NULL, learn_keys = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/dm_from_src.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Load a dm from a remote data source — dm_from_src","text":"src dbplyr source, DBI connection object Pool object. table_names character vector names tables include. learn_keys Set TRUE query definition primary foreign keys database. Currently works Postgres SQL Server databases. default attempts query issues informative message. ... Additional parameters schema learning query. schema: supported MSSQL (default: \"dbo\"), Postgres (default: \"public\"), MariaDB/MySQL (default: current database). Learn tables specific schema (database MariaDB/MySQL). dbname: supported MSSQL. Access different databases connected MSSQL-server; default: active database. table_type: supported Postgres (default: \"BASE TABLE\"). Specify table type. Options : \"BASE TABLE\" persistent table (normal table type) \"VIEW\" view \"FOREIGN TABLE\" foreign table \"LOCAL TEMPORARY\" temporary table","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_fks.html","id":null,"dir":"Reference","previous_headings":"","what":"Get foreign key constraints — dm_get_all_fks","title":"Get foreign key constraints — dm_get_all_fks","text":"Get summary foreign key relations dm.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_fks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get foreign key constraints — dm_get_all_fks","text":"","code":"dm_get_all_fks(dm, parent_table = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/dm_get_all_fks.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get foreign key constraints — dm_get_all_fks","text":"dm dm object. parent_table One table names, unquoted, return foreign key information . given, foreign keys returned order. default NULL returns information tables. ... dots future extensions must empty.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_fks.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get foreign key constraints — dm_get_all_fks","text":"tibble following columns: child_table child table, child_fk_cols foreign key column(s) child table list character vectors, parent_table parent table, parent_key_cols key column(s) parent table list character vectors. on_delete behavior deletion rows parent table.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_get_all_fks.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get foreign key constraints — dm_get_all_fks","text":"","code":"dm_nycflights13() %>% dm_get_all_fks() #> # A tibble: 4 × 5 #> child_table child_fk_cols parent_table parent_key_cols on_delete #> #> 1 flights carrier airlines carrier no_action #> 2 flights origin airports faa no_action #> 3 flights tailnum planes tailnum no_action #> 4 flights origin, time_hour weather origin, time_hour no_action"},{"path":"https://dm.cynkra.com/reference/dm_get_all_pks.html","id":null,"dir":"Reference","previous_headings":"","what":"Get all primary keys of a dm object — dm_get_all_pks","title":"Get all primary keys of a dm object — dm_get_all_pks","text":"dm_get_all_pks() checks dm object primary keys returns tables respective primary key columns.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_pks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get all primary keys of a dm object — dm_get_all_pks","text":"","code":"dm_get_all_pks(dm, table = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/dm_get_all_pks.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get all primary keys of a dm object — dm_get_all_pks","text":"dm dm object. table One table names, unquoted, return primary key information . given, primary keys returned order. default NULL returns information tables. ... dots future extensions must empty.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_pks.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get all primary keys of a dm object — dm_get_all_pks","text":"tibble following columns: table table name, pk_col column name(s) primary key, list character vectors.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_get_all_pks.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get all primary keys of a dm object — dm_get_all_pks","text":"","code":"dm_nycflights13() %>% dm_get_all_pks() #> # A tibble: 4 × 3 #> table pk_col autoincrement #> #> 1 airlines carrier FALSE #> 2 airports faa FALSE #> 3 planes tailnum FALSE #> 4 weather origin, time_hour FALSE"},{"path":"https://dm.cynkra.com/reference/dm_get_all_uks.html","id":null,"dir":"Reference","previous_headings":"","what":"Get all unique keys of a dm object — dm_get_all_uks","title":"Get all unique keys of a dm object — dm_get_all_uks","text":"dm_get_all_uks() checks dm object unique keys (primary keys, explicit implicit unique keys) returns tables respective unique key columns.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_uks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get all unique keys of a dm object — dm_get_all_uks","text":"","code":"dm_get_all_uks(dm, table = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/dm_get_all_uks.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get all unique keys of a dm object — dm_get_all_uks","text":"dm dm object. table One table names, unquoted, return unique key information . default NULL returns information tables. ... dots future extensions must empty.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_uks.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get all unique keys of a dm object — dm_get_all_uks","text":"tibble following columns: table table name, uk_col column name(s) primary key, list character vectors, kind kind unique key, see details.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_uks.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get all unique keys of a dm object — dm_get_all_uks","text":"3 kinds unique keys: PK: Primary key, set dm_add_pk() explicit UK: Unique key, set dm_add_uk() implicit UK: Unique key, explicitly set, referenced foreign key.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_get_all_uks.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get all unique keys of a dm object — dm_get_all_uks","text":"","code":"dm_nycflights13() %>% dm_get_all_uks() #> # A tibble: 4 × 3 #> table uk_col kind #> #> 1 airlines carrier PK #> 2 airports faa PK #> 3 planes tailnum PK #> 4 weather origin, time_hour PK"},{"path":"https://dm.cynkra.com/reference/dm_get_con.html","id":null,"dir":"Reference","previous_headings":"","what":"Get connection — dm_get_con","title":"Get connection — dm_get_con","text":"dm_get_con() returns DBI connection dm object. works tables stored database, otherwise error thrown.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_con.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get connection — dm_get_con","text":"","code":"dm_get_con(dm)"},{"path":"https://dm.cynkra.com/reference/dm_get_con.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get connection — dm_get_con","text":"dm dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_con.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get connection — dm_get_con","text":"DBI::DBIConnection object dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_con.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get connection — dm_get_con","text":"lazy tables dm object must stored database server accessed connection, large part package's functionality relies efficient joins.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_con.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get connection — dm_get_con","text":"","code":"if (FALSE) { # dm:::dm_has_financial() dm_financial() %>% dm_get_con() }"},{"path":"https://dm.cynkra.com/reference/dm_get_pk.html","id":null,"dir":"Reference","previous_headings":"","what":"Primary key column names — dm_get_pk","title":"Primary key column names — dm_get_pk","text":"function deprecated limited use unintuitive return value. Use dm_get_all_pks() instead.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_pk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Primary key column names — dm_get_pk","text":"","code":"dm_get_pk(dm, table, ...)"},{"path":"https://dm.cynkra.com/reference/dm_get_tables.html","id":null,"dir":"Reference","previous_headings":"","what":"Get tables — dm_get_tables","title":"Get tables — dm_get_tables","text":"dm_get_tables() returns named list dplyr tbl objects dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_tables.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get tables — dm_get_tables","text":"","code":"dm_get_tables(x, ..., keyed = FALSE)"},{"path":"https://dm.cynkra.com/reference/dm_get_tables.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get tables — dm_get_tables","text":"x dm object. ... dots future extensions must empty. keyed Set TRUE return objects internal class \"dm_keyed_tbl\" contain information primary foreign keys individual table objects. allows using dplyr workflows tables later reconstruct dm object. See dm_deconstruct() function generates corresponding code existing dm object, vignette(\"tech-dm-keyed\") details.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_tables.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get tables — dm_get_tables","text":"named list tables (data frames lazy tables) constituting dm.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_get_tables.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get tables — dm_get_tables","text":"","code":"dm_nycflights13() %>% dm_get_tables() #> $airlines #> # A tibble: 15 × 2 #> carrier name #> #> 1 9E Endeavor Air Inc. #> 2 AA American Airlines Inc. #> 3 AS Alaska Airlines Inc. #> 4 B6 JetBlue Airways #> 5 DL Delta Air Lines Inc. #> 6 EV ExpressJet Airlines Inc. #> 7 F9 Frontier Airlines Inc. #> 8 FL AirTran Airways Corporation #> 9 HA Hawaiian Airlines Inc. #> 10 MQ Envoy Air #> 11 UA United Air Lines Inc. #> 12 US US Airways Inc. #> 13 VX Virgin America #> 14 WN Southwest Airlines Co. #> 15 YV Mesa Airlines Inc. #> #> $airports #> # A tibble: 86 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta Intl 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Logan Intl 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows #> #> $flights #> # A tibble: 1,761 × 19 #> year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time #> #> 1 2013 1 10 3 2359 4 426 437 #> 2 2013 1 10 16 2359 17 447 444 #> 3 2013 1 10 450 500 -10 634 648 #> 4 2013 1 10 520 525 -5 813 820 #> 5 2013 1 10 530 530 0 824 829 #> 6 2013 1 10 531 540 -9 832 850 #> 7 2013 1 10 535 540 -5 1015 1017 #> 8 2013 1 10 546 600 -14 645 709 #> 9 2013 1 10 549 600 -11 652 724 #> 10 2013 1 10 550 600 -10 649 703 #> # ℹ 1,751 more rows #> # ℹ 11 more variables: arr_delay , carrier , flight , #> # tailnum , origin , dest , air_time , distance , #> # hour , minute , time_hour #> #> $planes #> # A tibble: 945 × 9 #> tailnum year type manufacturer model engines seats speed engine #> #> 1 N10156 2004 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 2 N104UW 1999 Fixed wing multi… AIRBUS INDU… A320… 2 182 NA Turbo… #> 3 N10575 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 4 N105UW 1999 Fixed wing multi… AIRBUS INDU… A320… 2 182 NA Turbo… #> 5 N110UW 1999 Fixed wing multi… AIRBUS INDU… A320… 2 182 NA Turbo… #> 6 N11106 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 7 N11107 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 8 N11109 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 9 N11121 2003 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 10 N11137 2003 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> # ℹ 935 more rows #> #> $weather #> # A tibble: 144 × 15 #> origin year month day hour temp dewp humid wind_dir wind_speed #> #> 1 EWR 2013 1 10 0 41 32 70.1 230 8.06 #> 2 EWR 2013 1 10 1 39.0 30.0 69.9 210 9.21 #> 3 EWR 2013 1 10 2 39.0 28.9 66.8 230 6.90 #> 4 EWR 2013 1 10 3 39.9 27.0 59.5 270 5.75 #> 5 EWR 2013 1 10 4 41 26.1 55.0 320 6.90 #> 6 EWR 2013 1 10 5 41 26.1 55.0 300 12.7 #> 7 EWR 2013 1 10 6 39.9 25.0 54.8 280 6.90 #> 8 EWR 2013 1 10 7 41 25.0 52.6 330 6.90 #> 9 EWR 2013 1 10 8 43.0 25.0 48.7 330 8.06 #> 10 EWR 2013 1 10 9 45.0 23 41.6 320 17.3 #> # ℹ 134 more rows #> # ℹ 5 more variables: wind_gust , precip , pressure , #> # visib , time_hour #> dm_nycflights13() %>% dm_get_tables(keyed = TRUE) #> $airlines #> # A tibble: 15 × 2 #> # Keys: `carrier` | 1 | 0 #> carrier name #> #> 1 9E Endeavor Air Inc. #> 2 AA American Airlines Inc. #> 3 AS Alaska Airlines Inc. #> 4 B6 JetBlue Airways #> 5 DL Delta Air Lines Inc. #> 6 EV ExpressJet Airlines Inc. #> 7 F9 Frontier Airlines Inc. #> 8 FL AirTran Airways Corporation #> 9 HA Hawaiian Airlines Inc. #> 10 MQ Envoy Air #> 11 UA United Air Lines Inc. #> 12 US US Airways Inc. #> 13 VX Virgin America #> 14 WN Southwest Airlines Co. #> 15 YV Mesa Airlines Inc. #> #> $airports #> # A tibble: 86 × 8 #> # Keys: `faa` | 1 | 0 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta Intl 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Logan Intl 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows #> #> $flights #> # A tibble: 1,761 × 19 #> # Keys: — | 0 | 4 #> year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time #> #> 1 2013 1 10 3 2359 4 426 437 #> 2 2013 1 10 16 2359 17 447 444 #> 3 2013 1 10 450 500 -10 634 648 #> 4 2013 1 10 520 525 -5 813 820 #> 5 2013 1 10 530 530 0 824 829 #> 6 2013 1 10 531 540 -9 832 850 #> 7 2013 1 10 535 540 -5 1015 1017 #> 8 2013 1 10 546 600 -14 645 709 #> 9 2013 1 10 549 600 -11 652 724 #> 10 2013 1 10 550 600 -10 649 703 #> # ℹ 1,751 more rows #> # ℹ 11 more variables: arr_delay , carrier , flight , #> # tailnum , origin , dest , air_time , distance , #> # hour , minute , time_hour #> #> $planes #> # A tibble: 945 × 9 #> # Keys: `tailnum` | 1 | 0 #> tailnum year type manufacturer model engines seats speed engine #> #> 1 N10156 2004 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 2 N104UW 1999 Fixed wing multi… AIRBUS INDU… A320… 2 182 NA Turbo… #> 3 N10575 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 4 N105UW 1999 Fixed wing multi… AIRBUS INDU… A320… 2 182 NA Turbo… #> 5 N110UW 1999 Fixed wing multi… AIRBUS INDU… A320… 2 182 NA Turbo… #> 6 N11106 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 7 N11107 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 8 N11109 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 9 N11121 2003 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 10 N11137 2003 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> # ℹ 935 more rows #> #> $weather #> # A tibble: 144 × 15 #> # Keys: `origin`, `time_hour` | 1 | 0 #> origin year month day hour temp dewp humid wind_dir wind_speed #> #> 1 EWR 2013 1 10 0 41 32 70.1 230 8.06 #> 2 EWR 2013 1 10 1 39.0 30.0 69.9 210 9.21 #> 3 EWR 2013 1 10 2 39.0 28.9 66.8 230 6.90 #> 4 EWR 2013 1 10 3 39.9 27.0 59.5 270 5.75 #> 5 EWR 2013 1 10 4 41 26.1 55.0 320 6.90 #> 6 EWR 2013 1 10 5 41 26.1 55.0 300 12.7 #> 7 EWR 2013 1 10 6 39.9 25.0 54.8 280 6.90 #> 8 EWR 2013 1 10 7 41 25.0 52.6 330 6.90 #> 9 EWR 2013 1 10 8 43.0 25.0 48.7 330 8.06 #> 10 EWR 2013 1 10 9 45.0 23 41.6 320 17.3 #> # ℹ 134 more rows #> # ℹ 5 more variables: wind_gust , precip , pressure , #> # visib , time_hour #> dm_nycflights13() %>% dm_get_tables(keyed = TRUE) %>% new_dm() #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/dm_gui.html","id":null,"dir":"Reference","previous_headings":"","what":"Shiny app for defining dm objects — dm_gui","title":"Shiny app for defining dm objects — dm_gui","text":"function starts Shiny application allows define dm objects database local data frames. application generates R code can inserted copy-pasted R script function.","code":""},{"path":"https://dm.cynkra.com/reference/dm_gui.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Shiny app for defining dm objects — dm_gui","text":"","code":"dm_gui(..., dm = NULL, select_tables = TRUE, debug = FALSE)"},{"path":"https://dm.cynkra.com/reference/dm_gui.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Shiny app for defining dm objects — dm_gui","text":"... dots future extensions must empty. dm initial dm object, currently required. select_tables Show selectize input select tables? debug Set TRUE simplify debugging app.","code":""},{"path":"https://dm.cynkra.com/reference/dm_gui.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Shiny app for defining dm objects — dm_gui","text":"future release, app also allow composing dm objects directly database connections data frames. signature function subject change without notice. pose many problems, usually run interactively.","code":""},{"path":"https://dm.cynkra.com/reference/dm_gui.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Shiny app for defining dm objects — dm_gui","text":"","code":"if (FALSE) { dm <- dm_nycflights13(cycle = TRUE) dm_gui(dm = dm) }"},{"path":"https://dm.cynkra.com/reference/dm_has_fk.html","id":null,"dir":"Reference","previous_headings":"","what":"Check if foreign keys exists — dm_has_fk","title":"Check if foreign keys exists — dm_has_fk","text":"functions deprecated limited use since introduction foreign keys arbitrary columns dm 0.2.1. Use dm_get_all_fks() table manipulation functions instead.","code":""},{"path":"https://dm.cynkra.com/reference/dm_has_fk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check if foreign keys exists — dm_has_fk","text":"","code":"dm_has_fk(dm, table, ref_table, ...) dm_get_fk(dm, table, ref_table, ...)"},{"path":"https://dm.cynkra.com/reference/dm_has_fk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check if foreign keys exists — dm_has_fk","text":"dm dm object. table table dm. ref_table table table referencing. ... dots future extensions must empty.","code":""},{"path":"https://dm.cynkra.com/reference/dm_has_pk.html","id":null,"dir":"Reference","previous_headings":"","what":"Check for primary key — dm_has_pk","title":"Check for primary key — dm_has_pk","text":"dm_has_pk() checks given table columns marked primary key.","code":""},{"path":"https://dm.cynkra.com/reference/dm_has_pk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check for primary key — dm_has_pk","text":"","code":"dm_has_pk(dm, table, ...)"},{"path":"https://dm.cynkra.com/reference/dm_has_pk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check for primary key — dm_has_pk","text":"dm dm object. table table dm. ... dots future extensions must empty.","code":""},{"path":"https://dm.cynkra.com/reference/dm_has_pk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check for primary key — dm_has_pk","text":"logical value: TRUE given table primary key, FALSE otherwise.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_has_pk.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check for primary key — dm_has_pk","text":"","code":"dm_nycflights13() %>% dm_has_pk(flights) #> [1] FALSE dm_nycflights13() %>% dm_has_pk(planes) #> [1] TRUE"},{"path":"https://dm.cynkra.com/reference/dm_mutate_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Update tables in a dm — dm_mutate_tbl","title":"Update tables in a dm — dm_mutate_tbl","text":"Updates one existing tables dm. now, column names must identical. restriction may levied optionally future.","code":""},{"path":"https://dm.cynkra.com/reference/dm_mutate_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Update tables in a dm — dm_mutate_tbl","text":"","code":"dm_mutate_tbl(dm, ...)"},{"path":"https://dm.cynkra.com/reference/dm_mutate_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Update tables in a dm — dm_mutate_tbl","text":"dm dm object. ... One tables update dm. Must named.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_mutate_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Update tables in a dm — dm_mutate_tbl","text":"","code":"dm_nycflights13() %>% dm_mutate_tbl(flights = nycflights13::flights[1:3, ]) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/dm_nest_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Nest a table inside its dm — dm_nest_tbl","title":"Nest a table inside its dm — dm_nest_tbl","text":"dm_nest_tbl() converts child table nested column parent table. child table children (.e. needs terminal child table).","code":""},{"path":"https://dm.cynkra.com/reference/dm_nest_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Nest a table inside its dm — dm_nest_tbl","text":"","code":"dm_nest_tbl(dm, child_table, into = NULL)"},{"path":"https://dm.cynkra.com/reference/dm_nest_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Nest a table inside its dm — dm_nest_tbl","text":"dm dm. child_table terminal table one parent table. table nest child_tables , optional can guessed foreign keys unambiguously useful explicit.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_nest_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Nest a table inside its dm — dm_nest_tbl","text":"","code":"nested_dm <- dm_nycflights13() %>% dm_select_tbl(airlines, flights) %>% dm_nest_tbl(flights) nested_dm #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines` #> Columns: 3 #> Primary keys: 1 #> Foreign keys: 0 nested_dm$airlines #> # A tibble: 15 × 3 #> carrier name flights #> #> 1 9E Endeavor Air Inc. #> 2 AA American Airlines Inc. #> 3 AS Alaska Airlines Inc. #> 4 B6 JetBlue Airways #> 5 DL Delta Air Lines Inc. #> 6 EV ExpressJet Airlines Inc. #> 7 F9 Frontier Airlines Inc. #> 8 FL AirTran Airways Corporation #> 9 HA Hawaiian Airlines Inc. #> 10 MQ Envoy Air #> 11 UA United Air Lines Inc. #> 12 US US Airways Inc. #> 13 VX Virgin America #> 14 WN Southwest Airlines Co. #> 15 YV Mesa Airlines Inc. "},{"path":"https://dm.cynkra.com/reference/dm_nrow.html","id":null,"dir":"Reference","previous_headings":"","what":"Number of rows — dm_nrow","title":"Number of rows — dm_nrow","text":"Returns named vector number rows table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_nrow.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Number of rows — dm_nrow","text":"","code":"dm_nrow(dm)"},{"path":"https://dm.cynkra.com/reference/dm_nrow.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Number of rows — dm_nrow","text":"dm dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_nrow.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Number of rows — dm_nrow","text":"named vector number rows table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_nrow.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Number of rows — dm_nrow","text":"","code":"dm_nycflights13() %>% dm_filter(airports = (faa %in% c(\"EWR\", \"LGA\"))) %>% dm_nrow() #> airlines airports flights planes weather #> 13 2 1159 658 67"},{"path":"https://dm.cynkra.com/reference/dm_nycflights13.html","id":null,"dir":"Reference","previous_headings":"","what":"Creates a dm object for the nycflights13 data — dm_nycflights13","title":"Creates a dm object for the nycflights13 data — dm_nycflights13","text":"Creates example dm object tables nycflights13, along references. See nycflights13::flights description data. described nycflights13::planes, relationship flights table planes tables \"weak\", satisfy data integrity constraints.","code":""},{"path":"https://dm.cynkra.com/reference/dm_nycflights13.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Creates a dm object for the nycflights13 data — dm_nycflights13","text":"","code":"dm_nycflights13( ..., cycle = FALSE, color = TRUE, subset = TRUE, compound = TRUE, table_description = FALSE )"},{"path":"https://dm.cynkra.com/reference/dm_nycflights13.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Creates a dm object for the nycflights13 data — dm_nycflights13","text":"... dots future extensions must empty. cycle Boolean. FALSE (default), one foreign key relation (flights$origin airports$faa) flights table airports table established. TRUE, dm object double reference tables produced. color Boolean, TRUE (default), resulting dm object colors assigned different tables visualization dm_draw(). subset Boolean, TRUE (default), flights table reduced flights column day equal 10. compound Boolean, FALSE, link established tables flights weather, requires compound keys. table_description Boolean, TRUE, description added table displayed drawing table dm_draw().","code":""},{"path":"https://dm.cynkra.com/reference/dm_nycflights13.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Creates a dm object for the nycflights13 data — dm_nycflights13","text":"dm object consisting nycflights13 tables, complete primary foreign keys optionally colored.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_nycflights13.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Creates a dm object for the nycflights13 data — dm_nycflights13","text":"","code":"dm_nycflights13() %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour"},{"path":"https://dm.cynkra.com/reference/dm_pack_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"dm_pack_tbl() — dm_pack_tbl","title":"dm_pack_tbl() — dm_pack_tbl","text":"dm_pack_tbl() converts parent table packed column child table. parent table parent tables (.e. needs terminal parent table).","code":""},{"path":"https://dm.cynkra.com/reference/dm_pack_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"dm_pack_tbl() — dm_pack_tbl","text":"","code":"dm_pack_tbl(dm, parent_table, into = NULL)"},{"path":"https://dm.cynkra.com/reference/dm_pack_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"dm_pack_tbl() — dm_pack_tbl","text":"dm dm. parent_table terminal table one child table. table pack parent_tables , optional can guessed foreign keys unambiguously useful explicit.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_pack_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"dm_pack_tbl() — dm_pack_tbl","text":"","code":"dm_packed <- dm_nycflights13() %>% dm_pack_tbl(planes) dm_packed #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `weather` #> Columns: 45 #> Primary keys: 3 #> Foreign keys: 3 dm_packed$flights #> # A tibble: 1,761 × 20 #> year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time #> #> 1 2013 1 10 3 2359 4 426 437 #> 2 2013 1 10 16 2359 17 447 444 #> 3 2013 1 10 450 500 -10 634 648 #> 4 2013 1 10 520 525 -5 813 820 #> 5 2013 1 10 530 530 0 824 829 #> 6 2013 1 10 531 540 -9 832 850 #> 7 2013 1 10 535 540 -5 1015 1017 #> 8 2013 1 10 546 600 -14 645 709 #> 9 2013 1 10 549 600 -11 652 724 #> 10 2013 1 10 550 600 -10 649 703 #> # ℹ 1,751 more rows #> # ℹ 12 more variables: arr_delay , carrier , flight , #> # tailnum , origin , dest , air_time , distance , #> # hour , minute , time_hour , planes dm_packed$flights$planes #> # A tibble: 1,761 × 8 #> year type manufacturer model engines seats speed engine #> #> 1 2003 Fixed wing multi engine AIRBUS A320… 2 200 NA Turbo… #> 2 2003 Fixed wing multi engine AIRBUS A320… 2 200 NA Turbo… #> 3 2001 Fixed wing multi engine AIRBUS INDUST… A321… 2 199 NA Turbo… #> 4 2000 Fixed wing multi engine BOEING 737-… 2 149 NA Turbo… #> 5 1998 Fixed wing multi engine AIRBUS INDUST… A319… 2 179 NA Turbo… #> 6 NA NA NA NA NA NA NA NA #> 7 2011 Fixed wing multi engine AIRBUS A320… 2 200 NA Turbo… #> 8 2011 Fixed wing multi engine EMBRAER ERJ … 2 20 NA Turbo… #> 9 2002 Fixed wing multi engine EMBRAER EMB-… 2 55 NA Turbo… #> 10 2000 Fixed wing multi engine AIRBUS INDUST… A319… 2 179 NA Turbo… #> # ℹ 1,751 more rows"},{"path":"https://dm.cynkra.com/reference/dm_paste.html","id":null,"dir":"Reference","previous_headings":"","what":"Create R code for a dm object — dm_paste","title":"Create R code for a dm object — dm_paste","text":"dm_paste() takes existing dm emits code necessary creation.","code":""},{"path":"https://dm.cynkra.com/reference/dm_paste.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create R code for a dm object — dm_paste","text":"","code":"dm_paste(dm, select = NULL, ..., tab_width = 2, options = NULL, path = NULL)"},{"path":"https://dm.cynkra.com/reference/dm_paste.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create R code for a dm object — dm_paste","text":"dm dm object. select Deprecated, see \"select\" options argument. ... Must empty. tab_width Indentation width code second line onwards options Formatting options. character vector containing : \"tables\": tibble() calls empty table definitions derived dm_ptype(), overrides \"select\". \"select\": dm_select() statements columns part dm. \"keys\": dm_add_pk(), dm_add_fk() dm_add_uk() statements adding keys. \"color\": dm_set_colors() statements set color. \"\": options except \"select\" Default NULL equivalent c(\"keys\", \"color\") path Output file, NULL code printed console.","code":""},{"path":"https://dm.cynkra.com/reference/dm_paste.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create R code for a dm object — dm_paste","text":"Code producing prototype given dm.","code":""},{"path":"https://dm.cynkra.com/reference/dm_paste.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Create R code for a dm object — dm_paste","text":"code emitted function reproduces structure dm object. options argument controls level detail: keys, colors, table definitions. Data tables never included, see dm_ptype() underlying logic.","code":""},{"path":"https://dm.cynkra.com/reference/dm_paste.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create R code for a dm object — dm_paste","text":"","code":"dm() %>% dm_paste() #> dm::dm( #> ) dm_nycflights13() %>% dm_paste() #> dm::dm( #> airlines, #> airports, #> flights, #> planes, #> weather, #> ) %>% #> dm::dm_add_pk(airlines, carrier) %>% #> dm::dm_add_pk(airports, faa) %>% #> dm::dm_add_pk(planes, tailnum) %>% #> dm::dm_add_pk(weather, c(origin, time_hour)) %>% #> dm::dm_add_fk(flights, carrier, airlines) %>% #> dm::dm_add_fk(flights, origin, airports) %>% #> dm::dm_add_fk(flights, tailnum, planes) %>% #> dm::dm_add_fk(flights, c(origin, time_hour), weather) %>% #> dm::dm_set_colors(`#ED7D31FF` = airlines) %>% #> dm::dm_set_colors(`#ED7D31FF` = airports) %>% #> dm::dm_set_colors(`#5B9BD5FF` = flights) %>% #> dm::dm_set_colors(`#ED7D31FF` = planes) %>% #> dm::dm_set_colors(`#70AD47FF` = weather) dm_nycflights13() %>% dm_paste(options = \"select\") #> dm::dm( #> airlines, #> airports, #> flights, #> planes, #> weather, #> ) %>% #> dm::dm_select(airlines, carrier, name) %>% #> dm::dm_select(airports, faa, name, lat, lon, alt, tz, dst, tzone) %>% #> dm::dm_select(flights, year, month, day, dep_time, sched_dep_time, dep_delay, arr_time, sched_arr_time, arr_delay, carrier, flight, tailnum, origin, dest, air_time, distance, hour, minute, time_hour) %>% #> dm::dm_select(planes, tailnum, year, type, manufacturer, model, engines, seats, speed, engine) %>% #> dm::dm_select(weather, origin, year, month, day, hour, temp, dewp, humid, wind_dir, wind_speed, wind_gust, precip, pressure, visib, time_hour)"},{"path":"https://dm.cynkra.com/reference/dm_pixarfilms.html","id":null,"dir":"Reference","previous_headings":"","what":"Creates a dm object for the pixarfilms data — dm_pixarfilms","title":"Creates a dm object for the pixarfilms data — dm_pixarfilms","text":"Creates example dm object tables pixarfilms, along references.","code":""},{"path":"https://dm.cynkra.com/reference/dm_pixarfilms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Creates a dm object for the pixarfilms data — dm_pixarfilms","text":"","code":"dm_pixarfilms(..., color = TRUE, consistent = FALSE)"},{"path":"https://dm.cynkra.com/reference/dm_pixarfilms.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Creates a dm object for the pixarfilms data — dm_pixarfilms","text":"... dots future extensions must empty. color Boolean, TRUE (default), resulting dm object colors assigned different tables visualization dm_draw(). consistent Boolean, original dm film column pixar_films contains missing values made proper primary key. Set TRUE remove records.","code":""},{"path":"https://dm.cynkra.com/reference/dm_pixarfilms.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Creates a dm object for the pixarfilms data — dm_pixarfilms","text":"dm object consisting pixarfilms tables, complete primary foreign keys optionally colored.","code":""},{"path":"https://dm.cynkra.com/reference/dm_pixarfilms.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Creates a dm object for the pixarfilms data — dm_pixarfilms","text":"","code":"dm_pixarfilms() #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `pixar_films`, `pixar_people`, `academy`, `box_office`, `genres`, `public_response` #> Columns: 23 #> Primary keys: 5 #> Foreign keys: 5 dm_pixarfilms() %>% dm_draw() %0 academyacademyfilmfilm, award_typepixar_filmspixar_filmsfilmacademy:film->pixar_films:filmbox_officebox_officefilmbox_office:film->pixar_films:filmgenresgenresfilmfilm, genregenres:film->pixar_films:filmpixar_peoplepixar_peoplefilmpixar_people:film->pixar_films:filmpublic_responsepublic_responsefilmpublic_response:film->pixar_films:film"},{"path":"https://dm.cynkra.com/reference/dm_ptype.html","id":null,"dir":"Reference","previous_headings":"","what":"Prototype for a dm object — dm_ptype","title":"Prototype for a dm object — dm_ptype","text":"prototype contains tables, primary foreign keys, data. tables truncated converted zero-row tibbles, also remote data models. Columns retain type. useful performing creation population database separate steps.","code":""},{"path":"https://dm.cynkra.com/reference/dm_ptype.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Prototype for a dm object — dm_ptype","text":"","code":"dm_ptype(dm)"},{"path":"https://dm.cynkra.com/reference/dm_ptype.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Prototype for a dm object — dm_ptype","text":"dm dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_ptype.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Prototype for a dm object — dm_ptype","text":"","code":"if (FALSE) { # dm:::dm_has_financial() dm_financial() %>% dm_ptype() dm_financial() %>% dm_ptype() %>% dm_nrow() }"},{"path":"https://dm.cynkra.com/reference/dm_rename.html","id":null,"dir":"Reference","previous_headings":"","what":"Rename columns — dm_rename","title":"Rename columns — dm_rename","text":"Rename columns dm using syntax similar dplyr::rename().","code":""},{"path":"https://dm.cynkra.com/reference/dm_rename.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Rename columns — dm_rename","text":"","code":"dm_rename(dm, table, ...)"},{"path":"https://dm.cynkra.com/reference/dm_rename.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Rename columns — dm_rename","text":"dm dm object. table table dm. ... One unquoted expressions separated commas. can treat variable names positions, use expressions like x:y select ranges variables. Use named arguments, e.g. new_name = old_name, rename selected variables. arguments ... automatically quoted evaluated context column names represent column positions. also support unquoting splicing. See vignette(\"programming\", package = \"dplyr\") introduction concepts. See select helpers details, examples tidyselect helpers, starts_with(), everything(), ...","code":""},{"path":"https://dm.cynkra.com/reference/dm_rename.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Rename columns — dm_rename","text":"updated dm columns table renamed.","code":""},{"path":"https://dm.cynkra.com/reference/dm_rename.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Rename columns — dm_rename","text":"key columns renamed, meta-information dm updated accordingly.","code":""},{"path":"https://dm.cynkra.com/reference/dm_rename.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Rename columns — dm_rename","text":"","code":"dm_nycflights13() %>% dm_rename(airports, code = faa, altitude = alt) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/dm_rm_fk.html","id":null,"dir":"Reference","previous_headings":"","what":"Remove foreign keys — dm_rm_fk","title":"Remove foreign keys — dm_rm_fk","text":"dm_rm_fk() can remove either one reference two tables, multiple references (message). error thrown matching foreign key found.","code":""},{"path":"https://dm.cynkra.com/reference/dm_rm_fk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Remove foreign keys — dm_rm_fk","text":"","code":"dm_rm_fk( dm, table = NULL, columns = NULL, ref_table = NULL, ref_columns = NULL, ... )"},{"path":"https://dm.cynkra.com/reference/dm_rm_fk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Remove foreign keys — dm_rm_fk","text":"dm dm object. table table dm. Pass NULL remove matching keys. columns Table columns, unquoted. refer compound key, use c(col1, col2). Pass NULL (default) remove matching keys. ref_table table referenced table argument. Pass NULL remove matching keys. ref_columns columns table longer referencing primary key ref_table. refer compound key, use c(col1, col2). ... dots future extensions must empty.","code":""},{"path":"https://dm.cynkra.com/reference/dm_rm_fk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Remove foreign keys — dm_rm_fk","text":"updated dm without matching foreign key relation(s).","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_rm_fk.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Remove foreign keys — dm_rm_fk","text":"","code":"dm_nycflights13(cycle = TRUE) %>% dm_rm_fk(flights, dest, airports) %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour"},{"path":"https://dm.cynkra.com/reference/dm_rm_pk.html","id":null,"dir":"Reference","previous_headings":"","what":"Remove a primary key — dm_rm_pk","title":"Remove a primary key — dm_rm_pk","text":"table name provided, dm_rm_pk() removes primary key table leaves dm object otherwise unaltered. table given, dm stripped primary keys . error thrown primary key matches selection criteria. selection criteria ambiguous, message unambiguous replacement code shown. Foreign keys never removed.","code":""},{"path":"https://dm.cynkra.com/reference/dm_rm_pk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Remove a primary key — dm_rm_pk","text":"","code":"dm_rm_pk(dm, table = NULL, columns = NULL, ..., fail_fk = NULL)"},{"path":"https://dm.cynkra.com/reference/dm_rm_pk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Remove a primary key — dm_rm_pk","text":"dm dm object. table table dm. Pass NULL remove matching keys. columns Table columns, unquoted. refer compound key, use c(col1, col2). Pass NULL (default) remove matching keys. ... dots future extensions must empty. fail_fk","code":""},{"path":"https://dm.cynkra.com/reference/dm_rm_pk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Remove a primary key — dm_rm_pk","text":"updated dm without indicated primary key(s).","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_rm_pk.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Remove a primary key — dm_rm_pk","text":"","code":"dm_nycflights13() %>% dm_rm_pk(airports) %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour"},{"path":"https://dm.cynkra.com/reference/dm_rm_uk.html","id":null,"dir":"Reference","previous_headings":"","what":"Remove a unique key — dm_rm_uk","title":"Remove a unique key — dm_rm_uk","text":"dm_rm_uk() removes one unique keys table leaves dm object otherwise unaltered. error thrown unique key matches selection criteria. selection criteria ambiguous, message unambiguous replacement code shown. Foreign keys never removed.","code":""},{"path":"https://dm.cynkra.com/reference/dm_rm_uk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Remove a unique key — dm_rm_uk","text":"","code":"dm_rm_uk(dm, table = NULL, columns = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/dm_rm_uk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Remove a unique key — dm_rm_uk","text":"dm dm object. table table dm. Pass NULL remove matching keys. columns Table columns, unquoted. refer compound key, use c(col1, col2). Pass NULL (default) remove matching keys. ... dots future extensions must empty.","code":""},{"path":"https://dm.cynkra.com/reference/dm_rm_uk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Remove a unique key — dm_rm_uk","text":"updated dm without indicated unique key(s).","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_select.html","id":null,"dir":"Reference","previous_headings":"","what":"Select columns — dm_select","title":"Select columns — dm_select","text":"Select columns dm using syntax similar dplyr::select().","code":""},{"path":"https://dm.cynkra.com/reference/dm_select.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Select columns — dm_select","text":"","code":"dm_select(dm, table, ...)"},{"path":"https://dm.cynkra.com/reference/dm_select.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Select columns — dm_select","text":"dm dm object. table table dm. ... One unquoted expressions separated commas. can treat variable names positions, use expressions like x:y select ranges variables. Use named arguments, e.g. new_name = old_name, rename selected variables. arguments ... automatically quoted evaluated context column names represent column positions. also support unquoting splicing. See vignette(\"programming\", package = \"dplyr\") introduction concepts. See select helpers details, examples tidyselect helpers, starts_with(), everything(), ...","code":""},{"path":"https://dm.cynkra.com/reference/dm_select.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Select columns — dm_select","text":"updated dm columns table reduced /renamed.","code":""},{"path":"https://dm.cynkra.com/reference/dm_select.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Select columns — dm_select","text":"key columns renamed, meta-information dm updated accordingly. key columns removed, related relations dropped well.","code":""},{"path":"https://dm.cynkra.com/reference/dm_select.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Select columns — dm_select","text":"","code":"dm_nycflights13() %>% dm_select(airports, code = faa, altitude = alt) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 47 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/dm_select_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Select and rename tables — dm_select_tbl","title":"Select and rename tables — dm_select_tbl","text":"dm_select_tbl() keeps selected tables relationships, optionally renaming . dm_rename_tbl() renames tables.","code":""},{"path":"https://dm.cynkra.com/reference/dm_select_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Select and rename tables — dm_select_tbl","text":"","code":"dm_select_tbl(dm, ...) dm_rename_tbl(dm, ...)"},{"path":"https://dm.cynkra.com/reference/dm_select_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Select and rename tables — dm_select_tbl","text":"dm dm object. ... One table names tables dm object. tidyselect supported, see dplyr::select() details semantics.","code":""},{"path":"https://dm.cynkra.com/reference/dm_select_tbl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Select and rename tables — dm_select_tbl","text":"input dm tables renamed removed.","code":""},{"path":"https://dm.cynkra.com/reference/dm_select_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Select and rename tables — dm_select_tbl","text":"","code":"dm_nycflights13() %>% dm_select_tbl(airports, fl = flights) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airports`, `fl` #> Columns: 27 #> Primary keys: 1 #> Foreign keys: 1 dm_nycflights13() %>% dm_rename_tbl(ap = airports, fl = flights) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `ap`, `fl`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/dm_set_colors.html","id":null,"dir":"Reference","previous_headings":"","what":"Color in database diagrams — dm_set_colors","title":"Color in database diagrams — dm_set_colors","text":"dm_set_colors() allows define colors used display tables data model dm_draw(). colors can either either specified hex color codes using names built-R colors. overview colors corresponding standard color names can found bottom https://rpubs.com/krlmlr/colors. dm_get_colors() returns colors defined data model. dm_get_available_colors() returns overview names available colors standard colors also returned grDevices::colors() plus default table color name \"default\".","code":""},{"path":"https://dm.cynkra.com/reference/dm_set_colors.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Color in database diagrams — dm_set_colors","text":"","code":"dm_set_colors(dm, ...) dm_get_colors(dm) dm_get_available_colors()"},{"path":"https://dm.cynkra.com/reference/dm_set_colors.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Color in database diagrams — dm_set_colors","text":"dm dm object. ... Colors set form color = table. Allowed colors hex coded colors (quoted) color names dm_get_available_colors(). tidyselect supported, see dplyr::select() details semantics.","code":""},{"path":"https://dm.cynkra.com/reference/dm_set_colors.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Color in database diagrams — dm_set_colors","text":"dm_set_colors(): updated data model. dm_get_colors(), named character vector table names colors names. allows calling dm_set_colors(!!!dm_get_colors(...)). Use tibble::enframe() convert tibble. dm_get_available_colors(), vector available colors.","code":""},{"path":"https://dm.cynkra.com/reference/dm_set_colors.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Color in database diagrams — dm_set_colors","text":"","code":"dm_nycflights13(color = FALSE) %>% dm_set_colors( darkblue = starts_with(\"air\"), \"#5986C4\" = flights ) %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour # Splicing is supported: nyc_cols <- dm_nycflights13() %>% dm_get_colors() nyc_cols #> #ED7D31FF #ED7D31FF #5B9BD5FF #ED7D31FF #70AD47FF #> \"airlines\" \"airports\" \"flights\" \"planes\" \"weather\" dm_nycflights13(color = FALSE) %>% dm_set_colors(!!!nyc_cols) %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour"},{"path":"https://dm.cynkra.com/reference/dm_set_table_description.html","id":null,"dir":"Reference","previous_headings":"","what":"Add info about a dm's tables — dm_set_table_description","title":"Add info about a dm's tables — dm_set_table_description","text":"creating diagram dm using dm_draw() table descriptions set dm_set_table_description() displayed.","code":""},{"path":"https://dm.cynkra.com/reference/dm_set_table_description.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add info about a dm's tables — dm_set_table_description","text":"","code":"dm_set_table_description(dm, ...) dm_get_table_description(dm, table = NULL, ...) dm_reset_table_description(dm, table = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/dm_set_table_description.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add info about a dm's tables — dm_set_table_description","text":"dm dm object. ... dm_set_table_description(): Descriptions tables set form description = table. tidyselect supported, see dplyr::select() details semantics. dm_get_table_description() dm_reset_table_description(): dots future extensions must empty. table One table names, unquoted, get information current description(s) dm_get_table_description(). remove descriptions dm_reset_table_description(). cases default applies tables dm.","code":""},{"path":"https://dm.cynkra.com/reference/dm_set_table_description.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add info about a dm's tables — dm_set_table_description","text":"dm_set_table_description(): dm object containing descriptions specified tables. dm_get_table_description: named vector tables, descriptions names. dm_reset_table_description(): dm object without descriptions specified tables.","code":""},{"path":"https://dm.cynkra.com/reference/dm_set_table_description.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add info about a dm's tables — dm_set_table_description","text":"Multi-line descriptions can achieved using newline symbol \\n. Descriptions set dm_set_table_description(). currently set descriptions can checked using dm_get_table_description(). Descriptions can removed using dm_reset_table_description().","code":""},{"path":"https://dm.cynkra.com/reference/dm_set_table_description.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add info about a dm's tables — dm_set_table_description","text":"","code":"desc_flights <- rlang::set_names( \"flights\", paste( \"On-time data for all flights\", \"that departed NYC (i.e. JFK, LGA or EWR) in 2013.\", sep = \"\\n\" ) ) nyc_desc <- dm_nycflights13() %>% dm_set_table_description( !!desc_flights, \"Weather at the airport of\\norigin at time of departure\" = weather ) nyc_desc %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaflightsflightsOn-time data for all flightsthat departed NYC (i.e. JFK, LGA or EWR) in 2013.carriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherWeather at the airport oforigin at time of departureorigin, time_hourflights:origin, time_hour->weather:origin, time_hour dm_get_table_description(nyc_desc) #> On-time data for all flights\\nthat departed NYC (i.e. JFK, LGA or EWR) in 2013. #> \"flights\" #> Weather at the airport of\\norigin at time of departure #> \"weather\" dm_reset_table_description(nyc_desc, flights) %>% dm_draw(font_size = c(header = 18L, table_description = 9L, column = 15L)) %0 airlinesairlinescarrierairportsairportsfaaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherWeather at the airport oforigin at time of departureorigin, time_hourflights:origin, time_hour->weather:origin, time_hour pull_tbl(nyc_desc, flights) %>% labelled::label_attribute() #> [1] \"On-time data for all flights\\nthat departed NYC (i.e. JFK, LGA or EWR) in 2013.\""},{"path":"https://dm.cynkra.com/reference/dm_sql.html","id":null,"dir":"Reference","previous_headings":"","what":"Create DDL and DML scripts for a dm a and database connection — dm_sql","title":"Create DDL and DML scripts for a dm a and database connection — dm_sql","text":"Generate SQL scripts create tables, load data set constraints, keys indices. function powers copy_dm_to() useful need control process copying dm database.","code":""},{"path":"https://dm.cynkra.com/reference/dm_sql.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create DDL and DML scripts for a dm a and database connection — dm_sql","text":"","code":"dm_sql(dm, dest, table_names = NULL, temporary = TRUE) dm_ddl_pre(dm, dest, table_names = NULL, temporary = TRUE) dm_dml_load(dm, dest, table_names = NULL, temporary = TRUE) dm_ddl_post(dm, dest, table_names = NULL, temporary = TRUE)"},{"path":"https://dm.cynkra.com/reference/dm_sql.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create DDL and DML scripts for a dm a and database connection — dm_sql","text":"dm dm object. dest Connection database. table_names named character vector named vector DBI::Id, DBI::SQL dbplyr objects created dbplyr::ident(), dbplyr::in_schema() dbplyr::in_catalog(), one unique element table dm. default, NULL, means use original table names. temporary tables marked temporary? Defaults TRUE.","code":""},{"path":"https://dm.cynkra.com/reference/dm_sql.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create DDL and DML scripts for a dm a and database connection — dm_sql","text":"Nested list SQL statements.","code":""},{"path":"https://dm.cynkra.com/reference/dm_sql.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Create DDL and DML scripts for a dm a and database connection — dm_sql","text":"dm_ddl_pre() generates CREATE TABLE statements (including PRIMARY KEY definition). dm_dml_load() generates INSERT statements. dm_ddl_post() generates scripts FOREIGN KEY, UNIQUE KEY INDEX. dm_sql() calls three returns complete set scripts.","code":""},{"path":"https://dm.cynkra.com/reference/dm_sql.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create DDL and DML scripts for a dm a and database connection — dm_sql","text":"","code":"con <- DBI::dbConnect(RSQLite::SQLite()) dm <- dm_nycflights13() s <- dm_sql(dm, con) s #> $pre #> $pre$airlines #> CREATE TEMPORARY TABLE `airlines` ( #> `carrier` TEXT, #> `name` TEXT, #> PRIMARY KEY (`carrier`), #> UNIQUE (`carrier`) #> ) #> #> $pre$airports #> CREATE TEMPORARY TABLE `airports` ( #> `faa` TEXT, #> `name` TEXT, #> `lat` DOUBLE, #> `lon` DOUBLE, #> `alt` DOUBLE, #> `tz` DOUBLE, #> `dst` TEXT, #> `tzone` TEXT, #> PRIMARY KEY (`faa`), #> UNIQUE (`faa`) #> ) #> #> $pre$planes #> CREATE TEMPORARY TABLE `planes` ( #> `tailnum` TEXT, #> `year` INTEGER, #> `type` TEXT, #> `manufacturer` TEXT, #> `model` TEXT, #> `engines` INTEGER, #> `seats` INTEGER, #> `speed` INTEGER, #> `engine` TEXT, #> PRIMARY KEY (`tailnum`), #> UNIQUE (`tailnum`) #> ) #> #> $pre$weather #> CREATE TEMPORARY TABLE `weather` ( #> `origin` TEXT, #> `year` INTEGER, #> `month` INTEGER, #> `day` INTEGER, #> `hour` INTEGER, #> `temp` DOUBLE, #> `dewp` DOUBLE, #> `humid` DOUBLE, #> `wind_dir` DOUBLE, #> `wind_speed` DOUBLE, #> `wind_gust` DOUBLE, #> `precip` DOUBLE, #> `pressure` DOUBLE, #> `visib` DOUBLE, #> `time_hour` TIMESTAMP, #> PRIMARY KEY (`origin`, `time_hour`), #> UNIQUE (`origin`, `time_hour`) #> ) #> #> $pre$flights #> CREATE TEMPORARY TABLE `flights` ( #> `year` INTEGER, #> `month` INTEGER, #> `day` INTEGER, #> `dep_time` INTEGER, #> `sched_dep_time` INTEGER, #> `dep_delay` DOUBLE, #> `arr_time` INTEGER, #> `sched_arr_time` INTEGER, #> `arr_delay` DOUBLE, #> `carrier` TEXT, #> `flight` INTEGER, #> `tailnum` TEXT, #> `origin` TEXT, #> `dest` TEXT, #> `air_time` DOUBLE, #> `distance` DOUBLE, #> `hour` DOUBLE, #> `minute` DOUBLE, #> `time_hour` TIMESTAMP, #> FOREIGN KEY (`carrier`) REFERENCES `airlines` (`carrier`), #> FOREIGN KEY (`origin`) REFERENCES `airports` (`faa`), #> FOREIGN KEY (`tailnum`) REFERENCES `planes` (`tailnum`), #> FOREIGN KEY (`origin`, `time_hour`) REFERENCES `weather` (`origin`, `time_hour`) #> ) #> #> #> $load #> $load$airlines #> INSERT INTO `airlines` (`carrier`, `name`) #> SELECT CAST(`carrier` AS TEXT) AS `carrier`, CAST(`name` AS TEXT) AS `name` #> FROM ( #> SELECT NULL AS `carrier`, NULL AS `name` #> WHERE (0 = 1) #> #> UNION ALL #> #> VALUES #> ('9E', 'Endeavor Air Inc.'), #> ('AA', 'American Airlines Inc.'), #> ('AS', 'Alaska Airlines Inc.'), #> ('B6', 'JetBlue Airways'), #> ('DL', 'Delta Air Lines Inc.'), #> ('EV', 'ExpressJet Airlines Inc.'), #> ('F9', 'Frontier Airlines Inc.'), #> ('FL', 'AirTran Airways Corporation'), #> ('HA', 'Hawaiian Airlines Inc.'), #> ('MQ', 'Envoy Air'), #> ('UA', 'United Air Lines Inc.'), #> ('US', 'US Airways Inc.'), #> ('VX', 'Virgin America'), #> ('WN', 'Southwest Airlines Co.'), #> ('YV', 'Mesa Airlines Inc.') #> ) AS `values_table` #> #> $load$airports #> INSERT INTO `airports` (`faa`, `name`, `lat`, `lon`, `alt`, `tz`, `dst`, `tzone`) #> SELECT #> CAST(`faa` AS TEXT) AS `faa`, #> CAST(`name` AS TEXT) AS `name`, #> CAST(`lat` AS REAL) AS `lat`, #> CAST(`lon` AS REAL) AS `lon`, #> CAST(`alt` AS REAL) AS `alt`, #> CAST(`tz` AS REAL) AS `tz`, #> CAST(`dst` AS TEXT) AS `dst`, #> CAST(`tzone` AS TEXT) AS `tzone` #> FROM ( #> SELECT #> NULL AS `faa`, #> NULL AS `name`, #> NULL AS `lat`, #> NULL AS `lon`, #> NULL AS `alt`, #> NULL AS `tz`, #> NULL AS `dst`, #> NULL AS `tzone` #> WHERE (0 = 1) #> #> UNION ALL #> #> VALUES #> ('ALB', 'Albany Intl', 42.748267, -73.801692, 285.0, -5.0, 'A', 'America/New_York'), #> ('ATL', 'Hartsfield Jackson Atlanta Intl', 33.636719, -84.428067, 1026.0, -5.0, 'A', 'America/New_York'), #> ('AUS', 'Austin Bergstrom Intl', 30.194528, -97.669889, 542.0, -6.0, 'A', 'America/Chicago'), #> ('BDL', 'Bradley Intl', 41.938889, -72.683222, 173.0, -5.0, 'A', 'America/New_York'), #> ('BHM', 'Birmingham Intl', 33.562942, -86.75355, 644.0, -6.0, 'A', 'America/Chicago'), #> ('BNA', 'Nashville Intl', 36.124472, -86.678194, 599.0, -6.0, 'A', 'America/Chicago'), #> ('BOS', 'General Edward Lawrence Logan Intl', 42.364347, -71.005181, 19.0, -5.0, 'A', 'America/New_York'), #> ('BTV', 'Burlington Intl', 44.471861, -73.153278, 335.0, -5.0, 'A', 'America/New_York'), #> ('BUF', 'Buffalo Niagara Intl', 42.940525, -78.732167, 724.0, -5.0, 'A', 'America/New_York'), #> ('BUR', 'Bob Hope', 34.200667, -118.358667, 778.0, -8.0, 'A', 'America/Los_Angeles'), #> ('BWI', 'Baltimore Washington Intl', 39.175361, -76.668333, 146.0, -5.0, 'A', 'America/New_York'), #> ('CAE', 'Columbia Metropolitan', 33.938833, -81.119528, 236.0, -5.0, 'A', 'America/New_York'), #> ('CAK', 'Akron Canton Regional Airport', 40.9160833, -81.4421944, 1228.0, -5.0, 'A', 'America/New_York'), #> ('CHS', 'Charleston Afb Intl', 32.898647, -80.040528, 45.0, -5.0, 'A', 'America/New_York'), #> ('CLE', 'Cleveland Hopkins Intl', 41.411689, -81.849794, 791.0, -5.0, 'A', 'America/New_York'), #> ('CLT', 'Charlotte Douglas Intl', 35.214, -80.943139, 748.0, -5.0, 'A', 'America/New_York'), #> ('CMH', 'Port Columbus Intl', 39.997972, -82.891889, 815.0, -5.0, 'A', 'America/New_York'), #> ('CRW', 'Yeager', 38.373147, -81.593189, 981.0, -5.0, 'A', 'America/New_York'), #> ('CVG', 'Cincinnati Northern Kentucky Intl', 39.048836, -84.667822, 896.0, -5.0, 'A', 'America/New_York'), #> ('DAY', 'James M Cox Dayton Intl', 39.902375, -84.219375, 1009.0, -5.0, 'A', 'America/New_York'), #> ('DCA', 'Ronald Reagan Washington Natl', 38.852083, -77.037722, 15.0, -5.0, 'A', 'America/New_York'), #> ('DEN', 'Denver Intl', 39.861656, -104.673178, 5431.0, -7.0, 'A', 'America/Denver'), #> ('DFW', 'Dallas Fort Worth Intl', 32.896828, -97.037997, 607.0, -6.0, 'A', 'America/Chicago'), #> ('DSM', 'Des Moines Intl', 41.533972, -93.663083, 958.0, -6.0, 'A', 'America/Chicago'), #> ('DTW', 'Detroit Metro Wayne Co', 42.212444, -83.353389, 645.0, -5.0, 'A', 'America/New_York'), #> ('EGE', 'Eagle Co Rgnl', 39.642556, -106.917694, 6540.0, -7.0, 'A', 'America/Denver'), #> ('EWR', 'Newark Liberty Intl', 40.6925, -74.168667, 18.0, -5.0, 'A', 'America/New_York'), #> ('FLL', 'Fort Lauderdale Hollywood Intl', 26.072583, -80.15275, 9.0, -5.0, 'A', 'America/New_York'), #> ('GRR', 'Gerald R Ford Intl', 42.880833, -85.522806, 794.0, -5.0, 'A', 'America/New_York'), #> ('GSO', 'Piedmont Triad', 36.09775, -79.937306, 925.0, -5.0, 'A', 'America/New_York'), #> ('GSP', 'Greenville-Spartanburg International', 34.895556, -82.218889, 964.0, -5.0, 'A', 'America/New_York'), #> ('HNL', 'Honolulu Intl', 21.318681, -157.922428, 13.0, -10.0, 'N', 'Pacific/Honolulu'), #> ('HOU', 'William P Hobby', 29.645419, -95.278889, 46.0, -6.0, 'A', 'America/Chicago'), #> ('IAD', 'Washington Dulles Intl', 38.944533, -77.455811, 313.0, -5.0, 'A', 'America/New_York'), #> ('IAH', 'George Bush Intercontinental', 29.984433, -95.341442, 97.0, -6.0, 'A', 'America/Chicago'), #> ('IND', 'Indianapolis Intl', 39.717331, -86.294383, 797.0, -5.0, 'A', 'America/New_York'), #> ('JAX', 'Jacksonville Intl', 30.494056, -81.687861, 30.0, -5.0, 'A', 'America/New_York'), #> ('JFK', 'John F Kennedy Intl', 40.639751, -73.778925, 13.0, -5.0, 'A', 'America/New_York'), #> ('LAS', 'Mc Carran Intl', 36.080056, -115.15225, 2141.0, -8.0, 'A', 'America/Los_Angeles'), #> ('LAX', 'Los Angeles Intl', 33.942536, -118.408075, 126.0, -8.0, 'A', 'America/Los_Angeles'), #> ('LGA', 'La Guardia', 40.777245, -73.872608, 22.0, -5.0, 'A', 'America/New_York'), #> ('LGB', 'Long Beach', 33.817722, -118.151611, 60.0, -8.0, 'A', 'America/Los_Angeles'), #> ('MCI', 'Kansas City Intl', 39.297606, -94.713905, 1026.0, -6.0, 'A', 'America/Chicago'), #> ('MCO', 'Orlando Intl', 28.429394, -81.308994, 96.0, -5.0, 'A', 'America/New_York'), #> ('MDW', 'Chicago Midway Intl', 41.785972, -87.752417, 620.0, -6.0, 'A', 'America/Chicago'), #> ('MEM', 'Memphis Intl', 35.042417, -89.976667, 341.0, -6.0, 'A', 'America/Chicago'), #> ('MHT', 'Manchester Regional Airport', 42.932556, -71.435667, 266.0, -5.0, 'A', 'America/New_York'), #> ('MIA', 'Miami Intl', 25.79325, -80.290556, 8.0, -5.0, 'A', 'America/New_York'), #> ('MKE', 'General Mitchell Intl', 42.947222, -87.896583, 723.0, -6.0, 'A', 'America/Chicago'), #> ('MSN', 'Dane Co Rgnl Truax Fld', 43.139858, -89.337514, 887.0, -6.0, 'A', 'America/Chicago'), #> ('MSP', 'Minneapolis St Paul Intl', 44.881956, -93.221767, 841.0, -6.0, 'A', 'America/Chicago'), #> ('MSY', 'Louis Armstrong New Orleans Intl', 29.993389, -90.258028, 4.0, -6.0, 'A', 'America/Chicago'), #> ('MYR', 'Myrtle Beach Intl', 33.67975, -78.928333, 25.0, -5.0, 'A', 'America/New_York'), #> ('OAK', 'Metropolitan Oakland Intl', 37.721278, -122.220722, 9.0, -8.0, 'A', 'America/Los_Angeles'), #> ('OKC', 'Will Rogers World', 35.393089, -97.600733, 1295.0, -6.0, 'A', 'America/Chicago'), #> ('OMA', 'Eppley Afld', 41.303167, -95.894069, 984.0, -6.0, 'A', 'America/Chicago'), #> ('ORD', 'Chicago Ohare Intl', 41.978603, -87.904842, 668.0, -6.0, 'A', 'America/Chicago'), #> ('ORF', 'Norfolk Intl', 36.894611, -76.201222, 26.0, -5.0, 'A', 'America/New_York'), #> ('PBI', 'Palm Beach Intl', 26.683161, -80.095589, 19.0, -5.0, 'A', 'America/New_York'), #> ('PDX', 'Portland Intl', 45.588722, -122.5975, 30.0, -8.0, 'A', 'America/Los_Angeles'), #> ('PHL', 'Philadelphia Intl', 39.871944, -75.241139, 36.0, -5.0, 'A', 'America/New_York'), #> ('PHX', 'Phoenix Sky Harbor Intl', 33.434278, -112.011583, 1135.0, -7.0, 'N', 'America/Phoenix'), #> ('PIT', 'Pittsburgh Intl', 40.491467, -80.232872, 1204.0, -5.0, 'A', 'America/New_York'), #> ('PVD', 'Theodore Francis Green State', 41.732581, -71.420383, 55.0, -5.0, 'A', 'America/New_York'), #> ('PWM', 'Portland Intl Jetport', 43.646161, -70.309281, 77.0, -5.0, 'A', 'America/New_York'), #> ('RDU', 'Raleigh Durham Intl', 35.877639, -78.787472, 435.0, -5.0, 'A', 'America/New_York'), #> ('RIC', 'Richmond Intl', 37.505167, -77.319667, 167.0, -5.0, 'A', 'America/New_York'), #> ('ROC', 'Greater Rochester Intl', 43.118866, -77.672389, 559.0, -5.0, 'A', 'America/New_York'), #> ('RSW', 'Southwest Florida Intl', 26.536167, -81.755167, 30.0, -5.0, 'A', 'America/New_York'), #> ('SAN', 'San Diego Intl', 32.733556, -117.189667, 17.0, -8.0, 'A', 'America/Los_Angeles'), #> ('SAT', 'San Antonio Intl', 29.533694, -98.469778, 809.0, -6.0, 'A', 'America/Chicago'), #> ('SAV', 'Savannah Hilton Head Intl', 32.127583, -81.202139, 51.0, -5.0, 'A', 'America/New_York'), #> ('SDF', 'Louisville International Airport', 38.1740858, -85.7364989, 501.0, -5.0, 'A', 'America/New_York'), #> ('SEA', 'Seattle Tacoma Intl', 47.449, -122.309306, 433.0, -8.0, 'A', 'America/Los_Angeles'), #> ('SFO', 'San Francisco Intl', 37.618972, -122.374889, 13.0, -8.0, 'A', 'America/Los_Angeles'), #> ('SJC', 'Norman Y Mineta San Jose Intl', 37.3626, -121.929022, 62.0, -8.0, 'A', 'America/Los_Angeles'), #> ('SLC', 'Salt Lake City Intl', 40.788389, -111.977772, 4227.0, -7.0, 'A', 'America/Denver'), #> ('SMF', 'Sacramento Intl', 38.695417, -121.590778, 27.0, -8.0, 'A', 'America/Los_Angeles'), #> ('SNA', 'John Wayne Arpt Orange Co', 33.675667, -117.868222, 56.0, -8.0, 'A', 'America/Los_Angeles'), #> ('SRQ', 'Sarasota Bradenton Intl', 27.395444, -82.554389, 30.0, -5.0, 'A', 'America/New_York'), #> ('STL', 'Lambert St Louis Intl', 38.748697, -90.370028, 618.0, -6.0, 'A', 'America/Chicago'), #> ('SYR', 'Syracuse Hancock Intl', 43.111187, -76.106311, 421.0, -5.0, 'A', 'America/New_York'), #> ('TPA', 'Tampa Intl', 27.975472, -82.53325, 26.0, -5.0, 'A', 'America/New_York'), #> ('TUL', 'Tulsa Intl', 36.198389, -95.888111, 677.0, -6.0, 'A', 'America/Chicago'), #> ('TYS', 'Mc Ghee Tyson', 35.810972, -83.994028, 981.0, -5.0, 'A', 'America/New_York'), #> ('XNA', 'NW Arkansas Regional', 36.2818694, -94.3068111, 1287.0, -6.0, 'A', 'America/Chicago') #> ) AS `values_table` #> #> $load$planes #> INSERT INTO `planes` (`tailnum`, `year`, `type`, `manufacturer`, `model`, `engines`, `seats`, `speed`, `engine`) #> SELECT #> CAST(`tailnum` AS TEXT) AS `tailnum`, #> CAST(`year` AS INTEGER) AS `year`, #> CAST(`type` AS TEXT) AS `type`, #> CAST(`manufacturer` AS TEXT) AS `manufacturer`, #> CAST(`model` AS TEXT) AS `model`, #> CAST(`engines` AS INTEGER) AS `engines`, #> CAST(`seats` AS INTEGER) AS `seats`, #> CAST(`speed` AS INTEGER) AS `speed`, #> CAST(`engine` AS TEXT) AS `engine` #> FROM ( #> SELECT #> NULL AS `tailnum`, #> NULL AS `year`, #> NULL AS `type`, #> NULL AS `manufacturer`, #> NULL AS `model`, #> NULL AS `engines`, #> NULL AS `seats`, #> NULL AS `speed`, #> NULL AS `engine` #> WHERE (0 = 1) #> #> UNION ALL #> #> VALUES #> ('N10156', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N104UW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N10575', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N105UW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N110UW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N11106', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11107', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11109', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11121', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11137', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11150', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11155', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11165', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11181', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11187', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11191', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11192', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11193', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11194', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11544', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12116', 1996, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N12125', 1998, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N12126', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N12142', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N12157', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N12160', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N12195', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N12201', 2006, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N12216', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N12221', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N12225', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N12238', 1999, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N123UW', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N12540', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12552', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12564', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12567', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12569', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12921', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12922', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12924', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12967', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13124', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N13132', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N13133', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N134EV', 2009, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N13538', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13553', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13566', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13716', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N13718', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N13750', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N13908', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13913', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13949', 1998, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13955', 1998, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13958', 1998, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13964', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13965', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13968', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13975', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13978', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13979', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13989', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13994', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13995', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13997', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14102', 1994, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N14107', 1994, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N14116', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N14148', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N14158', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N14173', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N14177', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N14180', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N14188', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N14219', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N14542', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14543', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14568', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14570', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14629', 1965, 'Fixed wing multi engine', 'BOEING', '737-524', 2, 149, NULL, 'Turbo-fan'), #> ('N146PQ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N14704', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N14731', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N14902', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14904', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14905', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14907', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14916', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14950', 1998, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14952', 1998, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14959', 1998, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14972', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14977', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14998', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N15572', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N15574', NULL, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N15710', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N15973', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N15980', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N15983', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N15985', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N15986', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N1602', 1999, 'Fixed wing multi engine', 'BOEING', '767-332', 2, 330, NULL, 'Turbo-fan'), #> ('N1609', 2000, 'Fixed wing multi engine', 'BOEING', '767-332', 2, 330, NULL, 'Turbo-fan'), #> ('N16170', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N16183', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N16234', 1999, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N16559', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N16571', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N16709', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N16713', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N167US', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N16918', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N16919', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N16961', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N16963', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N16976', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N169UW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N170PQ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N17104', 1994, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N17108', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N17115', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N17122', 1997, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N17146', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N17159', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N17169', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N17185', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N171US', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N17244', 1999, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N174US', NULL, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N17560', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N176UW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N17719', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N177US', NULL, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N178US', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N179JB', 2005, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N179UW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N180US', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N18119', 1997, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N18120', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N183UW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N184JB', 2005, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N18556', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N18557', NULL, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N187JB', 2005, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N187US', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A321-211', 2, 199, NULL, 'Turbo-fan'), #> ('N189UW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N190JB', 2005, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N19117', 1996, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N193JB', 2005, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N193UW', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A321-211', 2, 199, NULL, 'Turbo-fan'), #> ('N19554', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N197JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N197UW', 2009, 'Fixed wing multi engine', 'AIRBUS', 'A321-211', 2, 199, NULL, 'Turbo-fan'), #> ('N198JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N19966', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N201AA', 1959, 'Fixed wing single engine', 'CESSNA', '150', 1, 2, 90, 'Reciprocating'), #> ('N203FR', 2002, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N206JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N211WN', 2005, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N214FR', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N21537', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N215WN', 2005, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N216FR', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N21723', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N221WN', 2005, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N228JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N22909', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N22971', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N229JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N231JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N231WN', 2006, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N233LV', 2006, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N236JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N23708', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N23721', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N238WN', 2005, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N239JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N24103', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N24211', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N24212', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N245WN', 2006, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N246LV', 2006, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N24702', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N24715', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N24729', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N247JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N249JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N252WN', 2006, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N253WN', 2006, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N25705', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N258JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N259WN', 2006, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N26123', 1997, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N26141', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N26545', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N26549', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N267JB', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N27152', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N27190', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N27200', 2006, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N27213', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N27239', 1999, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N274JB', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N27724', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N27733', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N279JB', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N281JB', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N283JB', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N283WN', 2007, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N284JB', 2008, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N287WN', 2007, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N29124', 1998, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N29129', 1998, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N291WN', 2007, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N292JB', 2008, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N294WN', 2007, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N29717', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N298JB', 2009, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N29906', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N29917', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N301DQ', NULL, 'Fixed wing multi engine', 'BOEING', '737-732', 2, 149, NULL, 'Turbo-fan'), #> ('N302NB', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N303DQ', 2008, 'Fixed wing multi engine', 'BOEING', '737-732', 2, 149, NULL, 'Turbo-fan'), #> ('N30401', 2001, 'Fixed wing multi engine', 'BOEING', '737-924', 2, 191, NULL, 'Turbo-fan'), #> ('N304DQ', 2008, 'Fixed wing multi engine', 'BOEING', '737-732', 2, 149, NULL, 'Turbo-fan'), #> ('N306DQ', 2009, 'Fixed wing multi engine', 'BOEING', '737-732', 2, 149, NULL, 'Turbo-fan'), #> ('N306JB', 2009, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N307DQ', 2009, 'Fixed wing multi engine', 'BOEING', '737-732', 2, 149, NULL, 'Turbo-fan'), #> ('N308DE', NULL, 'Fixed wing multi engine', 'BOEING', '737-732', 2, 149, NULL, 'Turbo-fan'), #> ('N309DE', 2009, 'Fixed wing multi engine', 'BOEING', '737-732', 2, 149, NULL, 'Turbo-fan'), #> ('N309JB', 2009, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N309US', 1990, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N312US', 1990, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N316JB', 2009, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N316US', 1991, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N317JB', 2010, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N317NB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N318NB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N318US', 1991, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N319AA', 1985, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N320AA', 1985, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N320NB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N320US', 1991, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N321NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N322NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N323AA', 1986, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N323NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N323US', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N324AA', 1986, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N324NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N325NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N326NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N326US', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N327AA', 1986, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N327NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N327NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N328AA', 1986, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N328NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N329AA', 1987, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N329NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N330NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N33103', 1994, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N331NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N33284', 2004, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N33286', 2004, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N33289', 2004, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N33292', NULL, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N33294', 2005, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N332AA', 1987, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N332NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N332NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N333NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N334JB', 2011, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N334NB', 2002, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N335AA', 1987, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N335NB', 2002, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N336AA', 1987, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N336NB', 2002, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N33714', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N337JB', 2011, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N337NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N338AA', 1987, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N338NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N339AA', 1988, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N339JB', 2011, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N339NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N339NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N340NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N34131', 1998, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N341NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N341NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N34222', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N342NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N342NW', 1993, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N344AA', 1992, 'Fixed wing multi engine', 'GULFSTREAM AEROSPACE', 'G-IV', 2, 22, NULL, 'Turbo-fan'), #> ('N344NW', 1993, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N345NW', 1993, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N346JB', 2011, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N346NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N347NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N348NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N349NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N351AA', 1988, 'Fixed wing multi engine', 'BOEING', '767-323', 2, 330, NULL, 'Turbo-fan'), #> ('N351NW', 1997, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N35204', 2000, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N353AA', 1988, 'Fixed wing multi engine', 'BOEING', '767-323', 2, 330, NULL, 'Turbo-fan'), #> ('N353JB', 2012, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N354NW', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N355NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N356NW', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N356SW', 1991, 'Fixed wing multi engine', 'BOEING', '737-3H4', 2, 149, NULL, 'Turbo-fan'), #> ('N358NB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N358NW', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N360NW', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N361AA', 1988, 'Fixed wing multi engine', 'BOEING', '767-323', 2, 330, NULL, 'Turbo-fan'), #> ('N361NB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N36247', 1999, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N363AA', 1988, 'Fixed wing multi engine', 'BOEING', '767-323', 2, 330, NULL, 'Turbo-fan'), #> ('N364NB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N364NW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N365NB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N366NW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N36915', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N369NB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N369NW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N370NW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N371DA', 1998, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N37252', 2000, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N37255', 2000, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N37263', 2001, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N37273', 2001, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N37274', 2002, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N37287', 2004, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N37293', 2005, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N37298', 2005, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N372NW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N3735D', 2000, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3736C', 2000, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N373DA', 1998, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N373NW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N3740C', 2000, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N37413', 2008, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N3742C', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N37437', 2009, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N3743H', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N37456', 2012, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N3745B', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N37462', 2012, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N37464', 2012, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N3746H', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3749D', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N374DA', 1998, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3750D', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3753', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3754A', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3755D', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3757D', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3759', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3763D', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3766', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3767', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3768', 2002, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3769L', 2002, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N376NW', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N37700', 2002, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3771K', 2002, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3773D', 2010, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-fan'), #> ('N378DA', 1999, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N379DA', 1999, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N381DN', 1999, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N38257', 2000, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N38268', 2001, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N382DA', 1999, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N383DN', 1999, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N38451', 2012, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N384HA', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A330-243', 2, 377, NULL, 'Turbo-fan'), #> ('N385DN', 1999, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N38727', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N388DA', 2000, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N388HA', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A330-243', 2, 377, NULL, 'Turbo-fan'), #> ('N395DN', 2000, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N396DA', 2000, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N39728', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N398DA', 2000, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N400WN', 2001, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N401UA', 1993, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N402AS', 2012, 'Fixed wing multi engine', 'BOEING', '737-990ER', 2, 222, NULL, 'Turbo-fan'), #> ('N403AS', 2012, 'Fixed wing multi engine', 'BOEING', '737-990ER', 2, 222, NULL, 'Turbo-fan'), #> ('N404WN', 2001, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N405UA', 1993, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N410UA', 1994, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N41104', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N41140', 2000, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N411UA', 1994, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N413UA', 1994, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N413WN', 2001, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N414UA', 1994, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N419UA', 1994, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N420UA', 1994, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N420US', 1989, 'Fixed wing multi engine', 'BOEING', '737-401', 2, 149, NULL, 'Turbo-jet'), #> ('N421UA', 1994, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N423WN', 2002, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N424UA', 1995, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N425AA', 1968, 'Fixed wing single engine', 'PIPER', 'PA-28-180', 1, 4, 107, 'Reciprocating'), #> ('N425UA', 1995, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N427UA', 1995, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N428UA', 1995, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N429UA', 1995, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N429WN', 2002, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N430UA', 1996, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N430WN', 2002, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N433AA', 1987, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N434UA', 1996, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N435UA', 1996, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N436UA', 1996, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N437AA', 1987, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N439AA', 1987, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N441UA', 1997, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N443WN', 2003, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N444UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N445WN', 2003, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N452WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N453UA', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N453WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N45440', 2009, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N454UA', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N458UA', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N463UA', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N463WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N465UA', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N466AA', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N466UA', NULL, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N467WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N469AA', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N469UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N471UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N472AA', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N472UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N473UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N47414', 2008, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N474WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N475UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N476AA', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N476UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N477AA', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N479UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N48127', 1998, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N481UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N482UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N483UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N483WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N484AA', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N486WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N488UA', 2002, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N48901', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N489UA', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N490UA', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N494WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N498UA', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N501AA', 1989, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N502UA', 1989, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N504JB', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N505JB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N505MJ', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N505UA', 1989, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N506JB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N508UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N509JB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N509UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N510JB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N510UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N512UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N513AS', 2008, 'Fixed wing multi engine', 'BOEING', '737-890', 2, 149, NULL, 'Turbo-fan'), #> ('N515MJ', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N517JB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N517UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N518UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N519JB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N519LR', 2006, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N519UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N520UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N521JB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N523JB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N523UW', 2009, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N524JB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N526UA', 1991, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N535UA', 1991, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N536JB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N536UA', 1991, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N537JB', 2012, 'Rotorcraft', 'ROBINSON HELICOPTER CO', 'R66', 1, 5, NULL, 'Turbo-shaft'), #> ('N541UA', 1991, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N545UA', 1991, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N547JB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N549UW', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N552AA', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N552JB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N553UW', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N554JB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N554UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N554UW', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N554WN', 2002, 'Fixed wing multi engine', 'BOEING', '737-7BX', 2, 149, NULL, 'Turbo-fan'), #> ('N555AY', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N555UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N556JB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N556UW', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N557UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N558JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N559JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N559UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N559UW', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N560UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N560UW', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N562JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N562UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N562UW', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N563JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N563UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N564JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N565JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N568JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N569JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N569UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N570JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N570UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N571JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N571UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N573UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N574UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N576AA', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N57855', 2004, 'Fixed wing multi engine', 'BOEING', '757-324', 2, 275, NULL, 'Turbo-fan'), #> ('N57864', 2001, 'Fixed wing multi engine', 'BOEING', '757-33N', 2, 275, NULL, 'Turbo-jet'), #> ('N579JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N579UA', 1993, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N580JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N583JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N584AS', 2007, 'Fixed wing multi engine', 'BOEING', '737-890', 2, 149, NULL, 'Turbo-fan'), #> ('N585JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N586JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N587JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N588UA', 1993, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N589JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N59053', 2000, 'Fixed wing multi engine', 'BOEING', '767-424ER', 2, 292, NULL, 'Turbo-jet'), #> ('N590JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N591AA', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N591JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N592JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N593AA', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N593JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N594JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N595JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N595UA', 1998, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N596AA', 1992, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N597JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N598AA', 1992, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N599AA', 1992, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N599JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N600LR', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N601LR', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N602LR', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N603JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N604LR', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N605JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N605LR', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N606JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N608JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N608QX', 2001, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N612JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N612QX', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N613JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N615AA', 1967, 'Fixed wing multi engine', 'BEECH', '65-A90', 2, 9, 202, 'Turbo-prop'), #> ('N615DL', 1986, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N615QX', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N618DL', 1986, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N618JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N621JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N621VA', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N622VA', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N623DL', 1987, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N623JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N624AG', 1993, 'Fixed wing multi engine', 'BOEING', '757-2Q8', 2, 178, NULL, 'Turbo-fan'), #> ('N624JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N624VA', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N625AA', 1990, 'Fixed wing multi engine', 'BOEING', '757-223', 2, 178, NULL, 'Turbo-fan'), #> ('N625JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N627JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N628AA', 1990, 'Fixed wing multi engine', 'BOEING', '757-223', 2, 178, NULL, 'Turbo-fan'), #> ('N630AA', 1990, 'Fixed wing multi engine', 'BOEING', '757-223', 2, 178, NULL, 'Turbo-fan'), #> ('N630JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N632JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N632VA', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N633DL', 1987, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N633JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N634JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N636JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N636VA', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N637DL', 1988, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N637JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N637VA', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N638DL', 1988, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N638JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N638VA', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N639AA', 1991, 'Fixed wing multi engine', 'BOEING', '757-223', 2, 178, NULL, 'Turbo-fan'), #> ('N639JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N640JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N640VA', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N641DL', 1988, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N641JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N641VA', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N642VA', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N643JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N644JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N645DL', 1989, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N645JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N646DL', 1989, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N646JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N647AW', 1997, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N647DL', 1989, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N648AW', 1997, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N648JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N649JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N650AW', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N651AW', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N651JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N651SW', 1997, 'Fixed wing multi engine', 'BOEING', '737-3H4', 2, 149, NULL, 'Turbo-fan'), #> ('N653JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N654AW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N655DL', 1990, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N655JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N656JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N657AW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N657JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N658JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N659AW', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N659JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N66056', 2001, 'Fixed wing multi engine', 'BOEING', '767-424ER', 2, 292, NULL, 'Turbo-jet'), #> ('N661JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N662DN', 1991, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N662JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N663AW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N663DN', 1991, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N663JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N665AW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N665DN', 1991, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N665JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N666DN', 1991, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N667UA', 1998, 'Fixed wing multi engine', 'BOEING', '767-322', 2, 330, NULL, 'Turbo-fan'), #> ('N67134', 1999, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N671DN', 1992, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N675AW', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N675DL', 1992, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N675UA', 2000, 'Fixed wing multi engine', 'BOEING', '767-322', 2, 330, NULL, 'Turbo-fan'), #> ('N676DL', 1992, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N677UA', 2001, 'Fixed wing multi engine', 'BOEING', '767-322', 2, 330, NULL, 'Turbo-fan'), #> ('N678DL', 1998, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N679AW', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N680DA', 1992, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N68452', 2012, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N687DL', 1998, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N700GS', 1997, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N703JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N703TW', 1996, 'Fixed wing multi engine', 'BOEING', '757-2Q8', 2, 178, NULL, 'Turbo-fan'), #> ('N704X', 1997, 'Fixed wing multi engine', 'BOEING', '757-2Q8', 2, 178, NULL, 'Turbo-fan'), #> ('N705JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N705TW', 1997, 'Fixed wing multi engine', 'BOEING', '757-231', 2, 178, NULL, 'Turbo-fan'), #> ('N706JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N706TW', 1997, 'Fixed wing multi engine', 'BOEING', '757-2Q8', 2, 178, NULL, 'Turbo-fan'), #> ('N707SA', 1998, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N708EV', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N708JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N709EV', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N709JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N709UW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N710EV', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N710TW', 1997, 'Fixed wing multi engine', 'BOEING', '757-2Q8', 2, 178, NULL, 'Turbo-fan'), #> ('N711MQ', 1976, 'Fixed wing multi engine', 'GULFSTREAM AEROSPACE', 'G1159B', 2, 22, NULL, 'Turbo-jet'), #> ('N711UW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N712EV', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N712JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N712TW', 1997, 'Fixed wing multi engine', 'BOEING', '757-2Q8', 2, 178, NULL, 'Turbo-fan'), #> ('N713TW', 1997, 'Fixed wing multi engine', 'BOEING', '757-2Q8', 2, 178, NULL, 'Turbo-fan'), #> ('N714CB', 1998, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N715JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N715SW', 1998, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N715UW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N716EV', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N717TW', 1999, 'Fixed wing multi engine', 'BOEING', '757-231', 2, 178, NULL, 'Turbo-fan'), #> ('N718TW', 1999, 'Fixed wing multi engine', 'BOEING', '757-231', 2, 178, NULL, 'Turbo-fan'), #> ('N721TW', 1999, 'Fixed wing multi engine', 'BOEING', '757-231', 2, 178, NULL, 'Turbo-fan'), #> ('N722TW', 1999, 'Fixed wing multi engine', 'BOEING', '757-231', 2, 178, NULL, 'Turbo-fan'), #> ('N722US', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N723EV', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N723TW', 2000, 'Fixed wing multi engine', 'BOEING', '757-231', 2, 178, NULL, 'Turbo-fan'), #> ('N72405', 2001, 'Fixed wing multi engine', 'BOEING', '737-924', 2, 191, NULL, 'Turbo-fan'), #> ('N725UW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N727TW', 1999, 'Fixed wing multi engine', 'BOEING', '757-231', 2, 178, NULL, 'Turbo-fan'), #> ('N729JB', NULL, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N730EV', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N730US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N73251', 2000, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N73256', 2000, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N73278', NULL, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N73283', 2004, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N73291', 2004, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N73406', 2001, 'Fixed wing multi engine', 'BOEING', '737-924', 2, 191, NULL, 'Turbo-fan'), #> ('N73445', 2011, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N736SA', 1999, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N737MQ', 1977, 'Fixed wing single engine', 'CESSNA', '172N', 1, 4, 105, 'Reciprocating'), #> ('N738EV', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N740UW', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N741EV', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N744EV', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N746JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N747UW', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N748EV', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N749US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N751EV', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N752EV', NULL, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N752US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N75433', 2009, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N75435', 2009, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N75436', 2009, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N755EV', NULL, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N756SA', 1999, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N756US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N757LV', 1999, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N75854', 2002, 'Fixed wing multi engine', 'BOEING', '757-324', 2, 275, NULL, 'Turbo-fan'), #> ('N75858', 2004, 'Fixed wing multi engine', 'BOEING', '757-324', 2, 275, NULL, 'Turbo-fan'), #> ('N76064', 2002, 'Fixed wing multi engine', 'BOEING', '767-424ER', 2, 292, NULL, 'Turbo-jet'), #> ('N760JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N760US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N761ND', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N76269', 2001, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N763US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N76508', 2008, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N76517', 2008, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N76519', 2009, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N76528', 2010, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N76529', 2010, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N766JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N767UW', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N768JB', 2009, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N768US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N769US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N7702A', 2004, 'Fixed wing multi engine', 'BOEING', '737-7BD', 2, 149, NULL, 'Turbo-fan'), #> ('N770UW', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N77258', 2000, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N7726A', 2006, 'Fixed wing multi engine', 'BOEING', '737-7BD', 2, 149, NULL, 'Turbo-fan'), #> ('N77295', 2005, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N77296', 2005, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N772SW', 2000, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N7730A', 2006, 'Fixed wing multi engine', 'BOEING', '737-7BD', 2, 149, NULL, 'Turbo-fan'), #> ('N7735A', 2006, 'Fixed wing multi engine', 'BOEING', '737-7BD', 2, 149, NULL, 'Turbo-fan'), #> ('N773SA', 2000, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N77510', 2008, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N77518', 2008, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N77520', 2010, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N77525', 2010, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N77530', 2011, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N775JB', 2009, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N77871', 2003, 'Fixed wing multi engine', 'BOEING', '757-33N', 2, 275, NULL, 'Turbo-jet'), #> ('N779JB', 2009, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N784JB', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N78501', 2006, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N78506', 2006, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N78509', 2008, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N78524', 2010, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N789JB', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N790SW', 2000, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N793JB', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N794JB', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N796JB', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N800AY', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N801AY', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N803UA', 1997, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N804JB', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N805UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N807JB', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N807UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N809JB', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N812UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N813UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N814UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N815UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N817UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N818UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N820AS', 1997, 'Fixed wing multi engine', 'CANADAIR', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N821JB', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N821UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N823AY', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N824AY', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N824UA', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N825AS', 1997, 'Fixed wing multi engine', 'CANADAIR', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N825AY', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N826AS', 1997, 'Fixed wing multi engine', 'CANADAIR', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N826AY', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N826UA', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N827UA', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N829AS', 1998, 'Fixed wing multi engine', 'CANADAIR', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N829AY', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N830AS', 1998, 'Fixed wing multi engine', 'CANADAIR', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N830AY', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N830UA', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N8313F', 2012, 'Fixed wing multi engine', 'BOEING', '737-8H4', 2, 140, NULL, 'Turbo-fan'), #> ('N831AY', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8327A', 2012, 'Fixed wing multi engine', 'BOEING', '737-8H4', 2, 140, NULL, 'Turbo-fan'), #> ('N833AS', 1998, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N834UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N835AS', 1998, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N836AS', 1998, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N836VA', 2010, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N839VA', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N840MQ', 1974, 'Fixed wing multi engine', 'CANADAIR LTD', 'CF-5D', 4, 2, NULL, 'Turbo-jet'), #> ('N840UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N841VA', NULL, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N842VA', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N843UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N843VA', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N8444F', 2000, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N844VA', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N845UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N848UA', 2002, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N848VA', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N8506C', 2001, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N852UA', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N8533D', 2001, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8543F', 2001, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N855VA', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N8577D', 2001, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8598B', 2001, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8623A', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8688C', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8694A', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8747B', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N87507', 2008, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N87513', 2008, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N8751D', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N87527', 2010, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N87531', 2011, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N8758D', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8775A', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8783E', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8797A', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8808H', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8836A', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8855A', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8907A', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8928A', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8965E', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8971A', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8974C', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8986B', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N900PC', 1997, 'Fixed wing multi engine', 'BOEING', '757-26D', 2, 178, NULL, 'Turbo-jet'), #> ('N902XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N903XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N904DL', 1987, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N904XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N906WN', 2008, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N906XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N908DL', 1987, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N908XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N909DE', 1992, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS CORPORATION', 'MD-88', 2, 142, NULL, 'Turbo-jet'), #> ('N909EV', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N909XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N910XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N912XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N913DE', 1993, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N913WN', 2008, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N913XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N914DL', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N914XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N915XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N916XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N917XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N918WN', 2008, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N918XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N919DL', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N919XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N920DE', 1993, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N920XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N921AT', 2000, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N921DL', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N921XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N922WN', 2008, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N922XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N925XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N926DL', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N927AT', 2000, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N927XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N928AT', 2000, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N928XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N929AT', 2000, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N931XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N932XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N933XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N934DL', 1989, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N934WN', 2009, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N934XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N935WN', 2009, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N935XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N936WN', 2009, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N936XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N937DL', 1989, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N937XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N940DL', 1989, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N943AT', 1999, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N945UW', NULL, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N946WN', 2010, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N947DL', 1989, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N948AT', 1999, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N948UW', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N949DL', 1990, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N949UW', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N952DL', 1990, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N952UW', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N955WN', 2011, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N956DL', 1990, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N956UW', 2008, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N957DL', 1990, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N957UW', 2008, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N958UW', 2008, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N959UW', 2008, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N960AT', 2001, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N961UW', 2008, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N963WN', 2011, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N966AT', 2001, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N966WN', 2011, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N967DL', 1990, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N968AT', 2001, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N969AT', 2001, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N971DL', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N975AT', 2002, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N975DL', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N976DL', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N977AT', 2002, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N979DL', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N986DL', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N990AT', 2001, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N991AT', NULL, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N992AT', 2002, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N993DL', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N994AT', 2002, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N996AT', 2002, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan') #> ) AS `values_table` #> #> $load$weather #> INSERT INTO `weather` (`origin`, `year`, `month`, `day`, `hour`, `temp`, `dewp`, `humid`, `wind_dir`, `wind_speed`, `wind_gust`, `precip`, `pressure`, `visib`, `time_hour`) #> SELECT #> CAST(`origin` AS TEXT) AS `origin`, #> CAST(`year` AS INTEGER) AS `year`, #> CAST(`month` AS INTEGER) AS `month`, #> CAST(`day` AS INTEGER) AS `day`, #> CAST(`hour` AS INTEGER) AS `hour`, #> CAST(`temp` AS REAL) AS `temp`, #> CAST(`dewp` AS REAL) AS `dewp`, #> CAST(`humid` AS REAL) AS `humid`, #> CAST(`wind_dir` AS REAL) AS `wind_dir`, #> CAST(`wind_speed` AS REAL) AS `wind_speed`, #> CAST(`wind_gust` AS REAL) AS `wind_gust`, #> CAST(`precip` AS REAL) AS `precip`, #> CAST(`pressure` AS REAL) AS `pressure`, #> CAST(`visib` AS REAL) AS `visib`, #> CAST(`time_hour` AS TEXT) AS `time_hour` #> FROM ( #> SELECT #> NULL AS `origin`, #> NULL AS `year`, #> NULL AS `month`, #> NULL AS `day`, #> NULL AS `hour`, #> NULL AS `temp`, #> NULL AS `dewp`, #> NULL AS `humid`, #> NULL AS `wind_dir`, #> NULL AS `wind_speed`, #> NULL AS `wind_gust`, #> NULL AS `precip`, #> NULL AS `pressure`, #> NULL AS `visib`, #> NULL AS `time_hour` #> WHERE (0 = 1) #> #> UNION ALL #> #> VALUES #> ('EWR', 2013, 1, 10, 0, 41.0, 32.0, 70.08, 230.0, 8.05546, NULL, 0.0, 1024.6, 10.0, '2013-01-10T05:00:00Z'), #> ('EWR', 2013, 1, 10, 1, 39.02, 30.02, 69.86, 210.0, 9.20624, NULL, 0.0, 1025.9, 10.0, '2013-01-10T06:00:00Z'), #> ('EWR', 2013, 1, 10, 2, 39.02, 28.94, 66.85, 230.0, 6.90468, NULL, 0.0, 1026.9, 10.0, '2013-01-10T07:00:00Z'), #> ('EWR', 2013, 1, 10, 3, 39.92, 26.96, 59.5, 270.0, 5.7539, NULL, 0.0, 1027.5, 10.0, '2013-01-10T08:00:00Z'), #> ('EWR', 2013, 1, 10, 4, 41.0, 26.06, 54.97, 320.0, 6.90468, NULL, 0.0, 1028.2, 10.0, '2013-01-10T09:00:00Z'), #> ('EWR', 2013, 1, 10, 5, 41.0, 26.06, 54.97, 300.0, 12.65858, 20.71404, 0.0, 1029.0, 10.0, '2013-01-10T10:00:00Z'), #> ('EWR', 2013, 1, 10, 6, 39.92, 24.98, 54.81, 280.0, 6.90468, 17.2617, 0.0, 1030.0, 10.0, '2013-01-10T11:00:00Z'), #> ('EWR', 2013, 1, 10, 7, 41.0, 24.98, 52.56, 330.0, 6.90468, NULL, 0.0, 1031.4, 10.0, '2013-01-10T12:00:00Z'), #> ('EWR', 2013, 1, 10, 8, 42.98, 24.98, 48.7, 330.0, 8.05546, NULL, 0.0, 1032.2, 10.0, '2013-01-10T13:00:00Z'), #> ('EWR', 2013, 1, 10, 9, 44.96, 23.0, 41.56, 320.0, 17.2617, 26.46794, 0.0, 1032.7, 10.0, '2013-01-10T14:00:00Z'), #> ('EWR', 2013, 1, 10, 10, 44.96, 21.92, 39.72, 320.0, 11.5078, NULL, 0.0, 1032.8, 10.0, '2013-01-10T15:00:00Z'), #> ('EWR', 2013, 1, 10, 11, 46.94, 21.92, 36.85, 330.0, 13.80936, 23.0156, 0.0, 1032.0, 10.0, '2013-01-10T16:00:00Z'), #> ('EWR', 2013, 1, 10, 12, 48.92, 21.92, 34.21, 320.0, 14.96014, 20.71404, 0.0, 1031.3, 10.0, '2013-01-10T17:00:00Z'), #> ('EWR', 2013, 1, 10, 13, 50.0, 21.92, 32.86, 310.0, 12.65858, 18.41248, 0.0, 1031.5, 10.0, '2013-01-10T18:00:00Z'), #> ('EWR', 2013, 1, 10, 14, 50.0, 21.92, 32.86, 300.0, 11.5078, 19.56326, 0.0, 1031.9, 10.0, '2013-01-10T19:00:00Z'), #> ('EWR', 2013, 1, 10, 15, 48.92, 21.02, 32.93, 330.0, 10.35702, NULL, 0.0, 1032.4, 10.0, '2013-01-10T20:00:00Z'), #> ('EWR', 2013, 1, 10, 16, 46.94, 21.92, 36.85, 310.0, 8.05546, NULL, 0.0, 1032.8, 10.0, '2013-01-10T21:00:00Z'), #> ('EWR', 2013, 1, 10, 17, 46.04, 21.92, 38.12, 320.0, 8.05546, NULL, 0.0, 1033.3, 10.0, '2013-01-10T22:00:00Z'), #> ('EWR', 2013, 1, 10, 18, 44.96, 23.0, 41.56, 330.0, 6.90468, NULL, 0.0, 1033.8, 10.0, '2013-01-10T23:00:00Z'), #> ('EWR', 2013, 1, 10, 19, 44.06, 23.0, 43.02, 340.0, 4.60312, NULL, 0.0, 1033.6, 10.0, '2013-01-11T00:00:00Z'), #> ('EWR', 2013, 1, 10, 20, 44.06, 23.0, 43.02, 340.0, 6.90468, NULL, 0.0, 1034.0, 10.0, '2013-01-11T01:00:00Z'), #> ('EWR', 2013, 1, 10, 21, 41.0, 24.98, 52.56, 10.0, 8.05546, NULL, 0.0, 1033.5, 10.0, '2013-01-11T02:00:00Z'), #> ('EWR', 2013, 1, 10, 22, 39.02, 24.98, 56.77, 30.0, 8.05546, NULL, 0.0, 1034.0, 10.0, '2013-01-11T03:00:00Z'), #> ('EWR', 2013, 1, 10, 23, 39.92, 24.08, 52.79, 0.0, 0.0, NULL, 0.0, 1034.4, 10.0, '2013-01-11T04:00:00Z'), #> ('EWR', 2013, 2, 10, 0, 19.94, 6.98, 56.56, 310.0, 11.5078, NULL, 0.0, 1028.2, 10.0, '2013-02-10T05:00:00Z'), #> ('EWR', 2013, 2, 10, 1, 19.04, 6.98, 58.78, 310.0, 9.20624, NULL, 0.0, 1028.4, 10.0, '2013-02-10T06:00:00Z'), #> ('EWR', 2013, 2, 10, 2, 19.04, 6.98, 58.78, 310.0, 10.35702, NULL, 0.0, 1028.5, 10.0, '2013-02-10T07:00:00Z'), #> ('EWR', 2013, 2, 10, 3, 19.04, 6.98, 58.78, 330.0, 6.90468, NULL, 0.0, 1028.5, 10.0, '2013-02-10T08:00:00Z'), #> ('EWR', 2013, 2, 10, 4, 17.06, 8.06, 67.21, 250.0, 4.60312, NULL, 0.0, 1028.9, 10.0, '2013-02-10T09:00:00Z'), #> ('EWR', 2013, 2, 10, 5, 15.98, 8.06, 70.43, 290.0, 5.7539, NULL, 0.0, 1029.7, 10.0, '2013-02-10T10:00:00Z'), #> ('EWR', 2013, 2, 10, 6, 15.98, 6.98, 67.07, 350.0, 4.60312, NULL, 0.0, 1030.1, 10.0, '2013-02-10T11:00:00Z'), #> ('EWR', 2013, 2, 10, 7, 17.96, 8.06, 64.65, 0.0, 0.0, NULL, 0.0, 1031.0, 10.0, '2013-02-10T12:00:00Z'), #> ('EWR', 2013, 2, 10, 8, 23.0, 8.06, 52.18, 330.0, 5.7539, NULL, 0.0, 1031.8, 10.0, '2013-02-10T13:00:00Z'), #> ('EWR', 2013, 2, 10, 9, 26.06, 8.96, 47.82, 360.0, 3.45234, NULL, 0.0, 1032.2, 10.0, '2013-02-10T14:00:00Z'), #> ('EWR', 2013, 2, 10, 10, 26.96, 8.96, 46.08, 0.0, 0.0, NULL, 0.0, 1032.4, 10.0, '2013-02-10T15:00:00Z'), #> ('EWR', 2013, 2, 10, 11, 28.94, 10.04, 44.58, 200.0, 3.45234, NULL, 0.0, 1031.8, 10.0, '2013-02-10T16:00:00Z'), #> ('EWR', 2013, 2, 10, 12, 32.0, 8.96, 37.52, 0.0, 0.0, NULL, 0.0, 1030.4, 10.0, '2013-02-10T17:00:00Z'), #> ('EWR', 2013, 2, 10, 13, 33.98, 12.92, 41.33, 0.0, 0.0, NULL, 0.0, 1029.8, 10.0, '2013-02-10T18:00:00Z'), #> ('EWR', 2013, 2, 10, 14, 35.06, 14.0, 41.51, 210.0, 3.45234, NULL, 0.0, 1029.6, 10.0, '2013-02-10T19:00:00Z'), #> ('EWR', 2013, 2, 10, 15, 33.98, 10.04, 36.37, 190.0, 5.7539, NULL, 0.0, 1029.0, 10.0, '2013-02-10T20:00:00Z'), #> ('EWR', 2013, 2, 10, 16, 33.98, 10.94, 37.86, 190.0, 4.60312, NULL, 0.0, 1028.7, 10.0, '2013-02-10T21:00:00Z'), #> ('EWR', 2013, 2, 10, 17, 33.98, 15.08, 45.43, 160.0, 3.45234, NULL, 0.0, 1029.1, 10.0, '2013-02-10T22:00:00Z'), #> ('EWR', 2013, 2, 10, 18, 32.0, 17.96, 55.72, 170.0, 4.60312, NULL, 0.0, 1029.0, 10.0, '2013-02-10T23:00:00Z'), #> ('EWR', 2013, 2, 10, 19, 32.0, 19.04, 58.37, 150.0, 5.7539, NULL, 0.0, 1028.9, 10.0, '2013-02-11T00:00:00Z'), #> ('EWR', 2013, 2, 10, 20, 32.0, 19.94, 60.66, 0.0, 0.0, NULL, 0.0, 1028.5, 10.0, '2013-02-11T01:00:00Z'), #> ('EWR', 2013, 2, 10, 21, 30.92, 21.02, 66.34, 160.0, 3.45234, NULL, 0.0, 1028.2, 10.0, '2013-02-11T02:00:00Z'), #> ('EWR', 2013, 2, 10, 22, 30.92, 21.02, 66.34, 180.0, 4.60312, NULL, 0.0, 1027.4, 10.0, '2013-02-11T03:00:00Z'), #> ('EWR', 2013, 2, 10, 23, 32.0, 21.92, 65.97, 170.0, 3.45234, NULL, 0.0, 1027.3, 10.0, '2013-02-11T04:00:00Z'), #> ('JFK', 2013, 1, 10, 0, 44.06, 30.92, 59.64, 260.0, 14.96014, NULL, 0.0, 1024.6, 10.0, '2013-01-10T05:00:00Z'), #> ('JFK', 2013, 1, 10, 1, 42.08, 30.02, 62.04, 260.0, 10.35702, NULL, 0.0, 1025.8, 10.0, '2013-01-10T06:00:00Z'), #> ('JFK', 2013, 1, 10, 2, 42.08, 28.94, 59.36, 260.0, 8.05546, NULL, 0.0, 1026.8, 10.0, '2013-01-10T07:00:00Z'), #> ('JFK', 2013, 1, 10, 3, 42.98, 26.06, 50.94, 280.0, 11.5078, NULL, 0.0, 1027.5, 10.0, '2013-01-10T08:00:00Z'), #> ('JFK', 2013, 1, 10, 4, 41.0, 26.06, 54.97, 300.0, 14.96014, 25.31716, 0.0, 1028.1, 10.0, '2013-01-10T09:00:00Z'), #> ('JFK', 2013, 1, 10, 5, 42.98, 23.0, 44.83, 300.0, 12.65858, 23.0156, 0.0, 1028.9, 10.0, '2013-01-10T10:00:00Z'), #> ('JFK', 2013, 1, 10, 6, 41.0, 23.0, 48.39, 300.0, 10.35702, 16.11092, 0.0, 1029.8, 10.0, '2013-01-10T11:00:00Z'), #> ('JFK', 2013, 1, 10, 7, 42.08, 23.0, 46.41, 310.0, 16.11092, 23.0156, 0.0, 1031.3, 10.0, '2013-01-10T12:00:00Z'), #> ('JFK', 2013, 1, 10, 8, 44.06, 23.0, 43.02, 320.0, 14.96014, 26.46794, 0.0, 1032.2, 10.0, '2013-01-10T13:00:00Z'), #> ('JFK', 2013, 1, 10, 9, 44.96, 23.0, 41.56, 330.0, 21.86482, 28.7695, 0.0, 1032.8, 10.0, '2013-01-10T14:00:00Z'), #> ('JFK', 2013, 1, 10, 10, 46.04, 21.92, 38.12, 330.0, 21.86482, NULL, 0.0, 1032.4, 10.0, '2013-01-10T15:00:00Z'), #> ('JFK', 2013, 1, 10, 11, 46.94, 21.92, 36.85, 320.0, 16.11092, NULL, 0.0, 1031.4, 10.0, '2013-01-10T16:00:00Z'), #> ('JFK', 2013, 1, 10, 12, 48.02, 19.94, 32.53, 310.0, 14.96014, 23.0156, 0.0, 1031.3, 10.0, '2013-01-10T17:00:00Z'), #> ('JFK', 2013, 1, 10, 13, 48.92, 19.94, 31.45, 310.0, 14.96014, NULL, 0.0, 1031.7, 10.0, '2013-01-10T18:00:00Z'), #> ('JFK', 2013, 1, 10, 14, 48.02, 19.94, 32.53, 300.0, 11.5078, NULL, 0.0, 1032.0, 10.0, '2013-01-10T19:00:00Z'), #> ('JFK', 2013, 1, 10, 15, 48.02, 19.94, 32.53, 320.0, 12.65858, NULL, 0.0, 1032.5, 10.0, '2013-01-10T20:00:00Z'), #> ('JFK', 2013, 1, 10, 16, 44.96, 19.94, 36.52, 320.0, 12.65858, NULL, 0.0, 1033.0, 10.0, '2013-01-10T21:00:00Z'), #> ('JFK', 2013, 1, 10, 17, 44.06, 19.94, 37.79, 320.0, 6.90468, NULL, 0.0, 1033.2, 10.0, '2013-01-10T22:00:00Z'), #> ('JFK', 2013, 1, 10, 18, 44.06, 21.02, 39.57, 310.0, 6.90468, NULL, 0.0, 1033.8, 10.0, '2013-01-10T23:00:00Z'), #> ('JFK', 2013, 1, 10, 19, 42.08, 21.02, 42.69, 320.0, 5.7539, NULL, 0.0, 1034.2, 10.0, '2013-01-11T00:00:00Z'), #> ('JFK', 2013, 1, 10, 20, 41.0, 21.92, 46.23, 350.0, 6.90468, NULL, 0.0, 1034.0, 10.0, '2013-01-11T01:00:00Z'), #> ('JFK', 2013, 1, 10, 21, 39.92, 23.0, 50.46, 30.0, 5.7539, NULL, 0.0, 1034.2, 10.0, '2013-01-11T02:00:00Z'), #> ('JFK', 2013, 1, 10, 22, 39.02, 21.92, 49.93, 50.0, 5.7539, NULL, 0.0, 1034.5, 10.0, '2013-01-11T03:00:00Z'), #> ('JFK', 2013, 1, 10, 23, 39.02, 21.92, 49.93, 30.0, 4.60312, NULL, 0.0, 1034.6, 10.0, '2013-01-11T04:00:00Z'), #> ('JFK', 2013, 2, 10, 0, 21.02, 5.0, 49.37, 320.0, 11.5078, NULL, 0.0, 1027.7, 10.0, '2013-02-10T05:00:00Z'), #> ('JFK', 2013, 2, 10, 1, 19.04, 5.0, 53.71, 320.0, 6.90468, NULL, 0.0, 1028.3, 10.0, '2013-02-10T06:00:00Z'), #> ('JFK', 2013, 2, 10, 2, 19.04, 5.0, 53.71, 320.0, 9.20624, NULL, 0.0, 1028.8, 10.0, '2013-02-10T07:00:00Z'), #> ('JFK', 2013, 2, 10, 3, 19.04, 5.0, 53.71, 330.0, 11.5078, NULL, 0.0, 1028.7, 10.0, '2013-02-10T08:00:00Z'), #> ('JFK', 2013, 2, 10, 4, 17.06, 5.0, 58.49, 330.0, 9.20624, NULL, 0.0, 1029.0, 10.0, '2013-02-10T09:00:00Z'), #> ('JFK', 2013, 2, 10, 5, 17.96, 5.0, 56.26, 310.0, 8.05546, NULL, 0.0, 1029.9, 10.0, '2013-02-10T10:00:00Z'), #> ('JFK', 2013, 2, 10, 6, 17.06, 5.0, 58.49, 330.0, 5.7539, NULL, 0.0, 1030.5, 10.0, '2013-02-10T11:00:00Z'), #> ('JFK', 2013, 2, 10, 7, 19.04, 5.0, 53.71, 340.0, 9.20624, NULL, 0.0, 1030.9, 10.0, '2013-02-10T12:00:00Z'), #> ('JFK', 2013, 2, 10, 8, 21.02, 6.08, 51.86, 310.0, 8.05546, NULL, 0.0, 1032.1, 10.0, '2013-02-10T13:00:00Z'), #> ('JFK', 2013, 2, 10, 9, 24.98, 6.98, 45.74, 330.0, 6.90468, NULL, 0.0, 1032.5, 10.0, '2013-02-10T14:00:00Z'), #> ('JFK', 2013, 2, 10, 10, 26.96, 8.06, 44.25, 220.0, 3.45234, NULL, 0.0, 1032.9, 10.0, '2013-02-10T15:00:00Z'), #> ('JFK', 2013, 2, 10, 11, 30.02, 6.08, 35.68, 0.0, 0.0, NULL, 0.0, 1032.1, 10.0, '2013-02-10T16:00:00Z'), #> ('JFK', 2013, 2, 10, 12, 33.08, 6.98, 32.85, 0.0, 0.0, NULL, 0.0, 1030.9, 10.0, '2013-02-10T17:00:00Z'), #> ('JFK', 2013, 2, 10, 13, 30.02, 10.04, 42.66, 0.0, 0.0, NULL, 0.0, 1030.1, 10.0, '2013-02-10T18:00:00Z'), #> ('JFK', 2013, 2, 10, 14, 30.92, 14.0, 49.01, 220.0, 3.45234, NULL, 0.0, 1030.4, 10.0, '2013-02-10T19:00:00Z'), #> ('JFK', 2013, 2, 10, 15, 30.02, 19.04, 63.24, 200.0, 6.90468, NULL, 0.0, 1029.7, 10.0, '2013-02-10T20:00:00Z'), #> ('JFK', 2013, 2, 10, 16, 28.94, 19.04, 66.09, 190.0, 4.60312, NULL, 0.0, 1029.2, 10.0, '2013-02-10T21:00:00Z'), #> ('JFK', 2013, 2, 10, 17, 30.02, 17.06, 58.08, 190.0, 4.60312, NULL, 0.0, 1029.5, 10.0, '2013-02-10T22:00:00Z'), #> ('JFK', 2013, 2, 10, 18, 28.04, 15.98, 60.1, 180.0, 3.45234, NULL, 0.0, 1029.5, 10.0, '2013-02-10T23:00:00Z'), #> ('JFK', 2013, 2, 10, 19, 28.94, 17.96, 63.1, 200.0, 3.45234, NULL, 0.0, 1029.6, 10.0, '2013-02-11T00:00:00Z'), #> ('JFK', 2013, 2, 10, 20, 30.02, 21.02, 68.81, 0.0, 0.0, NULL, 0.0, 1029.1, 10.0, '2013-02-11T01:00:00Z'), #> ('JFK', 2013, 2, 10, 21, 30.92, 24.98, 78.35, 200.0, 8.05546, NULL, 0.0, 1028.9, 10.0, '2013-02-11T02:00:00Z'), #> ('JFK', 2013, 2, 10, 22, 33.08, 28.04, 81.5, 200.0, 6.90468, NULL, 0.0, 1028.1, 10.0, '2013-02-11T03:00:00Z'), #> ('JFK', 2013, 2, 10, 23, 33.98, 28.94, 81.57, 200.0, 8.05546, NULL, 0.0, 1027.8, 10.0, '2013-02-11T04:00:00Z'), #> ('LGA', 2013, 1, 10, 0, 46.94, 30.02, 51.55, 260.0, 13.80936, 24.16638, 0.0, 1024.1, 10.0, '2013-01-10T05:00:00Z'), #> ('LGA', 2013, 1, 10, 1, 46.04, 28.04, 49.19, 280.0, 13.80936, NULL, 0.0, 1025.2, 10.0, '2013-01-10T06:00:00Z'), #> ('LGA', 2013, 1, 10, 2, 46.04, 24.98, 43.34, 290.0, 16.11092, 28.7695, 0.0, 1026.1, 10.0, '2013-01-10T07:00:00Z'), #> ('LGA', 2013, 1, 10, 3, 44.06, 26.06, 48.87, 320.0, 10.35702, NULL, 0.0, 1027.1, 10.0, '2013-01-10T08:00:00Z'), #> ('LGA', 2013, 1, 10, 4, 44.06, 24.98, 46.73, 310.0, 19.56326, 25.31716, 0.0, 1027.6, 10.0, '2013-01-10T09:00:00Z'), #> ('LGA', 2013, 1, 10, 5, 42.98, 24.08, 46.91, 330.0, 12.65858, NULL, 0.0, 1029.0, 10.0, '2013-01-10T10:00:00Z'), #> ('LGA', 2013, 1, 10, 6, 42.08, 24.08, 48.56, 310.0, 14.96014, NULL, 0.0, 1029.6, 10.0, '2013-01-10T11:00:00Z'), #> ('LGA', 2013, 1, 10, 7, 42.08, 24.98, 50.42, 310.0, 14.96014, NULL, 0.0, 1031.1, 10.0, '2013-01-10T12:00:00Z'), #> ('LGA', 2013, 1, 10, 8, 42.98, 24.98, 48.7, 320.0, 9.20624, 20.71404, 0.0, 1032.0, 10.0, '2013-01-10T13:00:00Z'), #> ('LGA', 2013, 1, 10, 9, 44.06, 24.98, 46.73, 320.0, 13.80936, NULL, 0.0, 1032.6, 10.0, '2013-01-10T14:00:00Z'), #> ('LGA', 2013, 1, 10, 10, 44.06, 24.08, 45.01, 320.0, 16.11092, NULL, 0.0, 1032.1, 10.0, '2013-01-10T15:00:00Z'), #> ('LGA', 2013, 1, 10, 11, 44.96, 21.92, 39.72, 340.0, 16.11092, 23.0156, 0.0, 1031.2, 10.0, '2013-01-10T16:00:00Z'), #> ('LGA', 2013, 1, 10, 12, 46.04, 21.92, 38.12, 320.0, 16.11092, NULL, 0.0, 1030.7, 10.0, '2013-01-10T17:00:00Z'), #> ('LGA', 2013, 1, 10, 13, 46.94, 21.02, 35.47, 340.0, 16.11092, NULL, 0.0, 1031.3, 10.0, '2013-01-10T18:00:00Z'), #> ('LGA', 2013, 1, 10, 14, 48.02, 21.92, 35.38, 300.0, 11.5078, NULL, 0.0, 1031.6, 10.0, '2013-01-10T19:00:00Z'), #> ('LGA', 2013, 1, 10, 15, 46.94, 23.0, 38.56, 320.0, 11.5078, NULL, 0.0, 1032.1, 10.0, '2013-01-10T20:00:00Z'), #> ('LGA', 2013, 1, 10, 16, 46.04, 23.0, 39.9, 330.0, 10.35702, NULL, 0.0, 1032.5, 10.0, '2013-01-10T21:00:00Z'), #> ('LGA', 2013, 1, 10, 17, 44.96, 24.98, 45.15, 320.0, 9.20624, NULL, 0.0, 1032.7, 10.0, '2013-01-10T22:00:00Z'), #> ('LGA', 2013, 1, 10, 18, 44.96, 24.98, 45.15, 310.0, 8.05546, NULL, 0.0, 1033.5, 10.0, '2013-01-10T23:00:00Z'), #> ('LGA', 2013, 1, 10, 19, 44.06, 24.98, 46.73, 320.0, 8.05546, NULL, 0.0, 1033.7, 10.0, '2013-01-11T00:00:00Z'), #> ('LGA', 2013, 1, 10, 20, 44.06, 24.08, 45.01, 360.0, 6.90468, NULL, 0.0, 1033.8, 10.0, '2013-01-11T01:00:00Z'), #> ('LGA', 2013, 1, 10, 21, 42.08, 24.08, 48.56, 50.0, 5.7539, NULL, 0.0, 1034.1, 10.0, '2013-01-11T02:00:00Z'), #> ('LGA', 2013, 1, 10, 22, 39.92, 24.98, 54.81, 70.0, 3.45234, NULL, 0.0, 1033.9, 10.0, '2013-01-11T03:00:00Z'), #> ('LGA', 2013, 1, 10, 23, 39.92, 24.98, 54.81, 60.0, 4.60312, NULL, 0.0, 1034.4, 10.0, '2013-01-11T04:00:00Z'), #> ('LGA', 2013, 2, 10, 0, 23.0, 6.98, 49.69, 320.0, 14.96014, NULL, 0.0, 1027.5, 10.0, '2013-02-10T05:00:00Z'), #> ('LGA', 2013, 2, 10, 1, 21.92, 6.08, 49.92, 320.0, 13.80936, 19.56326, 0.0, 1028.0, 10.0, '2013-02-10T06:00:00Z'), #> ('LGA', 2013, 2, 10, 2, 21.02, 6.98, 54.03, 330.0, 12.65858, 19.56326, 0.0, 1028.4, 10.0, '2013-02-10T07:00:00Z'), #> ('LGA', 2013, 2, 10, 3, 21.02, 6.98, 54.03, 340.0, 8.05546, NULL, 0.0, 1028.3, 10.0, '2013-02-10T08:00:00Z'), #> ('LGA', 2013, 2, 10, 4, 19.94, 6.08, 54.3, 340.0, 6.90468, NULL, 0.0, 1028.6, 10.0, '2013-02-10T09:00:00Z'), #> ('LGA', 2013, 2, 10, 5, 19.94, 6.98, 56.56, 300.0, 10.35702, NULL, 0.0, 1029.5, 10.0, '2013-02-10T10:00:00Z'), #> ('LGA', 2013, 2, 10, 6, 19.94, 6.98, 56.56, 330.0, 6.90468, NULL, 0.0, 1030.2, 10.0, '2013-02-10T11:00:00Z'), #> ('LGA', 2013, 2, 10, 7, 19.94, 6.98, 56.56, 20.0, 4.60312, NULL, 0.0, 1030.7, 10.0, '2013-02-10T12:00:00Z'), #> ('LGA', 2013, 2, 10, 8, 23.0, 6.08, 47.7, 340.0, 8.05546, NULL, 0.0, 1031.6, 10.0, '2013-02-10T13:00:00Z'), #> ('LGA', 2013, 2, 10, 9, 24.08, 8.06, 49.87, 300.0, 6.90468, NULL, 0.0, 1032.1, 10.0, '2013-02-10T14:00:00Z'), #> ('LGA', 2013, 2, 10, 10, 26.06, 8.06, 45.93, 320.0, 6.90468, NULL, 0.0, 1032.3, 10.0, '2013-02-10T15:00:00Z'), #> ('LGA', 2013, 2, 10, 11, 28.94, 8.06, 40.79, 340.0, 3.45234, NULL, 0.0, 1031.6, 10.0, '2013-02-10T16:00:00Z'), #> ('LGA', 2013, 2, 10, 12, 30.92, 8.96, 39.19, 0.0, 0.0, NULL, 0.0, 1030.4, 10.0, '2013-02-10T17:00:00Z'), #> ('LGA', 2013, 2, 10, 13, 33.08, 8.96, 35.92, 0.0, 0.0, NULL, 0.0, 1029.7, 10.0, '2013-02-10T18:00:00Z'), #> ('LGA', 2013, 2, 10, 14, 35.96, 10.94, 34.99, 0.0, 0.0, NULL, 0.0, 1029.5, 10.0, '2013-02-10T19:00:00Z'), #> ('LGA', 2013, 2, 10, 15, 35.96, 12.92, 38.2, 0.0, 0.0, NULL, 0.0, 1028.8, 10.0, '2013-02-10T20:00:00Z'), #> ('LGA', 2013, 2, 10, 16, 35.06, 14.0, 41.51, 180.0, 5.7539, NULL, 0.0, 1028.5, 10.0, '2013-02-10T21:00:00Z'), #> ('LGA', 2013, 2, 10, 17, 33.98, 15.08, 45.43, 190.0, 8.05546, NULL, 0.0, 1028.9, 10.0, '2013-02-10T22:00:00Z'), #> ('LGA', 2013, 2, 10, 18, 32.0, 8.96, 37.52, 180.0, 5.7539, NULL, 0.0, 1028.9, 10.0, '2013-02-10T23:00:00Z'), #> ('LGA', 2013, 2, 10, 19, 32.0, 14.0, 46.92, 200.0, 6.90468, NULL, 0.0, 1029.1, 10.0, '2013-02-11T00:00:00Z'), #> ('LGA', 2013, 2, 10, 20, 33.08, 21.02, 60.81, 180.0, 5.7539, NULL, 0.0, 1028.6, 10.0, '2013-02-11T01:00:00Z'), #> ('LGA', 2013, 2, 10, 21, 33.08, 24.08, 69.17, 180.0, 8.05546, NULL, 0.0, 1028.1, 10.0, '2013-02-11T02:00:00Z'), #> ('LGA', 2013, 2, 10, 22, 33.08, 24.08, 69.17, 180.0, 8.05546, NULL, 0.0, 1027.4, 10.0, '2013-02-11T03:00:00Z'), #> ('LGA', 2013, 2, 10, 23, 33.98, 23.0, 63.77, 190.0, 8.05546, NULL, 0.0, 1027.2, 10.0, '2013-02-11T04:00:00Z') #> ) AS `values_table` #> #> $load$flights #> INSERT INTO `flights` (`year`, `month`, `day`, `dep_time`, `sched_dep_time`, `dep_delay`, `arr_time`, `sched_arr_time`, `arr_delay`, `carrier`, `flight`, `tailnum`, `origin`, `dest`, `air_time`, `distance`, `hour`, `minute`, `time_hour`) #> SELECT #> CAST(`year` AS INTEGER) AS `year`, #> CAST(`month` AS INTEGER) AS `month`, #> CAST(`day` AS INTEGER) AS `day`, #> CAST(`dep_time` AS INTEGER) AS `dep_time`, #> CAST(`sched_dep_time` AS INTEGER) AS `sched_dep_time`, #> CAST(`dep_delay` AS REAL) AS `dep_delay`, #> CAST(`arr_time` AS INTEGER) AS `arr_time`, #> CAST(`sched_arr_time` AS INTEGER) AS `sched_arr_time`, #> CAST(`arr_delay` AS REAL) AS `arr_delay`, #> CAST(`carrier` AS TEXT) AS `carrier`, #> CAST(`flight` AS INTEGER) AS `flight`, #> CAST(`tailnum` AS TEXT) AS `tailnum`, #> CAST(`origin` AS TEXT) AS `origin`, #> CAST(`dest` AS TEXT) AS `dest`, #> CAST(`air_time` AS REAL) AS `air_time`, #> CAST(`distance` AS REAL) AS `distance`, #> CAST(`hour` AS REAL) AS `hour`, #> CAST(`minute` AS REAL) AS `minute`, #> CAST(`time_hour` AS TEXT) AS `time_hour` #> FROM ( #> SELECT #> NULL AS `year`, #> NULL AS `month`, #> NULL AS `day`, #> NULL AS `dep_time`, #> NULL AS `sched_dep_time`, #> NULL AS `dep_delay`, #> NULL AS `arr_time`, #> NULL AS `sched_arr_time`, #> NULL AS `arr_delay`, #> NULL AS `carrier`, #> NULL AS `flight`, #> NULL AS `tailnum`, #> NULL AS `origin`, #> NULL AS `dest`, #> NULL AS `air_time`, #> NULL AS `distance`, #> NULL AS `hour`, #> NULL AS `minute`, #> NULL AS `time_hour` #> WHERE (0 = 1) #> #> UNION ALL #> #> VALUES #> (2013, 1, 10, 3, 2359, 4.0, 426, 437, -11.0, 'B6', 727, 'N571JB', 'JFK', 'BQN', 183.0, 1576.0, 23.0, 59.0, '2013-01-11T04:00:00Z'), #> (2013, 1, 10, 16, 2359, 17.0, 447, 444, 3.0, 'B6', 739, 'N564JB', 'JFK', 'PSE', 191.0, 1617.0, 23.0, 59.0, '2013-01-11T04:00:00Z'), #> (2013, 1, 10, 450, 500, -10.0, 634, 648, -14.0, 'US', 1117, 'N171US', 'EWR', 'CLT', 78.0, 529.0, 5.0, 0.0, '2013-01-10T10:00:00Z'), #> (2013, 1, 10, 520, 525, -5.0, 813, 820, -7.0, 'UA', 1018, 'N35204', 'EWR', 'IAH', 215.0, 1400.0, 5.0, 25.0, '2013-01-10T10:00:00Z'), #> (2013, 1, 10, 530, 530, 0.0, 824, 829, -5.0, 'UA', 404, 'N815UA', 'LGA', 'IAH', 210.0, 1416.0, 5.0, 30.0, '2013-01-10T10:00:00Z'), #> (2013, 1, 10, 531, 540, -9.0, 832, 850, -18.0, 'AA', 1141, 'N5EAAA', 'JFK', 'MIA', 149.0, 1089.0, 5.0, 40.0, '2013-01-10T10:00:00Z'), #> (2013, 1, 10, 535, 540, -5.0, 1015, 1017, -2.0, 'B6', 725, 'N784JB', 'JFK', 'BQN', 191.0, 1576.0, 5.0, 40.0, '2013-01-10T10:00:00Z'), #> (2013, 1, 10, 546, 600, -14.0, 645, 709, -24.0, 'B6', 380, 'N337JB', 'EWR', 'BOS', 39.0, 200.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 549, 600, -11.0, 652, 724, -32.0, 'EV', 6055, 'N19554', 'LGA', 'IAD', 48.0, 229.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 550, 600, -10.0, 649, 703, -14.0, 'US', 2114, 'N740UW', 'LGA', 'BOS', 36.0, 184.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 553, 600, -7.0, 711, 715, -4.0, 'EV', 5716, 'N909EV', 'JFK', 'IAD', 51.0, 228.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 553, 600, -7.0, 837, 910, -33.0, 'AA', 707, 'N3FRAA', 'LGA', 'DFW', 201.0, 1389.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 553, 600, -7.0, 834, 859, -25.0, 'B6', 507, 'N746JB', 'EWR', 'FLL', 144.0, 1065.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 553, 600, -7.0, 733, 759, -26.0, 'DL', 731, 'N349NB', 'LGA', 'DTW', 85.0, 502.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 555, 600, -5.0, 733, 745, -12.0, 'AA', 301, 'N3APAA', 'LGA', 'ORD', 126.0, 733.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 555, 605, -10.0, 746, 805, -19.0, 'MQ', 4401, 'N725MQ', 'LGA', 'DTW', 94.0, 502.0, 6.0, 5.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 555, 600, -5.0, 701, 659, 2.0, 'US', 2161, 'N756US', 'LGA', 'DCA', 42.0, 214.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 556, 600, -4.0, 903, 904, -1.0, 'B6', 371, 'N547JB', 'LGA', 'FLL', 147.0, 1076.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 556, 600, -4.0, 716, 730, -14.0, 'WN', 3223, 'N8327A', 'LGA', 'MDW', 120.0, 725.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 556, 600, -4.0, 823, 815, 8.0, 'FL', 345, 'N968AT', 'LGA', 'ATL', 121.0, 762.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 556, 600, -4.0, 818, 825, -7.0, 'MQ', 4650, 'N532MQ', 'LGA', 'ATL', 120.0, 762.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 557, 600, -3.0, 855, 912, -17.0, 'B6', 135, 'N564JB', 'JFK', 'RSW', 160.0, 1074.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 557, 600, -3.0, 933, 925, 8.0, 'UA', 303, 'N518UA', 'JFK', 'SFO', 371.0, 2586.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 558, 601, -3.0, 741, 725, 16.0, 'EV', 4708, 'N14902', 'EWR', 'MKE', 134.0, 725.0, 6.0, 1.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 558, 600, -2.0, 759, 801, -2.0, 'EV', 4911, 'N741EV', 'EWR', 'DTW', 99.0, 488.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 558, 600, -2.0, 844, 906, -22.0, 'B6', 125, 'N612JB', 'JFK', 'FLL', 144.0, 1069.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 559, 600, -1.0, 721, 716, 5.0, 'EV', 4201, 'N12195', 'EWR', 'IAD', 49.0, 212.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 559, 600, -1.0, 821, 837, -16.0, 'DL', 461, 'N663DN', 'LGA', 'ATL', 116.0, 762.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 559, 600, -1.0, 653, 658, -5.0, 'US', 1833, 'N959UW', 'JFK', 'PHL', 27.0, 94.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 600, 608, -8.0, 734, 755, -21.0, 'UA', 963, 'N830UA', 'EWR', 'CLE', 71.0, 404.0, 6.0, 8.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 601, 610, -9.0, 808, 818, -10.0, 'EV', 4941, 'N723EV', 'EWR', 'MSP', 169.0, 1008.0, 6.0, 10.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 603, 610, -7.0, 808, 817, -9.0, 'DL', 1919, 'N342NW', 'LGA', 'MSP', 155.0, 1020.0, 6.0, 10.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 603, 610, -7.0, 726, 735, -9.0, 'WN', 3839, 'N215WN', 'EWR', 'MDW', 121.0, 711.0, 6.0, 10.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 603, 608, -5.0, 711, 725, -14.0, 'UA', 370, 'N812UA', 'EWR', 'BOS', 39.0, 200.0, 6.0, 8.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 604, 610, -6.0, 851, 910, -19.0, 'AA', 1895, 'N5EGAA', 'EWR', 'MIA', 145.0, 1085.0, 6.0, 10.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 604, 610, -6.0, 858, 915, -17.0, 'AA', 1837, 'N3CDAA', 'LGA', 'MIA', 147.0, 1096.0, 6.0, 10.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 606, 615, -9.0, 740, 750, -10.0, 'MQ', 4518, 'N846MQ', 'LGA', 'RDU', 65.0, 431.0, 6.0, 15.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 607, 601, 6.0, 932, 918, 14.0, 'UA', 1030, 'N14107', 'JFK', 'LAX', 357.0, 2475.0, 6.0, 1.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 608, 607, 1.0, 811, 819, -8.0, 'EV', 4559, 'N16571', 'EWR', 'CVG', 99.0, 569.0, 6.0, 7.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 610, 610, 0.0, 844, 902, -18.0, 'B6', 145, 'N659JB', 'JFK', 'PBI', 138.0, 1028.0, 6.0, 10.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 610, 610, 0.0, 1028, 1051, -23.0, 'B6', 709, 'N775JB', 'JFK', 'SJU', 182.0, 1598.0, 6.0, 10.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 610, 615, -5.0, 800, 820, -20.0, 'US', 1791, 'N768US', 'JFK', 'CLT', 89.0, 541.0, 6.0, 15.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 613, 615, -2.0, 840, 855, -15.0, '9E', 3856, 'N170PQ', 'JFK', 'ATL', 122.0, 760.0, 6.0, 15.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 615, 615, 0.0, 846, 842, 4.0, 'DL', 575, 'N341NB', 'EWR', 'ATL', 119.0, 746.0, 6.0, 15.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 618, 625, -7.0, 726, 744, -18.0, 'EV', 4533, 'N12142', 'EWR', 'BUF', 53.0, 282.0, 6.0, 25.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 619, 630, -11.0, 814, 830, -16.0, 'MQ', 4576, 'N513MQ', 'LGA', 'CLT', 92.0, 544.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 620, 630, -10.0, 837, 859, -22.0, 'DL', 2006, 'N302NB', 'LGA', 'MSY', 175.0, 1183.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 620, 625, -5.0, 708, 730, -22.0, 'WN', 3127, 'N906WN', 'EWR', 'BWI', 35.0, 169.0, 6.0, 25.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 620, 630, -10.0, 855, 831, 24.0, 'US', 1125, 'N110UW', 'EWR', 'CLT', 84.0, 529.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 621, 630, -9.0, 902, 927, -25.0, 'B6', 71, 'N644JB', 'JFK', 'TPA', 142.0, 1005.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 621, 630, -9.0, 823, 830, -7.0, 'MQ', 4599, 'N501MQ', 'LGA', 'MSP', 165.0, 1020.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 621, 625, -4.0, 950, 934, 16.0, 'UA', 1663, 'N87527', 'LGA', 'IAH', 242.0, 1416.0, 6.0, 25.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 624, 630, -6.0, 840, 847, -7.0, 'EV', 4419, 'N13965', 'EWR', 'IND', 112.0, 645.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 624, 635, -11.0, 920, 934, -14.0, 'B6', 983, 'N645JB', 'LGA', 'TPA', 147.0, 1010.0, 6.0, 35.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 625, 630, -5.0, 753, 810, -17.0, 'AA', 303, 'N3EUAA', 'LGA', 'ORD', 121.0, 733.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 625, 630, -5.0, 818, 843, -25.0, 'US', 1433, 'N193UW', 'LGA', 'CLT', 89.0, 544.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 626, 630, -4.0, 802, 800, 2.0, 'EV', 4560, 'N10156', 'EWR', 'PIT', 60.0, 319.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 626, 630, -4.0, 900, 905, -5.0, 'WN', 135, 'N233LV', 'LGA', 'DEN', 249.0, 1620.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 627, 630, -3.0, 836, 845, -9.0, 'EV', 4471, 'N17108', 'EWR', 'CLT', 96.0, 529.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 627, 635, -8.0, 951, 1019, -28.0, 'UA', 849, 'N481UA', 'EWR', 'PHX', 307.0, 2133.0, 6.0, 35.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 628, 631, -3.0, 727, 741, -14.0, 'B6', 1002, 'N804JB', 'JFK', 'BOS', 38.0, 187.0, 6.0, 31.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 628, 635, -7.0, 920, 939, -19.0, 'UA', 1627, 'N17719', 'EWR', 'PBI', 148.0, 1023.0, 6.0, 35.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 629, 636, -7.0, 748, 808, -20.0, 'EV', 3839, 'N11194', 'EWR', 'BNA', 114.0, 748.0, 6.0, 36.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 629, 634, -5.0, 810, 822, -12.0, 'EV', 4334, 'N11150', 'EWR', 'CMH', 80.0, 463.0, 6.0, 34.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 632, 633, -1.0, 800, 813, -13.0, 'EV', 4424, 'N12569', 'EWR', 'RDU', 63.0, 416.0, 6.0, 33.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 632, 639, -7.0, 943, 957, -14.0, 'UA', 910, 'N848UA', 'EWR', 'AUS', 233.0, 1504.0, 6.0, 39.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 632, 635, -3.0, 1008, 1002, 6.0, 'UA', 421, 'N471UA', 'EWR', 'SFO', 374.0, 2565.0, 6.0, 35.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 633, 630, 3.0, 1142, 1140, 2.0, 'AA', 413, 'N3GBAA', 'JFK', 'SJU', 193.0, 1598.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 633, 625, 8.0, 907, 916, -9.0, 'B6', 79, 'N634JB', 'JFK', 'MCO', 132.0, 944.0, 6.0, 25.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 636, 636, 0.0, 927, 945, -18.0, 'UA', 1701, 'N77296', 'EWR', 'FLL', 148.0, 1065.0, 6.0, 36.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 640, 640, 0.0, 856, 900, -4.0, 'EV', 4122, 'N12552', 'EWR', 'SDF', 111.0, 642.0, 6.0, 40.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 641, 645, -4.0, 859, 920, -21.0, 'UA', 338, 'N414UA', 'LGA', 'DEN', 230.0, 1620.0, 6.0, 45.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 642, 645, -3.0, 759, 757, 2.0, 'EV', 4241, 'N13949', 'EWR', 'DCA', 49.0, 199.0, 6.0, 45.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 642, 645, -3.0, 754, 808, -14.0, 'B6', 102, 'N570JB', 'JFK', 'BUF', 59.0, 301.0, 6.0, 45.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 642, 645, -3.0, 841, 846, -5.0, 'US', 926, 'N177US', 'EWR', 'CLT', 90.0, 529.0, 6.0, 45.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 651, 655, -4.0, 1009, 1030, -21.0, 'DL', 1415, 'N383DN', 'JFK', 'SLC', 283.0, 1990.0, 6.0, 55.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 651, 659, -8.0, 946, 938, 8.0, 'DL', 1547, 'N680DA', 'LGA', 'ATL', 122.0, 762.0, 6.0, 59.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 651, 700, -9.0, 756, 807, -11.0, 'US', 2116, 'N948UW', 'LGA', 'BOS', 37.0, 184.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 652, 659, -7.0, 942, 959, -17.0, 'AA', 1815, 'N5FAAA', 'JFK', 'MCO', 140.0, 944.0, 6.0, 59.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 653, 700, -7.0, 949, 1019, -30.0, 'DL', 2003, 'N967DL', 'LGA', 'MIA', 149.0, 1096.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 653, 700, -7.0, 834, 836, -2.0, 'UA', 1162, 'N38268', 'EWR', 'ORD', 122.0, 719.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 654, 705, -11.0, 940, 940, 0.0, 'MQ', 4534, 'N722MQ', 'LGA', 'XNA', 178.0, 1147.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 654, 700, -6.0, 802, 807, -5.0, 'US', 2163, 'N749US', 'LGA', 'DCA', 55.0, 214.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 655, 700, -5.0, 938, 952, -14.0, 'DL', 2285, 'N317NB', 'LGA', 'MCO', 129.0, 950.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 655, 700, -5.0, 1025, 1045, -20.0, 'DL', 1865, 'N713TW', 'JFK', 'SFO', 355.0, 2586.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 655, 700, -5.0, 1003, 1014, -11.0, 'DL', 1879, 'N369NW', 'LGA', 'FLL', 160.0, 1076.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 655, 654, 1.0, 911, 913, -2.0, 'UA', 1122, 'N75436', 'EWR', 'DEN', 235.0, 1605.0, 6.0, 54.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 658, 700, -2.0, 758, 815, -17.0, 'UA', 1142, 'N77295', 'EWR', 'BOS', 35.0, 200.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 659, 700, -1.0, 1013, 1015, -2.0, 'AA', 2279, 'N3CHAA', 'LGA', 'MIA', 145.0, 1096.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 659, 700, -1.0, 1006, 1034, -28.0, 'DL', 763, 'N705TW', 'JFK', 'LAX', 335.0, 2475.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 700, 700, 0.0, 837, 850, -13.0, 'AA', 305, 'N466AA', 'LGA', 'ORD', 128.0, 733.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 700, 705, -5.0, 1007, 1015, -8.0, 'WN', 3483, 'N494WN', 'EWR', 'HOU', 229.0, 1411.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 700, 700, 0.0, 831, 839, -8.0, 'UA', 550, 'N463UA', 'LGA', 'ORD', 123.0, 733.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 702, 705, -3.0, 1020, 1035, -15.0, 'VX', 399, 'N638VA', 'JFK', 'LAX', 346.0, 2475.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 702, 705, -3.0, 1035, 1034, 1.0, 'UA', 1655, 'N39728', 'EWR', 'SNA', 369.0, 2434.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 703, 700, 3.0, 1006, 1027, -21.0, 'B6', 671, 'N809JB', 'JFK', 'LAX', 342.0, 2475.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 703, 710, -7.0, 842, 850, -8.0, 'MQ', 3737, 'N8EGMQ', 'EWR', 'ORD', 121.0, 719.0, 7.0, 10.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 703, 705, -2.0, 943, 948, -5.0, 'UA', 1506, 'N73406', 'EWR', 'LAS', 313.0, 2227.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 704, 705, -1.0, 912, 933, -21.0, 'EV', 4583, 'N11187', 'EWR', 'MSY', 168.0, 1167.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 704, 634, 30.0, 1005, 935, 30.0, 'UA', 772, 'N526UA', 'EWR', 'MIA', 153.0, 1085.0, 6.0, 34.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 705, 710, -5.0, 1158, 1203, -5.0, 'B6', 715, 'N649JB', 'JFK', 'SJU', 187.0, 1598.0, 7.0, 10.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 705, 705, 0.0, 1037, 1018, 19.0, 'UA', 604, 'N562UA', 'EWR', 'LAX', 350.0, 2454.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 706, 720, -14.0, 842, 845, -3.0, 'FL', 850, 'N975AT', 'LGA', 'MKE', 118.0, 738.0, 7.0, 20.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 707, 715, -8.0, 1014, 1045, -31.0, 'AA', 443, 'N639AA', 'JFK', 'MIA', 152.0, 1089.0, 7.0, 15.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 709, 705, 4.0, 940, 1000, -20.0, 'UA', 235, 'N428UA', 'EWR', 'MCO', 132.0, 937.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 710, 715, -5.0, 1051, 1040, 11.0, 'UA', 799, 'N502UA', 'JFK', 'SFO', 360.0, 2586.0, 7.0, 15.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 713, 715, -2.0, 1022, 1035, -13.0, 'AA', 825, 'N3FAAA', 'JFK', 'FLL', 156.0, 1069.0, 7.0, 15.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 714, 720, -6.0, 914, 928, -14.0, 'DL', 831, 'N957DL', 'LGA', 'DTW', 85.0, 502.0, 7.0, 20.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 718, 720, -2.0, 911, 920, -9.0, 'EV', 4246, 'N14904', 'EWR', 'DTW', 92.0, 488.0, 7.0, 20.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 718, 720, -2.0, 1003, 1023, -20.0, 'UA', 1724, 'N27239', 'EWR', 'PBI', 142.0, 1023.0, 7.0, 20.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 719, 725, -6.0, 1011, 1030, -19.0, 'AS', 11, 'N513AS', 'EWR', 'SEA', 334.0, 2402.0, 7.0, 25.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 719, 729, -10.0, 833, 850, -17.0, 'B6', 1305, 'N190JB', 'JFK', 'IAD', 48.0, 228.0, 7.0, 29.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 721, 730, -9.0, 1006, 1100, -54.0, 'AA', 33, 'N335AA', 'JFK', 'LAX', 318.0, 2475.0, 7.0, 30.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 721, 705, 16.0, 1024, 1021, 3.0, 'B6', 981, 'N639JB', 'JFK', 'FLL', 153.0, 1069.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 721, 730, -9.0, 1020, 1045, -25.0, 'UA', 10, 'N78524', 'LGA', 'IAH', 210.0, 1416.0, 7.0, 30.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 722, 730, -8.0, 1020, 1040, -20.0, 'AA', 715, 'N4YGAA', 'LGA', 'DFW', 200.0, 1389.0, 7.0, 30.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 723, 730, -7.0, 1003, 1040, -37.0, 'AA', 2083, 'N433AA', 'EWR', 'DFW', 201.0, 1372.0, 7.0, 30.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 724, 715, 9.0, 1023, 1027, -4.0, 'UA', 1299, 'N24212', 'EWR', 'RSW', 155.0, 1068.0, 7.0, 15.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 727, 735, -8.0, 1026, 1047, -21.0, 'B6', 341, 'N592JB', 'JFK', 'SRQ', 150.0, 1041.0, 7.0, 35.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 727, 730, -3.0, 954, 1004, -10.0, 'DL', 807, 'N322NB', 'EWR', 'ATL', 114.0, 746.0, 7.0, 30.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 727, 730, -3.0, 1101, 1115, -14.0, 'VX', 11, 'N844VA', 'JFK', 'SFO', 365.0, 2586.0, 7.0, 30.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 728, 705, 23.0, 1003, 1002, 1.0, 'B6', 389, 'N507JB', 'LGA', 'MCO', 129.0, 950.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 732, 740, -8.0, 1031, 1105, -34.0, 'DL', 1889, 'N706TW', 'JFK', 'SEA', 329.0, 2422.0, 7.0, 40.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 737, 740, -3.0, 1033, 1045, -12.0, 'UA', 1179, 'N37273', 'EWR', 'TPA', 152.0, 997.0, 7.0, 40.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 737, 740, -3.0, 1011, 1050, -39.0, 'UA', 1410, 'N45440', 'EWR', 'IAH', 197.0, 1400.0, 7.0, 40.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 738, 745, -7.0, 902, 930, -28.0, 'AA', 309, 'N593AA', 'LGA', 'ORD', 118.0, 733.0, 7.0, 45.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 739, 740, -1.0, 925, 927, -2.0, 'EV', 4099, 'N22971', 'EWR', 'STL', 145.0, 872.0, 7.0, 40.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 742, 747, -5.0, 1113, 1126, -13.0, 'B6', 643, 'N768JB', 'JFK', 'SFO', 367.0, 2586.0, 7.0, 47.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 742, 745, -3.0, 1214, 1234, -20.0, 'UA', 1481, 'N75854', 'EWR', 'SJU', 189.0, 1608.0, 7.0, 45.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 742, 745, -3.0, 901, 922, -21.0, 'UA', 560, 'N570UA', 'EWR', 'ORD', 119.0, 719.0, 7.0, 45.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 743, 630, 73.0, 915, 810, 65.0, 'B6', 905, 'N193JB', 'JFK', 'ORD', 128.0, 740.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 746, 750, -4.0, 925, 940, -15.0, '9E', 3611, 'N801AY', 'JFK', 'PIT', 69.0, 340.0, 7.0, 50.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 746, 753, -7.0, 936, 1006, -30.0, 'DL', 2119, 'N334NB', 'LGA', 'MSP', 153.0, 1020.0, 7.0, 53.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 747, 757, -10.0, 907, 910, -3.0, 'B6', 44, 'N623JB', 'JFK', 'SYR', 49.0, 209.0, 7.0, 57.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 748, 755, -7.0, 945, 1012, -27.0, '9E', 4023, 'N8855A', 'EWR', 'CVG', 96.0, 569.0, 7.0, 55.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 749, 759, -10.0, 1015, 1010, 5.0, 'EV', 4214, 'N11137', 'EWR', 'MSP', 182.0, 1008.0, 7.0, 59.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 749, 759, -10.0, 855, 916, -21.0, 'EV', 4392, 'N17560', 'EWR', 'SYR', 38.0, 195.0, 7.0, 59.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 751, 755, -4.0, 1055, 1110, -15.0, 'AA', 2267, 'N3DYAA', 'LGA', 'MIA', 156.0, 1096.0, 7.0, 55.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 754, 759, -5.0, 1024, 1039, -15.0, 'DL', 2047, 'N687DL', 'LGA', 'ATL', 116.0, 762.0, 7.0, 59.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 755, 800, -5.0, 1121, 1125, -4.0, 'UA', 397, 'N512UA', 'JFK', 'SFO', 358.0, 2586.0, 8.0, 0.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 755, 759, -4.0, 1002, 1011, -9.0, 'US', 1733, 'N180US', 'LGA', 'CLT', 87.0, 544.0, 7.0, 59.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 755, 800, -5.0, 851, 908, -17.0, 'US', 2118, 'N949UW', 'LGA', 'BOS', 35.0, 184.0, 8.0, 0.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 755, 800, -5.0, 858, 917, -19.0, 'US', 2165, 'N711UW', 'LGA', 'DCA', 44.0, 214.0, 8.0, 0.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 756, 755, 1.0, 917, 930, -13.0, 'WN', 3935, 'N291WN', 'LGA', 'MDW', 122.0, 725.0, 7.0, 55.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 756, 759, -3.0, 1022, 1025, -3.0, 'UA', 429, 'N545UA', 'LGA', 'DEN', 238.0, 1620.0, 7.0, 59.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 757, 803, -6.0, 1007, 1025, -18.0, 'EV', 4393, 'N27152', 'EWR', 'OMA', 172.0, 1134.0, 8.0, 3.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 757, 759, -2.0, 1101, 1115, -14.0, 'UA', 1539, 'N15710', 'EWR', 'DFW', 209.0, 1372.0, 7.0, 59.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 758, 803, -5.0, 908, 918, -10.0, 'EV', 4233, 'N16919', 'EWR', 'BTV', 47.0, 266.0, 8.0, 3.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 758, 759, -1.0, 916, 909, 7.0, 'EV', 4457, 'N15572', 'EWR', 'MHT', 49.0, 209.0, 7.0, 59.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 758, 800, -2.0, 1018, 1054, -36.0, 'B6', 517, 'N565JB', 'EWR', 'MCO', 128.0, 937.0, 8.0, 0.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 758, 800, -2.0, 1051, 1122, -31.0, 'DL', 1271, 'N937DL', 'JFK', 'FLL', 147.0, 1069.0, 8.0, 0.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 759, 807, -8.0, 947, 1010, -23.0, 'B6', 219, 'N249JB', 'JFK', 'CLT', 85.0, 541.0, 8.0, 7.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 759, 810, -11.0, 1036, 1044, -8.0, 'FL', 346, 'N960AT', 'LGA', 'ATL', 117.0, 762.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 800, 810, -10.0, 900, 924, -24.0, 'B6', 1172, 'N229JB', 'EWR', 'BOS', 40.0, 200.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 800, 805, -5.0, 1101, 1113, -12.0, 'B6', 17, 'N715JB', 'JFK', 'FLL', 149.0, 1069.0, 8.0, 5.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 800, 800, 0.0, 1056, 1124, -28.0, 'DL', 2143, 'N358NW', 'JFK', 'MIA', 154.0, 1089.0, 8.0, 0.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 800, 800, 0.0, 1131, 1140, -9.0, 'WN', 1558, 'N400WN', 'EWR', 'PHX', 312.0, 2133.0, 8.0, 0.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 802, 745, 17.0, 1144, 1125, 19.0, 'AA', 59, 'N332AA', 'JFK', 'SFO', 379.0, 2586.0, 7.0, 45.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 803, 810, -7.0, 937, 955, -18.0, 'MQ', 4406, 'N835MQ', 'JFK', 'RDU', 69.0, 427.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 804, 810, -6.0, 958, 1007, -9.0, 'EV', 4537, 'N16961', 'EWR', 'MEM', 153.0, 946.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 805, 805, 0.0, 1016, 1029, -13.0, '9E', 3538, 'N602LR', 'JFK', 'MSP', 170.0, 1029.0, 8.0, 5.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 805, 700, 65.0, 1044, 957, 47.0, 'B6', 203, 'N521JB', 'JFK', 'LAS', 309.0, 2248.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 805, 810, -5.0, 1044, 1116, -32.0, 'DL', 1959, 'N993DL', 'JFK', 'MCO', 129.0, 944.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 806, 822, -16.0, 1004, 1019, -15.0, 'EV', 4691, 'N18557', 'EWR', 'DAY', 92.0, 533.0, 8.0, 22.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 806, 815, -9.0, 955, 1010, -15.0, 'MQ', 4490, 'N737MQ', 'LGA', 'CMH', 84.0, 479.0, 8.0, 15.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 806, 809, -3.0, 1116, 1112, 4.0, 'UA', 1626, 'N24211', 'EWR', 'SAN', 344.0, 2425.0, 8.0, 9.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 807, 810, -3.0, 1247, 1315, -28.0, 'AA', 655, 'N5FLAA', 'JFK', 'STT', 194.0, 1623.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 807, 812, -5.0, 948, 950, -2.0, 'B6', 1051, 'N206JB', 'JFK', 'PIT', 71.0, 340.0, 8.0, 12.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 808, 810, -2.0, 913, 925, -12.0, 'AA', 1838, 'N3CJAA', 'JFK', 'BOS', 38.0, 187.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 808, 815, -7.0, 1006, 1015, -9.0, 'US', 675, 'N647AW', 'EWR', 'CLT', 86.0, 529.0, 8.0, 15.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 809, 815, -6.0, 947, 958, -11.0, '9E', 3521, 'N914XJ', 'JFK', 'ORD', 127.0, 740.0, 8.0, 15.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 809, 810, -1.0, 1041, 1042, -1.0, 'DL', 269, 'N361NB', 'JFK', 'ATL', 111.0, 760.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 809, 817, -8.0, 1101, 1127, -26.0, 'DL', 1109, 'N309US', 'LGA', 'TPA', 145.0, 1010.0, 8.0, 17.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 809, 815, -6.0, 1043, 1118, -35.0, 'DL', 1429, 'N3736C', 'JFK', 'LAS', 315.0, 2248.0, 8.0, 15.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 809, 815, -6.0, 1046, 1131, -45.0, 'DL', 1167, 'N303DQ', 'JFK', 'TPA', 143.0, 1005.0, 8.0, 15.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 810, 827, -17.0, 955, 1031, -36.0, 'EV', 4652, 'N14173', 'EWR', 'MYR', 81.0, 550.0, 8.0, 27.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 814, 820, -6.0, 924, 939, -15.0, '9E', 4051, 'N8836A', 'JFK', 'BWI', 39.0, 184.0, 8.0, 20.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 814, 817, -3.0, 1037, 1058, -21.0, 'DL', 914, 'N376NW', 'LGA', 'DEN', 229.0, 1620.0, 8.0, 17.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 815, 820, -5.0, 943, 958, -15.0, '9E', 3317, 'N904XJ', 'JFK', 'BUF', 61.0, 301.0, 8.0, 20.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 818, 819, -1.0, 1251, 1307, -16.0, 'B6', 717, 'N729JB', 'JFK', 'SJU', 189.0, 1598.0, 8.0, 19.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 818, 820, -2.0, 943, 955, -12.0, 'MQ', 4655, 'N500MQ', 'LGA', 'BNA', 121.0, 764.0, 8.0, 20.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 820, 825, -5.0, 929, 945, -16.0, 'MQ', 4418, 'N854MQ', 'JFK', 'DCA', 51.0, 213.0, 8.0, 25.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 822, 830, -8.0, 951, 1015, -24.0, 'AA', 313, 'N4XNAA', 'LGA', 'ORD', 121.0, 733.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 822, 828, -6.0, 1056, 1105, -9.0, 'B6', 611, 'N317JB', 'JFK', 'JAX', 122.0, 828.0, 8.0, 28.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 823, 834, -11.0, 1041, 1039, 2.0, 'EV', 4230, 'N12924', 'EWR', 'GRR', 106.0, 605.0, 8.0, 34.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 823, 830, -7.0, 1010, 1025, -15.0, 'AA', 1855, 'N476AA', 'LGA', 'STL', 143.0, 888.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 823, 825, -2.0, 1027, 1026, 1.0, 'US', 487, 'N675AW', 'JFK', 'CLT', 93.0, 541.0, 8.0, 25.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 824, 829, -5.0, 1001, 1012, -11.0, 'EV', 3815, 'N21537', 'EWR', 'GSO', 72.0, 445.0, 8.0, 29.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 824, 830, -6.0, 953, 1023, -30.0, '9E', 4220, 'N8907A', 'JFK', 'RDU', 68.0, 427.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 825, 825, 0.0, 1128, 1137, -9.0, 'B6', 181, 'N655JB', 'JFK', 'SAN', 341.0, 2446.0, 8.0, 25.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 825, 827, -2.0, 1122, 1140, -18.0, 'DL', 2395, 'N331NW', 'LGA', 'PBI', 141.0, 1035.0, 8.0, 27.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 825, 830, -5.0, 1113, 1154, -41.0, 'UA', 112, 'N48127', 'JFK', 'LAX', 325.0, 2475.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 826, 830, -4.0, 950, 950, 0.0, 'WN', 369, 'N221WN', 'EWR', 'MDW', 123.0, 711.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 827, 830, -3.0, 1103, 1106, -3.0, 'F9', 835, 'N214FR', 'LGA', 'DEN', 236.0, 1620.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 827, 835, -8.0, 1058, 1105, -7.0, 'MQ', 4610, 'N3AEMQ', 'LGA', 'ATL', 115.0, 762.0, 8.0, 35.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 827, 835, -8.0, 1200, 1215, -15.0, 'UA', 1480, 'N33294', 'EWR', 'SFO', 373.0, 2565.0, 8.0, 35.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 828, 830, -2.0, 1258, 1335, -37.0, 'DL', 301, 'N633DL', 'JFK', 'SJU', 184.0, 1598.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 828, 830, -2.0, 1130, 1146, -16.0, 'UA', 1601, 'N73291', 'EWR', 'FLL', 148.0, 1065.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 829, 835, -6.0, 1122, 1150, -28.0, 'AA', 717, 'N3ERAA', 'LGA', 'DFW', 187.0, 1389.0, 8.0, 35.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 830, 829, 1.0, 947, 955, -8.0, 'EV', 3259, 'N12922', 'EWR', 'PWM', 52.0, 284.0, 8.0, 29.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 833, 840, -7.0, 936, 1003, -27.0, '9E', 3422, 'N605LR', 'JFK', 'BOS', 36.0, 187.0, 8.0, 40.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 835, 834, 1.0, 1124, 1137, -13.0, 'UA', 1117, 'N37456', 'EWR', 'MCO', 134.0, 937.0, 8.0, 34.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 836, 840, -4.0, 944, 959, -15.0, 'UA', 1268, 'N87513', 'EWR', 'BOS', 38.0, 200.0, 8.0, 40.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 838, 843, -5.0, 1118, 1115, 3.0, 'EV', 4388, 'N26549', 'EWR', 'JAX', 124.0, 820.0, 8.0, 43.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 838, 840, -2.0, 1023, 1030, -7.0, 'EV', 4548, 'N19966', 'EWR', 'RDU', 71.0, 416.0, 8.0, 40.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 839, 845, -6.0, 1013, 1006, 7.0, 'EV', 4409, 'N14568', 'EWR', 'RIC', 52.0, 277.0, 8.0, 45.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 839, 845, -6.0, 940, 1015, -35.0, '9E', 3405, 'N928XJ', 'JFK', 'DCA', 44.0, 213.0, 8.0, 45.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 839, 840, -1.0, 1135, 1204, -29.0, 'B6', 553, 'N627JB', 'EWR', 'RSW', 145.0, 1068.0, 8.0, 40.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 839, 845, -6.0, 1036, 1057, -21.0, 'US', 1429, 'N722US', 'LGA', 'CLT', 87.0, 544.0, 8.0, 45.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 843, 845, -2.0, 1316, 1350, -34.0, 'AA', 1357, 'N5FFAA', 'JFK', 'SJU', 191.0, 1598.0, 8.0, 45.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 847, 855, -8.0, 1111, 1101, 10.0, 'EV', 4383, 'N14158', 'EWR', 'DTW', 102.0, 488.0, 8.0, 55.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 847, 850, -3.0, 1120, 1113, 7.0, 'EV', 4376, 'N11109', 'EWR', 'XNA', 173.0, 1131.0, 8.0, 50.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 850, 855, -5.0, 1051, 1102, -11.0, 'EV', 4913, 'N134EV', 'EWR', 'DTW', 84.0, 488.0, 8.0, 55.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 851, 858, -7.0, 1134, 1118, 16.0, 'EV', 4364, 'N27190', 'EWR', 'MCI', 173.0, 1092.0, 8.0, 58.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 851, 855, -4.0, 1200, 1217, -17.0, 'B6', 1061, 'N281JB', 'JFK', 'AUS', 234.0, 1521.0, 8.0, 55.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 852, 900, -8.0, 1004, 1020, -16.0, 'US', 2120, 'N957UW', 'LGA', 'BOS', 37.0, 184.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 852, 900, -8.0, 1004, 1022, -18.0, 'US', 2167, 'N760US', 'LGA', 'DCA', 44.0, 214.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 854, 903, -9.0, 1127, 1146, -19.0, 'UA', 565, 'N571UA', 'EWR', 'LAS', 296.0, 2227.0, 9.0, 3.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 855, 900, -5.0, 1234, 1227, 7.0, 'DL', 120, 'N727TW', 'JFK', 'LAX', 354.0, 2475.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 855, 900, -5.0, 1056, 1116, -20.0, 'DL', 181, 'N318US', 'LGA', 'DTW', 89.0, 502.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 855, 857, -2.0, 1206, 1209, -3.0, 'UA', 714, 'N410UA', 'EWR', 'MIA', 146.0, 1085.0, 8.0, 57.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 855, 900, -5.0, 1213, 1216, -3.0, 'UA', 1405, 'N27724', 'LGA', 'IAH', 212.0, 1416.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 855, 900, -5.0, 1034, 1048, -14.0, 'UA', 225, 'N821UA', 'EWR', 'ORD', 123.0, 719.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 856, 900, -4.0, 1159, 1220, -21.0, 'AA', 1, 'N336AA', 'JFK', 'LAX', 328.0, 2475.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 857, 900, -3.0, 1130, 1135, -5.0, 'DL', 485, 'N306DQ', 'EWR', 'ATL', 119.0, 746.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 857, 840, 17.0, 1040, 1030, 10.0, 'MQ', 4521, 'N713MQ', 'LGA', 'RDU', 73.0, 431.0, 8.0, 40.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 857, 900, -3.0, 1137, 1133, 4.0, 'UA', 1643, 'N33103', 'EWR', 'DEN', 236.0, 1605.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 858, 900, -2.0, 1142, 1159, -17.0, 'B6', 59, 'N657JB', 'JFK', 'TPA', 144.0, 1005.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 858, 859, -1.0, 1133, 1145, -12.0, 'DL', 1747, 'N665DN', 'LGA', 'ATL', 115.0, 762.0, 8.0, 59.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 858, 859, -1.0, 1153, 1159, -6.0, 'UA', 430, 'N458UA', 'EWR', 'TPA', 142.0, 997.0, 8.0, 59.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 859, 900, -1.0, 1449, 1530, -41.0, 'HA', 51, 'N388HA', 'JFK', 'HNL', 633.0, 4983.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 859, 900, -1.0, 1155, 1205, -10.0, 'DL', 1885, 'N344NW', 'LGA', 'MCO', 132.0, 950.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 859, 905, -6.0, 1118, 1115, 3.0, 'MQ', 4478, 'N730MQ', 'LGA', 'DTW', 103.0, 502.0, 9.0, 5.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 859, 904, -5.0, 1058, 1053, 5.0, 'UA', 1602, 'N77518', 'EWR', 'CLE', 75.0, 404.0, 9.0, 4.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 900, 900, 0.0, 1205, 1220, -15.0, 'AA', 647, 'N5DEAA', 'JFK', 'MIA', 151.0, 1089.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 900, 905, -5.0, 1219, 1226, -7.0, 'DL', 2379, 'N347NB', 'LGA', 'FLL', 157.0, 1076.0, 9.0, 5.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 904, 908, -4.0, 1115, 1120, -5.0, 'EV', 4638, 'N36915', 'EWR', 'CVG', 94.0, 569.0, 9.0, 8.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 904, 906, -2.0, 1216, 1216, 0.0, 'UA', 634, 'N435UA', 'EWR', 'PBI', 152.0, 1023.0, 9.0, 6.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 907, 915, -8.0, 1053, 1101, -8.0, 'B6', 1103, 'N239JB', 'JFK', 'RDU', 74.0, 427.0, 9.0, 15.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 907, 857, 10.0, 1219, 1204, 15.0, 'UA', 1194, 'N37464', 'EWR', 'IAH', 213.0, 1400.0, 8.0, 57.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 907, 908, -1.0, 1403, 1409, -6.0, 'UA', 1519, 'N75435', 'EWR', 'STT', 196.0, 1634.0, 9.0, 8.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 908, 905, 3.0, 1019, 1029, -10.0, 'B6', 20, 'N346JB', 'JFK', 'ROC', 57.0, 264.0, 9.0, 5.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 909, 905, 4.0, 1018, 1023, -5.0, 'B6', 56, 'N298JB', 'JFK', 'BTV', 52.0, 266.0, 9.0, 5.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 910, 920, -10.0, 1113, 1125, -12.0, 'MQ', 4582, 'N503MQ', 'LGA', 'CLT', 84.0, 544.0, 9.0, 20.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 912, 915, -3.0, 1219, 1225, -6.0, 'B6', 25, 'N595JB', 'JFK', 'FLL', 157.0, 1069.0, 9.0, 15.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 914, 920, -6.0, 1216, 1245, -29.0, 'AA', 721, 'N576AA', 'LGA', 'DFW', 206.0, 1389.0, 9.0, 20.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 914, 920, -6.0, 1221, 1240, -19.0, 'AA', 1589, 'N596AA', 'EWR', 'DFW', 202.0, 1372.0, 9.0, 20.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 916, 929, -13.0, 1035, 1044, -9.0, 'EV', 4636, 'N14907', 'EWR', 'DCA', 42.0, 199.0, 9.0, 29.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 916, 920, -4.0, 1237, 1233, 4.0, 'UA', 1275, 'N77871', 'EWR', 'LAX', 331.0, 2454.0, 9.0, 20.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 917, 921, -4.0, 1010, 1029, -19.0, 'B6', 1004, 'N665JB', 'JFK', 'BOS', 38.0, 187.0, 9.0, 21.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 917, 655, 142.0, 1144, 927, 137.0, 'B6', 117, 'N643JB', 'JFK', 'MSY', 188.0, 1182.0, 6.0, 55.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 919, 929, -10.0, 1425, 1427, -2.0, 'B6', 215, 'N658JB', 'EWR', 'SJU', 194.0, 1608.0, 9.0, 29.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 920, 929, -9.0, 1200, 1206, -6.0, 'EV', 4140, 'N12967', 'EWR', 'ATL', 122.0, 746.0, 9.0, 29.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 921, 930, -9.0, 1050, 1103, -13.0, '9E', 3661, 'N8623A', 'JFK', 'ROC', 56.0, 264.0, 9.0, 30.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 921, 935, -14.0, 1202, 1235, -33.0, 'VX', 251, 'N848VA', 'JFK', 'LAS', 324.0, 2248.0, 9.0, 35.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 923, 924, -1.0, 1125, 1118, 7.0, 'EV', 4234, 'N13979', 'EWR', 'STL', 141.0, 872.0, 9.0, 24.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 923, 928, -5.0, 1040, 1051, -11.0, 'B6', 4, 'N632JB', 'JFK', 'BUF', 61.0, 301.0, 9.0, 28.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 926, 855, 31.0, 1132, 1104, 28.0, '9E', 3353, 'N906XJ', 'JFK', 'DTW', 90.0, 509.0, 8.0, 55.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 929, 731, 118.0, 1240, 1045, 115.0, 'B6', 1601, 'N597JB', 'LGA', 'RSW', 156.0, 1080.0, 7.0, 31.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 932, 930, 2.0, 1225, 1246, -21.0, 'B6', 375, 'N556JB', 'LGA', 'FLL', 152.0, 1076.0, 9.0, 30.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 935, 940, -5.0, 1228, 1250, -22.0, 'AA', 1871, 'N3DXAA', 'LGA', 'MIA', 145.0, 1096.0, 9.0, 40.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 938, 950, -12.0, 1052, 1104, -12.0, 'B6', 600, 'N337JB', 'JFK', 'PWM', 50.0, 273.0, 9.0, 50.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 939, 945, -6.0, 1105, 1130, -25.0, 'AA', 319, 'N4YKAA', 'LGA', 'ORD', 118.0, 733.0, 9.0, 45.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 939, 905, 34.0, 1259, 1235, 24.0, 'VX', 407, 'N622VA', 'JFK', 'LAX', 349.0, 2475.0, 9.0, 5.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 940, 950, -10.0, 1208, 1210, -2.0, '9E', 3961, 'N8808H', 'LGA', 'GRR', 107.0, 618.0, 9.0, 50.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 945, 945, 0.0, 1102, 1135, -33.0, 'WN', 469, 'N474WN', 'LGA', 'BNA', 117.0, 764.0, 9.0, 45.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 945, 850, 55.0, 1119, 1035, 44.0, 'MQ', 4558, 'N723MQ', 'LGA', 'CLE', 68.0, 419.0, 8.0, 50.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 945, 955, -10.0, 1236, 1246, -10.0, 'UA', 1597, 'N38727', 'EWR', 'EGE', 267.0, 1726.0, 9.0, 55.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 948, 957, -9.0, 1101, 1125, -24.0, 'EV', 4187, 'N17169', 'EWR', 'BNA', 110.0, 748.0, 9.0, 57.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 949, 935, 14.0, 1217, 1231, -14.0, 'B6', 41, 'N568JB', 'JFK', 'MCO', 127.0, 944.0, 9.0, 35.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 949, 950, -1.0, 1119, 1130, -11.0, 'WN', 1964, 'N7702A', 'LGA', 'MKE', 127.0, 738.0, 9.0, 50.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 951, 958, -7.0, 1125, 1137, -12.0, 'UA', 258, 'N818UA', 'LGA', 'ORD', 123.0, 733.0, 9.0, 58.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 952, 1000, -8.0, 1051, 1108, -17.0, 'US', 2122, 'N945UW', 'LGA', 'BOS', 34.0, 184.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 953, 1000, -7.0, 1239, 1305, -26.0, 'B6', 503, 'N589JB', 'EWR', 'FLL', 146.0, 1065.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 953, 959, -6.0, 1128, 1129, -1.0, 'MQ', 4670, 'N526MQ', 'LGA', 'BNA', 118.0, 764.0, 9.0, 59.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 954, 955, -1.0, 1046, 1100, -14.0, '9E', 3667, 'N8974C', 'JFK', 'PHL', 29.0, 94.0, 9.0, 55.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 955, 1006, -11.0, 1205, 1219, -14.0, 'EV', 4250, 'N13949', 'EWR', 'IND', 114.0, 645.0, 10.0, 6.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 955, 925, 30.0, 1203, 1150, 13.0, 'WN', 3494, 'N790SW', 'EWR', 'DEN', 240.0, 1605.0, 9.0, 25.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 955, 955, 0.0, 1241, 1220, 21.0, 'MQ', 4654, 'N537MQ', 'LGA', 'ATL', 120.0, 762.0, 9.0, 55.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 956, 1000, -4.0, 1254, 1321, -27.0, 'UA', 499, 'N430UA', 'EWR', 'SEA', 332.0, 2402.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 957, 959, -2.0, 1314, 1248, 26.0, 'B6', 197, 'N603JB', 'JFK', 'LAS', 319.0, 2248.0, 9.0, 59.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 957, 1000, -3.0, 1245, 1239, 6.0, 'DL', 1847, 'N623DL', 'LGA', 'ATL', 130.0, 762.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 957, 1000, -3.0, 1202, 1209, -7.0, 'US', 1277, 'N769US', 'LGA', 'CLT', 89.0, 544.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 958, 1005, -7.0, 1243, 1303, -20.0, 'DL', 1529, 'N385DN', 'JFK', 'LAS', 325.0, 2248.0, 10.0, 5.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 958, 1000, -2.0, 1104, 1121, -17.0, 'US', 2169, 'N756US', 'LGA', 'DCA', 43.0, 214.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 959, 1000, -1.0, 1304, 1310, -6.0, 'UA', 789, 'N498UA', 'EWR', 'FLL', 165.0, 1065.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 959, 959, 0.0, 1319, 1333, -14.0, 'US', 450, 'N665AW', 'JFK', 'PHX', 294.0, 2153.0, 9.0, 59.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 1000, 1000, 0.0, 1239, 1254, -15.0, 'UA', 1623, 'N76508', 'EWR', 'MCO', 134.0, 937.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1004, 1010, -6.0, 1127, 1140, -13.0, 'MQ', 3795, 'N509MQ', 'EWR', 'ORD', 117.0, 719.0, 10.0, 10.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1006, 1000, 6.0, 1328, 1341, -13.0, 'DL', 1765, 'N722TW', 'JFK', 'SFO', 356.0, 2586.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1007, 1015, -8.0, 1323, 1334, -11.0, 'UA', 1171, 'N14629', 'LGA', 'IAH', 210.0, 1416.0, 10.0, 15.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1008, 1015, -7.0, 1321, 1340, -19.0, 'US', 75, 'N663AW', 'EWR', 'PHX', 291.0, 2133.0, 10.0, 15.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1009, 1015, -6.0, 1121, 1131, -10.0, 'EV', 4663, 'N15980', 'EWR', 'IAD', 49.0, 212.0, 10.0, 15.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1009, 1016, -7.0, 1228, 1230, -2.0, 'DL', 2319, 'N909DE', 'LGA', 'MSP', 161.0, 1020.0, 10.0, 16.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1009, 1015, -6.0, 1218, 1216, 2.0, 'US', 1427, 'N725UW', 'JFK', 'CLT', 100.0, 541.0, 10.0, 15.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1016, 1020, -4.0, 1319, 1330, -11.0, 'AA', 731, 'N3CCAA', 'LGA', 'DFW', 201.0, 1389.0, 10.0, 20.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1016, 1023, -7.0, 1259, 1255, 4.0, 'FL', 347, 'N948AT', 'LGA', 'ATL', 122.0, 762.0, 10.0, 23.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1017, 1021, -4.0, 1329, 1342, -13.0, 'DL', 1903, 'N919DL', 'LGA', 'SRQ', 155.0, 1047.0, 10.0, 21.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1018, 1030, -12.0, 1236, 1252, -16.0, 'DL', 2343, 'N339NB', 'EWR', 'ATL', 117.0, 746.0, 10.0, 30.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1022, 1025, -3.0, 1159, 1231, -32.0, 'EV', 5026, 'N712EV', 'EWR', 'DTW', 84.0, 488.0, 10.0, 25.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1024, 1006, 18.0, 1135, 1121, 14.0, 'EV', 5711, 'N826AS', 'JFK', 'IAD', 47.0, 228.0, 10.0, 6.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1025, 1030, -5.0, 1330, 1340, -10.0, 'AA', 19, 'N338AA', 'JFK', 'LAX', 342.0, 2475.0, 10.0, 30.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1026, 1031, -5.0, 1358, 1403, -5.0, 'B6', 641, 'N625JB', 'JFK', 'SFO', 358.0, 2586.0, 10.0, 31.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1026, 1030, -4.0, 1358, 1415, -17.0, 'VX', 23, 'N841VA', 'JFK', 'SFO', 372.0, 2586.0, 10.0, 30.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1029, 1030, -1.0, 1208, 1215, -7.0, 'MQ', 4471, 'N736MQ', 'LGA', 'RDU', 71.0, 431.0, 10.0, 30.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1034, 1015, 19.0, 1217, 1208, 9.0, 'US', 1103, 'N559UW', 'EWR', 'CLT', 83.0, 529.0, 10.0, 15.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1037, 1039, -2.0, 1306, 1330, -24.0, 'B6', 31, 'N613JB', 'JFK', 'MCO', 129.0, 944.0, 10.0, 39.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1038, 1042, -4.0, 1158, 1206, -8.0, 'EV', 4694, 'N12569', 'EWR', 'MKE', 124.0, 725.0, 10.0, 42.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1040, 1045, -5.0, 1231, 1252, -21.0, 'DL', 1573, 'N316US', 'LGA', 'MEM', 144.0, 963.0, 10.0, 45.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1041, 1043, -2.0, 1318, 1340, -22.0, 'UA', 406, 'N667UA', 'EWR', 'IAH', 196.0, 1400.0, 10.0, 43.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1042, 1030, 12.0, 1428, 1355, 33.0, 'AA', 179, 'N361AA', 'JFK', 'SFO', 371.0, 2586.0, 10.0, 30.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1043, 1050, -7.0, 1212, 1227, -15.0, 'EV', 4662, 'N13133', 'EWR', 'RDU', 72.0, 416.0, 10.0, 50.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1046, 1050, -4.0, 1338, 1340, -2.0, 'UA', 1277, 'N12225', 'EWR', 'LAS', 328.0, 2227.0, 10.0, 50.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1046, 1052, -6.0, 1344, 1414, -30.0, 'UA', 343, 'N413UA', 'EWR', 'RSW', 160.0, 1068.0, 10.0, 52.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1048, 1055, -7.0, 1323, 1405, -42.0, 'AA', 739, 'N3EHAA', 'LGA', 'DFW', 191.0, 1389.0, 10.0, 55.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1052, 1100, -8.0, 1206, 1223, -17.0, 'EV', 4240, 'N14998', 'EWR', 'BUF', 53.0, 282.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1052, 1025, 27.0, 1146, 1131, 15.0, 'B6', 1026, 'N653JB', 'JFK', 'BOS', 36.0, 187.0, 10.0, 25.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1052, 1100, -8.0, 1354, 1424, -30.0, 'DL', 2044, 'N976DL', 'LGA', 'MIA', 150.0, 1096.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1054, 1100, -6.0, 1332, 1338, -6.0, 'DL', 1647, 'N618DL', 'LGA', 'ATL', 115.0, 762.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1054, 1100, -6.0, 1153, 1209, -16.0, 'US', 2124, 'N961UW', 'LGA', 'BOS', 37.0, 184.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1055, 1056, -1.0, 1155, 1207, -12.0, 'UA', 570, 'N434UA', 'EWR', 'BOS', 40.0, 200.0, 10.0, 56.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1056, 1100, -4.0, 1409, 1425, -16.0, 'UA', 642, 'N505UA', 'JFK', 'SFO', 342.0, 2586.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1056, 1100, -4.0, 1154, 1214, -20.0, 'US', 2171, 'N749US', 'LGA', 'DCA', 38.0, 214.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1059, 1100, -1.0, 1210, 1215, -5.0, 'MQ', 3792, 'N542MQ', 'JFK', 'DCA', 48.0, 213.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1103, 1105, -2.0, 1223, 1245, -22.0, 'WN', 542, 'N294WN', 'LGA', 'MDW', 119.0, 725.0, 11.0, 5.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1104, 1110, -6.0, 1215, 1221, -6.0, 'B6', 24, 'N283JB', 'JFK', 'BTV', 51.0, 266.0, 11.0, 10.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1104, 935, 89.0, 1357, 1238, 79.0, 'B6', 361, 'N583JB', 'LGA', 'PBI', 141.0, 1035.0, 9.0, 35.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 1104, 1115, -11.0, 1407, 1425, -18.0, 'AA', 2099, 'N3HYAA', 'LGA', 'MIA', 146.0, 1096.0, 11.0, 15.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1104, 1050, 14.0, 1316, 1250, 26.0, 'MQ', 4589, 'N0EGMQ', 'LGA', 'DTW', 91.0, 502.0, 10.0, 50.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1105, 1100, 5.0, 1252, 1300, -8.0, 'WN', 1873, 'N935WN', 'LGA', 'STL', 143.0, 888.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1105, 1100, 5.0, 1434, 1432, 2.0, 'UA', 1120, 'N36247', 'EWR', 'SFO', 370.0, 2565.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1106, 1115, -9.0, 1234, 1257, -23.0, 'EV', 5273, 'N755EV', 'LGA', 'PIT', 57.0, 335.0, 11.0, 15.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1107, 1114, -7.0, 1251, 1315, -24.0, 'DL', 1031, 'N318NB', 'LGA', 'DTW', 77.0, 502.0, 11.0, 14.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1109, 1115, -6.0, 1258, 1310, -12.0, 'MQ', 4485, 'N725MQ', 'LGA', 'CMH', 79.0, 479.0, 11.0, 15.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1113, 1116, -3.0, 1347, 1414, -27.0, 'UA', 1143, 'N87507', 'EWR', 'PBI', 139.0, 1023.0, 11.0, 16.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1113, 1114, -1.0, 1341, 1345, -4.0, 'UA', 1654, 'N77510', 'LGA', 'DEN', 236.0, 1620.0, 11.0, 14.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1114, 1000, 74.0, 1240, 1123, 77.0, 'EV', 5736, 'N829AS', 'LGA', 'IAD', 52.0, 229.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1119, 1125, -6.0, 1248, 1305, -17.0, 'AA', 327, 'N3BCAA', 'LGA', 'ORD', 118.0, 733.0, 11.0, 25.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1120, 1032, 48.0, 1320, 1240, 40.0, 'EV', 4269, 'N10156', 'EWR', 'CHS', 99.0, 628.0, 10.0, 32.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1121, 1635, 1126.0, 1239, 1810, 1109.0, 'MQ', 3695, 'N517MQ', 'EWR', 'ORD', 111.0, 719.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1122, 1125, -3.0, 1555, 1620, -25.0, 'DL', 315, 'N3759', 'JFK', 'SJU', 188.0, 1598.0, 11.0, 25.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1123, 1129, -6.0, 1350, 1419, -29.0, 'B6', 523, 'N562JB', 'EWR', 'MCO', 134.0, 937.0, 11.0, 29.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1125, 1130, -5.0, 1336, 1334, 2.0, 'US', 1625, 'N179UW', 'LGA', 'CLT', 96.0, 544.0, 11.0, 30.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1126, 1129, -3.0, 1430, 1438, -8.0, 'B6', 133, 'N760JB', 'JFK', 'RSW', 164.0, 1074.0, 11.0, 29.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1126, 1130, -4.0, 1400, 1430, -30.0, 'DL', 695, 'N913DE', 'JFK', 'MCO', 132.0, 944.0, 11.0, 30.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1126, 1130, -4.0, 1305, 1315, -10.0, 'WN', 145, 'N651SW', 'EWR', 'STL', 143.0, 872.0, 11.0, 30.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1126, 1130, -4.0, 1439, 1445, -6.0, 'UA', 703, 'N525UA', 'JFK', 'LAX', 349.0, 2475.0, 11.0, 30.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1127, 1135, -8.0, 1315, 1330, -15.0, 'MQ', 4553, 'N846MQ', 'LGA', 'CLE', 73.0, 419.0, 11.0, 35.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1128, 1134, -6.0, 1339, 1345, -6.0, 'DL', 2219, 'N355NB', 'LGA', 'MSP', 158.0, 1020.0, 11.0, 34.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1130, 1130, 0.0, 1409, 1422, -13.0, 'UA', 1230, 'N19117', 'EWR', 'MCO', 135.0, 937.0, 11.0, 30.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1132, 1100, 32.0, 1448, 1420, 28.0, 'DL', 1275, 'N3763D', 'JFK', 'SLC', 287.0, 1990.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1133, 1144, -11.0, 1244, 1255, -11.0, 'EV', 4264, 'N16919', 'EWR', 'BTV', 51.0, 266.0, 11.0, 44.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1133, 1127, 6.0, 1350, 1353, -3.0, 'UA', 1625, 'N27213', 'EWR', 'DEN', 236.0, 1605.0, 11.0, 27.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1138, 1140, -2.0, 1452, 1450, 2.0, 'DL', 930, 'N324NB', 'LGA', 'FLL', 155.0, 1076.0, 11.0, 40.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1138, 1145, -7.0, 1430, 1454, -24.0, 'DL', 1875, 'N975DL', 'LGA', 'TPA', 143.0, 1010.0, 11.0, 45.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1139, 1125, 14.0, 1449, 1439, 10.0, 'B6', 673, 'N638JB', 'JFK', 'LAX', 351.0, 2475.0, 11.0, 25.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1139, 1144, -5.0, 1427, 1445, -18.0, 'UA', 1707, 'N77295', 'EWR', 'TPA', 147.0, 997.0, 11.0, 44.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1142, 1140, 2.0, 1423, 1445, -22.0, 'AA', 1623, 'N3CFAA', 'EWR', 'MIA', 138.0, 1085.0, 11.0, 40.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1143, 1145, -2.0, 1356, 1410, -14.0, 'DL', 401, 'N304DQ', 'EWR', 'ATL', 112.0, 746.0, 11.0, 45.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1144, 1145, -1.0, 1446, 1453, -7.0, 'DL', 1174, 'N327NB', 'LGA', 'PBI', 150.0, 1035.0, 11.0, 45.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1145, 1152, -7.0, 1252, 1307, -15.0, 'EV', 4349, 'N14904', 'EWR', 'ORF', 49.0, 284.0, 11.0, 52.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1145, 1145, 0.0, 1322, 1321, 1.0, 'FL', 353, 'N966AT', 'LGA', 'CAK', 68.0, 397.0, 11.0, 45.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1146, 1120, 26.0, 1346, 1336, 10.0, 'EV', 4298, 'N11150', 'EWR', 'MCI', 167.0, 1092.0, 11.0, 20.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1146, 1155, -9.0, 1440, 1459, -19.0, 'B6', 625, 'N334JB', 'JFK', 'HOU', 215.0, 1428.0, 11.0, 55.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1148, 1150, -2.0, 1407, 1345, 22.0, 'MQ', 4646, 'N513MQ', 'LGA', 'MSP', 170.0, 1020.0, 11.0, 50.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1152, 1155, -3.0, 1254, 1304, -10.0, '9E', 3483, 'N601LR', 'JFK', 'BOS', 41.0, 187.0, 11.0, 55.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1152, 1200, -8.0, 1426, 1430, -4.0, 'MQ', 4658, 'N532MQ', 'LGA', 'ATL', 121.0, 762.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1152, 1200, -8.0, 1345, 1400, -15.0, 'US', 1443, 'N767UW', 'JFK', 'CLT', 94.0, 541.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1153, 1200, -7.0, 1244, 1304, -20.0, 'B6', 1174, 'N231JB', 'EWR', 'BOS', 38.0, 200.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1153, 1200, -7.0, 1531, 1529, 2.0, 'DL', 863, 'N712TW', 'JFK', 'LAX', 359.0, 2475.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1154, 1200, -6.0, 1434, 1438, -4.0, 'DL', 1947, 'N675DL', 'LGA', 'ATL', 122.0, 762.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1154, 1205, -11.0, 1350, 1345, 5.0, 'MQ', 4431, 'N734MQ', 'LGA', 'RDU', 72.0, 431.0, 12.0, 5.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1155, 1200, -5.0, 1300, 1315, -15.0, 'MQ', 4425, 'N854MQ', 'JFK', 'DCA', 50.0, 213.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1155, 1200, -5.0, 1441, 1459, -18.0, 'UA', 1461, 'N23721', 'EWR', 'IAH', 202.0, 1400.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1155, 1200, -5.0, 1313, 1309, 4.0, 'US', 2173, 'N747UW', 'LGA', 'DCA', 47.0, 214.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1156, 1200, -4.0, 1303, 1305, -2.0, 'US', 2126, 'N949UW', 'LGA', 'BOS', 35.0, 184.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1158, 1200, -2.0, 1507, 1510, -3.0, 'AA', 3, 'N339AA', 'JFK', 'LAX', 343.0, 2475.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1159, 1133, 26.0, 1329, 1309, 20.0, 'EV', 4671, 'N17108', 'EWR', 'RDU', 73.0, 416.0, 11.0, 33.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1159, 1205, -6.0, 1441, 1520, -39.0, 'AA', 743, 'N539AA', 'LGA', 'DFW', 197.0, 1389.0, 12.0, 5.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1201, 1200, 1.0, 1422, 1432, -10.0, 'EV', 4090, 'N26545', 'EWR', 'JAX', 120.0, 820.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1204, 1210, -6.0, 1317, 1323, -6.0, 'B6', 42, 'N306JB', 'JFK', 'SYR', 47.0, 209.0, 12.0, 10.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1206, 1210, -4.0, 1256, 1310, -14.0, 'WN', 477, 'N404WN', 'EWR', 'BWI', 36.0, 169.0, 12.0, 10.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1206, 1205, 1.0, 1323, 1325, -2.0, 'WN', 644, 'N756SA', 'EWR', 'MDW', 121.0, 711.0, 12.0, 5.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1208, 1215, -7.0, 1321, 1328, -7.0, 'EV', 4087, 'N17560', 'EWR', 'PWM', 51.0, 284.0, 12.0, 15.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1213, 1218, -5.0, 1408, 1415, -7.0, 'EV', 4641, 'N12142', 'EWR', 'CLT', 90.0, 529.0, 12.0, 18.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1213, 1220, -7.0, 1325, 1350, -25.0, 'MQ', 3697, 'N546MQ', 'EWR', 'ORD', 114.0, 719.0, 12.0, 20.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1217, 1220, -3.0, 1523, 1533, -10.0, 'B6', 209, 'N703JB', 'JFK', 'LGB', 351.0, 2465.0, 12.0, 20.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1219, 1220, -1.0, 1341, 1343, -2.0, 'B6', 66, 'N274JB', 'JFK', 'BUF', 60.0, 301.0, 12.0, 20.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1220, 1221, -1.0, 1413, 1418, -5.0, 'EV', 4640, 'N14568', 'EWR', 'DAY', 90.0, 533.0, 12.0, 21.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1227, 1221, 6.0, 1528, 1555, -27.0, 'UA', 552, 'N817UA', 'EWR', 'SFO', 344.0, 2565.0, 12.0, 21.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1228, 1230, -2.0, 1357, 1405, -8.0, 'WN', 283, 'N245WN', 'LGA', 'MKE', 128.0, 738.0, 12.0, 30.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1228, 1235, -7.0, 1356, 1415, -19.0, 'MQ', 4404, 'N835MQ', 'JFK', 'RDU', 69.0, 427.0, 12.0, 35.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1233, 1216, 17.0, 1456, 1445, 11.0, 'EV', 3826, 'N12922', 'EWR', 'ATL', 127.0, 746.0, 12.0, 16.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1233, 1240, -7.0, 1426, 1445, -19.0, 'DL', 1131, 'N358NB', 'LGA', 'DTW', 90.0, 502.0, 12.0, 40.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1233, 1217, 16.0, 1614, 1556, 18.0, 'UA', 1227, 'N37274', 'EWR', 'PHX', 306.0, 2133.0, 12.0, 17.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1235, 1235, 0.0, 1515, 1535, -20.0, 'UA', 1000, 'N14219', 'EWR', 'MIA', 146.0, 1085.0, 12.0, 35.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1236, 1235, 1.0, 1549, 1606, -17.0, 'DL', 2174, 'N3768', 'JFK', 'SLC', 293.0, 1990.0, 12.0, 35.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1238, 1245, -7.0, 1514, 1550, -36.0, 'AA', 745, 'N3AHAA', 'LGA', 'DFW', 195.0, 1389.0, 12.0, 45.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1238, 1240, -2.0, 1525, 1540, -15.0, 'AA', 1853, 'N201AA', 'EWR', 'DFW', 202.0, 1372.0, 12.0, 40.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1239, 1245, -6.0, 1336, 1350, -14.0, 'AA', 1850, 'N3CJAA', 'JFK', 'BOS', 39.0, 187.0, 12.0, 45.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1240, 1245, -5.0, 1455, 1514, -19.0, 'EV', 4950, 'N738EV', 'EWR', 'ATL', 116.0, 746.0, 12.0, 45.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1243, 1245, -2.0, 1542, 1600, -18.0, 'AA', 2253, 'N3ACAA', 'LGA', 'MIA', 148.0, 1096.0, 12.0, 45.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1243, 1250, -7.0, 1340, 1355, -15.0, 'B6', 1006, 'N298JB', 'JFK', 'BOS', 35.0, 187.0, 12.0, 50.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1244, 1259, -15.0, 1350, 1420, -30.0, 'EV', 4158, 'N11192', 'EWR', 'RIC', 49.0, 277.0, 12.0, 59.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1246, 1251, -5.0, 1552, 1602, -10.0, 'UA', 428, 'N475UA', 'LGA', 'IAH', 205.0, 1416.0, 12.0, 51.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1247, 1300, -13.0, 1346, 1406, -20.0, 'US', 2128, 'N957UW', 'LGA', 'BOS', 39.0, 184.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1248, 1250, -2.0, 1537, 1550, -13.0, 'DL', 1685, 'N345NW', 'LGA', 'MCO', 128.0, 950.0, 12.0, 50.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1249, 1253, -4.0, 1522, 1555, -33.0, 'UA', 1641, 'N76269', 'EWR', 'MCO', 135.0, 937.0, 12.0, 53.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1250, 1255, -5.0, 1529, 1605, -36.0, 'UA', 1612, 'N21723', 'EWR', 'DFW', 203.0, 1372.0, 12.0, 55.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1252, 1300, -8.0, 1344, 1406, -22.0, '9E', 3638, 'N8506C', 'JFK', 'PHL', 26.0, 94.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1252, 1240, 12.0, 1542, 1555, -13.0, 'AA', 2041, 'N5BSAA', 'JFK', 'MIA', 149.0, 1089.0, 12.0, 40.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1254, 1259, -5.0, 1538, 1556, -18.0, 'B6', 991, 'N346JB', 'JFK', 'PBI', 143.0, 1028.0, 12.0, 59.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1254, 1300, -6.0, 1430, 1450, -20.0, 'MQ', 4426, 'N737MQ', 'LGA', 'CMH', 83.0, 479.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1254, 1300, -6.0, 1403, 1407, -4.0, 'US', 2175, 'N760US', 'LGA', 'DCA', 43.0, 214.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1255, 1300, -5.0, 1417, 1440, -23.0, 'AA', 329, 'N4XBAA', 'LGA', 'ORD', 117.0, 733.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1256, 1259, -3.0, 1443, 1456, -13.0, 'US', 1459, 'N178US', 'LGA', 'CLT', 85.0, 544.0, 12.0, 59.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1257, 1303, -6.0, 1416, 1424, -8.0, 'B6', 32, 'N249JB', 'JFK', 'ROC', 56.0, 264.0, 13.0, 3.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1259, 1300, -1.0, 1557, 1610, -13.0, 'WN', 2239, 'N253WN', 'EWR', 'HOU', 222.0, 1411.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1300, 1300, 0.0, 1453, 1506, -13.0, '9E', 3762, 'N8965E', 'EWR', 'CVG', 95.0, 569.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1304, 1320, -16.0, 1445, 1508, -23.0, 'EV', 4628, 'N18120', 'EWR', 'STL', 137.0, 872.0, 13.0, 20.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1305, 1200, 65.0, 1408, 1330, 38.0, 'MQ', 4601, 'N515MQ', 'LGA', 'BNA', 105.0, 764.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1306, 1315, -9.0, 1414, 1431, -17.0, 'EV', 4120, 'N16976', 'EWR', 'BUF', 53.0, 282.0, 13.0, 15.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1306, 1250, 16.0, 1524, 1520, 4.0, 'WN', 390, 'N445WN', 'LGA', 'DEN', 236.0, 1620.0, 12.0, 50.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1308, 1259, 9.0, 1412, 1402, 10.0, 'EV', 4129, 'N14907', 'EWR', 'DCA', 44.0, 199.0, 12.0, 59.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1309, 1315, -6.0, 1400, 1411, -11.0, 'EV', 4368, 'N13964', 'EWR', 'BDL', 24.0, 116.0, 13.0, 15.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1309, 1300, 9.0, 1602, 1606, -4.0, 'B6', 85, 'N659JB', 'JFK', 'FLL', 149.0, 1069.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1310, 1250, 20.0, 1449, 1449, 0.0, 'EV', 4893, 'N744EV', 'EWR', 'DTW', 81.0, 488.0, 12.0, 50.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1311, 1315, -4.0, 1503, 1520, -17.0, 'MQ', 4564, 'N713MQ', 'LGA', 'DTW', 85.0, 502.0, 13.0, 15.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1312, 1308, 4.0, 1538, 1542, -4.0, 'FL', 348, 'N992AT', 'LGA', 'ATL', 116.0, 762.0, 13.0, 8.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1313, 1325, -12.0, 1447, 1505, -18.0, 'MQ', 4475, 'N739MQ', 'LGA', 'RDU', 69.0, 431.0, 13.0, 25.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1314, 1315, -1.0, 1457, 1504, -7.0, 'US', 1643, 'N174US', 'EWR', 'CLT', 82.0, 529.0, 13.0, 15.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1315, 1320, -5.0, 1646, 1650, -4.0, 'VX', 411, 'N632VA', 'JFK', 'LAX', 356.0, 2475.0, 13.0, 20.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1317, 1259, 18.0, 1427, 1436, -9.0, 'UA', 1483, 'N34131', 'EWR', 'ORD', 112.0, 719.0, 12.0, 59.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1318, 1320, -2.0, 1628, 1633, -5.0, 'UA', 1110, 'N17104', 'EWR', 'LAX', 341.0, 2454.0, 13.0, 20.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1319, 1322, -3.0, 1613, 1624, -11.0, 'B6', 431, 'N644JB', 'LGA', 'SRQ', 150.0, 1047.0, 13.0, 22.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1320, 1329, -9.0, 1457, 1526, -29.0, 'EV', 3840, 'N11194', 'EWR', 'MEM', 141.0, 946.0, 13.0, 29.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1324, 1329, -5.0, 1436, 1439, -3.0, 'EV', 4432, 'N14173', 'EWR', 'BTV', 49.0, 266.0, 13.0, 29.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1324, 1324, 0.0, 1604, 1624, -20.0, 'B6', 505, 'N746JB', 'EWR', 'FLL', 146.0, 1065.0, 13.0, 24.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1324, 1330, -6.0, 1540, 1605, -25.0, 'DL', 2043, 'N379DA', 'JFK', 'ATL', 116.0, 760.0, 13.0, 30.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1329, 1330, -1.0, 1611, 1640, -29.0, 'AA', 753, 'N3BKAA', 'LGA', 'DFW', 199.0, 1389.0, 13.0, 30.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1335, 1259, 36.0, 1430, 1408, 22.0, 'UA', 750, 'N840UA', 'EWR', 'BOS', 36.0, 200.0, 12.0, 59.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1336, 1345, -9.0, 1455, 1458, -3.0, 'B6', 602, 'N337JB', 'JFK', 'PWM', 56.0, 273.0, 13.0, 45.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1337, 1329, 8.0, 1630, 1647, -17.0, 'UA', 1164, 'N78509', 'EWR', 'FLL', 156.0, 1065.0, 13.0, 29.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1337, 1329, 8.0, 1623, 1626, -3.0, 'UA', 424, 'N563UA', 'EWR', 'PBI', 148.0, 1023.0, 13.0, 29.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1338, 1329, 9.0, 1430, 1431, -1.0, 'EV', 4280, 'N14570', 'EWR', 'BWI', 39.0, 169.0, 13.0, 29.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1338, 1335, 3.0, 1609, 1633, -24.0, 'B6', 1161, 'N559JB', 'LGA', 'PBI', 132.0, 1035.0, 13.0, 35.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1340, 1345, -5.0, 1649, 1705, -16.0, 'AA', 117, 'N324AA', 'JFK', 'LAX', 342.0, 2475.0, 13.0, 45.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1340, 1325, 15.0, 1814, 1810, 4.0, 'B6', 705, 'N612JB', 'JFK', 'SJU', 188.0, 1598.0, 13.0, 25.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1340, 1300, 40.0, 1610, 1537, 33.0, 'DL', 781, 'N662DN', 'LGA', 'ATL', 118.0, 762.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1341, 1330, 11.0, 1708, 1705, 3.0, 'WN', 1078, 'N211WN', 'EWR', 'PHX', 309.0, 2133.0, 13.0, 30.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1342, 1341, 1.0, 1935, 1935, 0.0, 'UA', 15, 'N76064', 'EWR', 'HNL', 624.0, 4963.0, 13.0, 41.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1342, 1345, -3.0, 1617, 1647, -30.0, 'UA', 385, 'N444UA', 'EWR', 'IAH', 196.0, 1400.0, 13.0, 45.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1344, 1350, -6.0, 1510, 1518, -8.0, 'EV', 4171, 'N22971', 'EWR', 'MSN', 129.0, 799.0, 13.0, 50.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1344, 1350, -6.0, 1533, 1545, -12.0, 'MQ', 4577, 'N504MQ', 'LGA', 'CLT', 91.0, 544.0, 13.0, 50.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1345, 1350, -5.0, 1605, 1624, -19.0, 'B6', 615, 'N239JB', 'JFK', 'JAX', 124.0, 828.0, 13.0, 50.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1345, 1350, -5.0, 1607, 1628, -21.0, 'DL', 1705, 'N317NB', 'LGA', 'MSY', 171.0, 1183.0, 13.0, 50.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1345, 1350, -5.0, 1703, 1715, -12.0, 'US', 186, 'N675AW', 'EWR', 'PHX', 295.0, 2133.0, 13.0, 50.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1346, 1345, 1.0, 1632, 1656, -24.0, 'B6', 83, 'N632JB', 'JFK', 'SEA', 321.0, 2422.0, 13.0, 45.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1347, 1345, 2.0, 1659, 1705, -6.0, 'AA', 1073, 'N3BFAA', 'LGA', 'MIA', 147.0, 1096.0, 13.0, 45.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1350, 1320, 30.0, 1503, 1436, 27.0, 'EV', 4464, 'N11544', 'EWR', 'IAD', 47.0, 212.0, 13.0, 20.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1352, 1357, -5.0, 1545, 1556, -11.0, 'EV', 4370, 'N12126', 'EWR', 'CHS', 97.0, 628.0, 13.0, 57.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1352, 1400, -8.0, 1509, 1509, 0.0, 'US', 2177, 'N756US', 'LGA', 'DCA', 41.0, 214.0, 14.0, 0.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1353, 1345, 8.0, 1628, 1641, -13.0, 'B6', 1783, 'N621JB', 'JFK', 'MCO', 134.0, 944.0, 13.0, 45.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1353, 1355, -2.0, 1702, 1708, -6.0, 'DL', 2079, 'N354NW', 'LGA', 'FLL', 159.0, 1076.0, 13.0, 55.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1354, 1400, -6.0, 1458, 1503, -5.0, 'US', 2130, 'N945UW', 'LGA', 'BOS', 39.0, 184.0, 14.0, 0.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1356, 1359, -3.0, 1516, 1517, -1.0, 'EV', 5712, 'N830AS', 'JFK', 'IAD', 51.0, 228.0, 13.0, 59.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1358, 1400, -2.0, 1630, 1636, -6.0, 'DL', 2247, 'N680DA', 'LGA', 'ATL', 111.0, 762.0, 14.0, 0.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1400, 1405, -5.0, 1645, 1705, -20.0, 'B6', 63, 'N645JB', 'JFK', 'TPA', 142.0, 1005.0, 14.0, 5.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1402, 1416, -14.0, 1629, 1650, -21.0, 'FL', 349, 'N960AT', 'LGA', 'ATL', 120.0, 762.0, 14.0, 16.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1402, 1410, -8.0, 1551, 1555, -4.0, 'MQ', 4491, 'N730MQ', 'LGA', 'CLE', 75.0, 419.0, 14.0, 10.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1406, 1050, 196.0, 1703, 1405, 178.0, 'B6', 373, 'N593JB', 'LGA', 'FLL', 144.0, 1076.0, 10.0, 50.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1407, 1355, 12.0, 1540, 1530, 10.0, 'WN', 348, 'N430WN', 'LGA', 'MDW', 119.0, 725.0, 13.0, 55.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1408, 1415, -7.0, 1511, 1526, -15.0, 'B6', 1010, 'N198JB', 'JFK', 'BOS', 42.0, 187.0, 14.0, 15.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1408, 1420, -12.0, 1512, 1550, -38.0, 'MQ', 3728, 'N8EGMQ', 'EWR', 'ORD', 109.0, 719.0, 14.0, 20.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1412, 1415, -3.0, 1621, 1638, -17.0, 'DL', 935, 'N361NB', 'EWR', 'ATL', 112.0, 746.0, 14.0, 15.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1413, 1357, 16.0, 1511, 1507, 4.0, 'EV', 4434, 'N15986', 'EWR', 'MHT', 40.0, 209.0, 13.0, 57.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1415, 1415, 0.0, 1618, 1622, -4.0, 'EV', 4687, 'N15980', 'EWR', 'CVG', 96.0, 569.0, 14.0, 15.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1416, 1420, -4.0, 1633, 1620, 13.0, 'MQ', 4588, 'N500MQ', 'LGA', 'MSP', 168.0, 1020.0, 14.0, 20.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1419, 1425, -6.0, 1640, 1630, 10.0, 'EV', 5164, 'N748EV', 'EWR', 'MSP', 175.0, 1008.0, 14.0, 25.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1419, 1418, 1.0, 1548, 1553, -5.0, 'UA', 1734, 'N17719', 'EWR', 'ORD', 125.0, 719.0, 14.0, 18.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1420, 1420, 0.0, 1705, 1713, -8.0, 'UA', 1618, 'N67134', 'EWR', 'TPA', 143.0, 997.0, 14.0, 20.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1422, 1430, -8.0, 1659, 1735, -36.0, 'AA', 883, 'N591AA', 'EWR', 'DFW', 195.0, 1372.0, 14.0, 30.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1425, 1435, -10.0, 1632, 1701, -29.0, 'DL', 1344, 'N340NB', 'LGA', 'MCI', 155.0, 1107.0, 14.0, 35.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1427, 1435, -8.0, 1716, 1748, -32.0, 'B6', 347, 'N317JB', 'JFK', 'SRQ', 152.0, 1041.0, 14.0, 35.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1427, 1430, -3.0, 1812, 1815, -3.0, 'DL', 2126, 'N727TW', 'JFK', 'SFO', 374.0, 2586.0, 14.0, 30.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1427, 1435, -8.0, 1546, 1559, -13.0, 'YV', 3750, 'N515MJ', 'LGA', 'IAD', 49.0, 229.0, 14.0, 35.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1430, 1435, -5.0, 1729, 1742, -13.0, 'DL', 1902, 'N302NB', 'LGA', 'PBI', 147.0, 1035.0, 14.0, 35.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1431, 1436, -5.0, 1533, 1543, -10.0, 'EV', 4372, 'N11187', 'EWR', 'DCA', 43.0, 199.0, 14.0, 36.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1431, 1429, 2.0, 1656, 1642, 14.0, 'DL', 1819, 'N914DL', 'LGA', 'MSP', 165.0, 1020.0, 14.0, 29.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1435, 1440, -5.0, 1600, 1614, -14.0, 'UA', 1493, 'N37263', 'EWR', 'CLE', 69.0, 404.0, 14.0, 40.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1437, 1439, -2.0, 1738, 1751, -13.0, 'UA', 1175, 'N77296', 'EWR', 'RSW', 164.0, 1068.0, 14.0, 39.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1438, 1445, -7.0, 1634, 1634, 0.0, 'EV', 4596, 'N11107', 'EWR', 'STL', 149.0, 872.0, 14.0, 45.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1440, 1440, 0.0, 1538, 1549, -11.0, 'UA', 717, 'N834UA', 'EWR', 'BOS', 42.0, 200.0, 14.0, 40.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1441, 1446, -5.0, 1747, 1757, -10.0, 'UA', 337, 'N441UA', 'LGA', 'IAH', 215.0, 1416.0, 14.0, 46.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1441, 1445, -4.0, 1639, 1647, -8.0, 'US', 1445, 'N189UW', 'LGA', 'CLT', 79.0, 544.0, 14.0, 45.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1442, 1442, 0.0, 1659, 1658, 1.0, 'EV', 4181, 'N13124', 'EWR', 'MCI', 177.0, 1092.0, 14.0, 42.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1442, 1445, -3.0, 1711, 1710, 1.0, 'MQ', 4669, 'N503MQ', 'LGA', 'ATL', 113.0, 762.0, 14.0, 45.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1443, 1445, -2.0, 1551, 1606, -15.0, '9E', 3452, 'N917XJ', 'JFK', 'BOS', 41.0, 187.0, 14.0, 45.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1445, 1450, -5.0, 1628, 1645, -17.0, 'MQ', 4172, 'N631MQ', 'JFK', 'CLE', 78.0, 425.0, 14.0, 50.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1446, 1415, 31.0, 1801, 1724, 37.0, 'B6', 377, 'N510JB', 'LGA', 'FLL', 158.0, 1076.0, 14.0, 15.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1447, 1447, 0.0, 1637, 1654, -17.0, 'EV', 4572, 'N26549', 'EWR', 'GSP', 89.0, 594.0, 14.0, 47.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1447, 1450, -3.0, 1614, 1640, -26.0, 'MQ', 4403, 'N856MQ', 'JFK', 'RDU', 71.0, 427.0, 14.0, 50.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1449, 1455, -6.0, 1753, 1825, -32.0, 'AA', 1769, 'N5FAAA', 'JFK', 'MIA', 150.0, 1089.0, 14.0, 55.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1449, 1452, -3.0, 1655, 1655, 0.0, 'DL', 1231, 'N967DL', 'LGA', 'DTW', 79.0, 502.0, 14.0, 52.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1450, 1455, -5.0, 1608, 1637, -29.0, '9E', 3318, 'N928XJ', 'JFK', 'BUF', 56.0, 301.0, 14.0, 55.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1450, 1440, 10.0, 1740, 1746, -6.0, 'UA', 1579, 'N12216', 'EWR', 'MIA', 152.0, 1085.0, 14.0, 40.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1450, 1455, -5.0, 1804, 1805, -1.0, 'UA', 473, 'N465UA', 'EWR', 'FLL', 175.0, 1065.0, 14.0, 55.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1451, 1500, -9.0, 1559, 1619, -20.0, 'US', 2179, 'N749US', 'LGA', 'DCA', 43.0, 214.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1452, 1456, -4.0, 1608, 1624, -16.0, '9E', 4357, 'N8797A', 'JFK', 'ORF', 51.0, 290.0, 14.0, 56.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1452, 1459, -7.0, 1610, 1631, -21.0, 'B6', 8, 'N592JB', 'JFK', 'BUF', 54.0, 301.0, 14.0, 59.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1453, 1500, -7.0, 1602, 1608, -6.0, 'US', 2132, 'N961UW', 'LGA', 'BOS', 41.0, 184.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1454, 1330, 84.0, 1726, 1617, 69.0, 'B6', 525, 'N267JB', 'EWR', 'MCO', 130.0, 937.0, 13.0, 30.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1455, 1459, -4.0, 1605, 1625, -20.0, 'B6', 12, 'N197JB', 'JFK', 'SYR', 47.0, 209.0, 14.0, 59.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1455, 1500, -5.0, 1642, 1655, -13.0, 'MQ', 4429, 'N722MQ', 'LGA', 'CMH', 78.0, 479.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1456, 1455, 1.0, 1645, 1645, 0.0, 'AA', 337, 'N598AA', 'LGA', 'ORD', 119.0, 733.0, 14.0, 55.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1456, 1457, -1.0, 1815, 1823, -8.0, 'UA', 1642, 'N37255', 'EWR', 'SFO', 355.0, 2565.0, 14.0, 57.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1458, 1450, 8.0, 1739, 1755, -16.0, 'AA', 1813, 'N5FPAA', 'JFK', 'MCO', 133.0, 944.0, 14.0, 50.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1458, 1500, -2.0, 1805, 1825, -20.0, 'AA', 1925, 'N3CHAA', 'LGA', 'MIA', 148.0, 1096.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1458, 1500, -2.0, 1740, 1742, -2.0, 'DL', 2347, 'N687DL', 'LGA', 'ATL', 113.0, 762.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1459, 1509, -10.0, 1729, 1741, -12.0, 'EV', 3817, 'N16559', 'EWR', 'JAX', 125.0, 820.0, 15.0, 9.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1459, 1459, 0.0, 1755, 1757, -2.0, 'B6', 393, 'N565JB', 'LGA', 'MCO', 133.0, 950.0, 14.0, 59.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1459, 1500, -1.0, 1830, 1837, -7.0, 'DL', 963, 'N624AG', 'JFK', 'LAX', 350.0, 2475.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1500, 1500, 0.0, 1636, 1653, -17.0, 'US', 720, 'N555AY', 'EWR', 'CLT', 77.0, 529.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1501, 1504, -3.0, 1629, 1640, -11.0, 'EV', 4125, 'N16961', 'EWR', 'RDU', 70.0, 416.0, 15.0, 4.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1501, 1444, 17.0, 1806, 1802, 4.0, 'UA', 471, 'N826UA', 'EWR', 'AUS', 224.0, 1504.0, 14.0, 44.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1502, 1510, -8.0, 1659, 1655, 4.0, 'MQ', 4447, 'N711MQ', 'LGA', 'RDU', 68.0, 431.0, 15.0, 10.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1503, 1506, -3.0, 1624, 1641, -17.0, 'UA', 1702, 'N37273', 'EWR', 'ORD', 117.0, 719.0, 15.0, 6.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1504, 1507, -3.0, 1648, 1704, -16.0, 'EV', 4326, 'N15983', 'EWR', 'CLT', 84.0, 529.0, 15.0, 7.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1504, 1505, -1.0, 1629, 1637, -8.0, '9E', 3393, 'N605LR', 'JFK', 'DCA', 49.0, 213.0, 15.0, 5.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1504, 1510, -6.0, 1654, 1710, -16.0, 'MQ', 4579, 'N507MQ', 'LGA', 'CLT', 82.0, 544.0, 15.0, 10.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1506, 1505, 1.0, 1810, 1820, -10.0, 'AA', 759, 'N3FRAA', 'LGA', 'DFW', 209.0, 1389.0, 15.0, 5.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1506, 1444, 22.0, 1753, 1745, 8.0, 'B6', 141, 'N784JB', 'JFK', 'PBI', 141.0, 1028.0, 14.0, 44.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1506, 1505, 1.0, 1712, 1734, -22.0, 'UA', 745, 'N579UA', 'LGA', 'DEN', 214.0, 1620.0, 15.0, 5.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1506, 1506, 0.0, 1821, 1819, 2.0, 'UA', 1600, 'N29124', 'EWR', 'LAX', 345.0, 2454.0, 15.0, 6.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1506, 1510, -4.0, 1744, 1801, -17.0, 'UA', 315, 'N574UA', 'EWR', 'MCO', 131.0, 937.0, 15.0, 10.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1510, 1510, 0.0, 1647, 1650, -3.0, 'WN', 323, 'N715SW', 'LGA', 'MKE', 124.0, 738.0, 15.0, 10.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1510, 1510, 0.0, 1737, 1745, -8.0, 'MQ', 4309, 'N636MQ', 'JFK', 'IND', 113.0, 665.0, 15.0, 10.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1511, 1517, -6.0, 1758, 1816, -18.0, 'B6', 537, 'N766JB', 'EWR', 'TPA', 139.0, 997.0, 15.0, 17.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1511, 1515, -4.0, 1649, 1700, -11.0, 'MQ', 4333, 'N635MQ', 'JFK', 'PIT', 70.0, 340.0, 15.0, 15.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1512, 1520, -8.0, 1625, 1654, -29.0, '9E', 4105, 'N8907A', 'JFK', 'IAD', 47.0, 228.0, 15.0, 20.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1513, 1459, 14.0, 1736, 1737, -1.0, 'B6', 119, 'N775JB', 'JFK', 'MSY', 179.0, 1182.0, 14.0, 59.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1514, 1520, -6.0, 1641, 1644, -3.0, 'EV', 4581, 'N13994', 'EWR', 'MKE', 124.0, 725.0, 15.0, 20.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1515, 1450, 25.0, 1704, 1645, 19.0, 'EV', 4381, 'N13913', 'EWR', 'DTW', 89.0, 488.0, 14.0, 50.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1515, 1520, -5.0, 1826, 1842, -16.0, 'DL', 2115, 'N338NW', 'LGA', 'MIA', 148.0, 1096.0, 15.0, 20.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1516, 1522, -6.0, 1744, 1727, 17.0, 'EV', 4576, 'N12552', 'EWR', 'GRR', 98.0, 605.0, 15.0, 22.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1518, 1502, 16.0, 1624, 1615, 9.0, 'EV', 4571, 'N36915', 'EWR', 'PWM', 48.0, 284.0, 15.0, 2.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1518, 1525, -7.0, 1633, 1655, -22.0, 'MQ', 3823, 'N528MQ', 'JFK', 'DCA', 52.0, 213.0, 15.0, 25.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1518, 1515, 3.0, 1831, 1805, 26.0, 'UA', 53, 'N66056', 'EWR', 'IAH', 218.0, 1400.0, 15.0, 15.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1520, 1530, -10.0, 1707, 1711, -4.0, '9E', 3719, 'N8808H', 'LGA', 'RIC', 51.0, 292.0, 15.0, 30.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1521, 1530, -9.0, 1729, 1725, 4.0, 'AA', 2223, 'N476AA', 'LGA', 'STL', 136.0, 888.0, 15.0, 30.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1522, 1527, -5.0, 1644, 1700, -16.0, 'EV', 3835, 'N48901', 'EWR', 'BNA', 116.0, 748.0, 15.0, 27.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1522, 1530, -8.0, 1727, 1734, -7.0, 'US', 1665, 'N725UW', 'LGA', 'CLT', 81.0, 544.0, 15.0, 30.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1523, 1528, -5.0, 1641, 1640, 1.0, 'EV', 3267, 'N16183', 'EWR', 'ORF', 47.0, 284.0, 15.0, 28.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1523, 1535, -12.0, 1757, 1743, 14.0, 'EV', 4352, 'N17169', 'EWR', 'CVG', 94.0, 569.0, 15.0, 35.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1524, 1530, -6.0, 1856, 1855, 1.0, 'AA', 1039, 'N3DWAA', 'JFK', 'FLL', 155.0, 1069.0, 15.0, 30.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1525, 1530, -5.0, 1800, 1805, -5.0, 'MQ', 4525, 'N736MQ', 'LGA', 'XNA', 169.0, 1147.0, 15.0, 30.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1525, 1429, 56.0, 1851, 1754, 57.0, 'UA', 257, 'N555UA', 'JFK', 'SFO', 356.0, 2586.0, 14.0, 29.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1525, 900, 385.0, 1713, 1039, 394.0, 'UA', 544, 'N419UA', 'LGA', 'ORD', 123.0, 733.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 1526, 1530, -4.0, 1908, 1910, -2.0, 'AA', 85, 'N395AA', 'JFK', 'SFO', 377.0, 2586.0, 15.0, 30.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1527, 1530, -3.0, 1711, 1725, -14.0, 'MQ', 4146, 'N623MQ', 'JFK', 'CMH', 80.0, 483.0, 15.0, 30.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1531, 1535, -4.0, 1845, 1850, -5.0, 'AA', 763, 'N3BSAA', 'LGA', 'DFW', 200.0, 1389.0, 15.0, 35.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1532, 1545, -13.0, 1652, 1703, -11.0, '9E', 3635, 'N8688C', 'JFK', 'BWI', 42.0, 184.0, 15.0, 45.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1536, 1540, -4.0, 1703, 1743, -40.0, '9E', 3523, 'N912XJ', 'JFK', 'ORD', 122.0, 740.0, 15.0, 40.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1536, 1540, -4.0, 1704, 1716, -12.0, '9E', 4178, 'N823AY', 'JFK', 'ROC', 53.0, 264.0, 15.0, 40.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1536, 1540, -4.0, 1851, 1909, -18.0, 'DL', 2027, 'N323US', 'JFK', 'FLL', 168.0, 1069.0, 15.0, 40.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1536, 1545, -9.0, 1729, 1744, -15.0, 'UA', 1710, 'N24702', 'LGA', 'CLE', 68.0, 419.0, 15.0, 45.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1537, 1545, -8.0, 1839, 1850, -11.0, 'DL', 2377, 'N370NW', 'LGA', 'MCO', 134.0, 950.0, 15.0, 45.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1539, 1529, 10.0, 1835, 1837, -2.0, 'UA', 1624, 'N24212', 'EWR', 'FLL', 156.0, 1065.0, 15.0, 29.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1540, 1540, 0.0, 1906, 1900, 6.0, 'UA', 161, 'N41140', 'JFK', 'LAX', 351.0, 2475.0, 15.0, 40.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1545, 1545, 0.0, 1846, 1910, -24.0, 'AA', 133, 'N323AA', 'JFK', 'LAX', 335.0, 2475.0, 15.0, 45.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1545, 1548, -3.0, 1817, 1830, -13.0, 'DL', 95, 'N3755D', 'JFK', 'ATL', 116.0, 760.0, 15.0, 48.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1546, 1550, -4.0, 1901, 1925, -24.0, 'DL', 1773, 'N3754A', 'JFK', 'SLC', 285.0, 1990.0, 15.0, 50.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1546, 1545, 1.0, 1828, 1815, 13.0, 'DL', 1942, 'N326NB', 'EWR', 'ATL', 117.0, 746.0, 15.0, 45.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1548, 1550, -2.0, 2030, 2050, -20.0, 'AA', 1635, 'N630AA', 'JFK', 'SJU', 186.0, 1598.0, 15.0, 50.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1550, 1550, 0.0, 1805, 1820, -15.0, '9E', 3355, 'N925XJ', 'JFK', 'MSP', 162.0, 1029.0, 15.0, 50.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1550, 1555, -5.0, 1855, 1907, -12.0, 'DL', 1695, 'N331NW', 'LGA', 'TPA', 146.0, 1010.0, 15.0, 55.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1550, 1555, -5.0, 1750, 1817, -27.0, 'DL', 1771, 'N336NB', 'JFK', 'DTW', 85.0, 509.0, 15.0, 55.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1552, 1555, -3.0, 1732, 1746, -14.0, 'B6', 1053, 'N184JB', 'JFK', 'PIT', 71.0, 340.0, 15.0, 55.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1552, 1549, 3.0, 1657, 1705, -8.0, 'UA', 1116, 'N33289', 'EWR', 'BOS', 41.0, 200.0, 15.0, 49.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1553, 1600, -7.0, 1848, 1910, -22.0, 'B6', 157, 'N590JB', 'JFK', 'MCO', 134.0, 944.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1553, 1550, 3.0, 1658, 1710, -12.0, 'WN', 4215, 'N700GS', 'EWR', 'MDW', 112.0, 711.0, 15.0, 50.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1553, 1600, -7.0, 1706, 1717, -11.0, 'US', 2181, 'N747UW', 'LGA', 'DCA', 41.0, 214.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1554, 1605, -11.0, 1715, 1754, -39.0, '9E', 3459, 'N904XJ', 'JFK', 'BNA', 114.0, 765.0, 16.0, 5.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1555, 1610, -15.0, 1744, 1756, -12.0, 'EV', 5486, 'N709EV', 'LGA', 'PIT', 54.0, 335.0, 16.0, 10.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1555, 1445, 70.0, 1844, 1745, 59.0, 'B6', 153, 'N657JB', 'JFK', 'MCO', 134.0, 944.0, 14.0, 45.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1555, 1555, 0.0, 2037, 2056, -19.0, 'B6', 703, 'N570JB', 'JFK', 'SJU', 188.0, 1598.0, 15.0, 55.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1555, 1600, -5.0, 1858, 1933, -35.0, 'DL', 161, 'N937DL', 'JFK', 'MIA', 152.0, 1089.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1556, 1600, -4.0, 1841, 1840, 1.0, 'DL', 847, 'N665DN', 'LGA', 'ATL', 117.0, 762.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1556, 1600, -4.0, 1836, 1834, 2.0, 'FL', 620, 'N969AT', 'LGA', 'ATL', 118.0, 762.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1556, 1600, -4.0, 1714, 1712, 2.0, 'US', 2134, 'N949UW', 'LGA', 'BOS', 43.0, 184.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1557, 1545, 12.0, 1914, 1857, 17.0, 'UA', 1200, 'N78501', 'EWR', 'SAN', 358.0, 2425.0, 15.0, 45.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1558, 1600, -2.0, 1805, 1850, -45.0, 'DL', 1331, 'N3743H', 'JFK', 'DEN', 220.0, 1626.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1558, 1605, -7.0, 1751, 1750, 1.0, 'MQ', 4415, 'N725MQ', 'LGA', 'RDU', 75.0, 431.0, 16.0, 5.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1558, 1600, -2.0, 1715, 1736, -21.0, 'UA', 630, 'N824UA', 'EWR', 'ORD', 120.0, 719.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1559, 1600, -1.0, 1717, 1732, -15.0, '9E', 3453, 'N601LR', 'JFK', 'BOS', 39.0, 187.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1559, 1600, -1.0, 1844, 1915, -31.0, 'AA', 565, 'N3DPAA', 'JFK', 'DFW', 196.0, 1391.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1559, 1600, -1.0, 1905, 1903, 2.0, 'B6', 985, 'N715JB', 'LGA', 'TPA', 146.0, 1010.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1559, 1605, -6.0, 1834, 1859, -25.0, 'UA', 559, 'N434UA', 'EWR', 'MCO', 130.0, 937.0, 16.0, 5.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1600, 1600, 0.0, 1848, 1912, -24.0, 'DL', 4, 'N37700', 'JFK', 'MCO', 134.0, 944.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1601, 1605, -4.0, 1856, 1925, -29.0, '9E', 3325, 'N919XJ', 'JFK', 'DFW', 202.0, 1391.0, 16.0, 5.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1601, 1555, 6.0, 1853, 1846, 7.0, 'UA', 1550, 'N78506', 'EWR', 'LAS', 329.0, 2227.0, 15.0, 55.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1602, 1555, 7.0, 1731, 1749, -18.0, 'B6', 917, 'N306JB', 'JFK', 'ORD', 117.0, 740.0, 15.0, 55.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1603, 1600, 3.0, 1927, 1925, 2.0, 'AA', 1467, 'N3JJAA', 'LGA', 'MIA', 154.0, 1096.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1604, 1610, -6.0, 1841, 1917, -36.0, 'DL', 91, 'N3746H', 'JFK', 'LAS', 312.0, 2248.0, 16.0, 10.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1604, 1445, 79.0, 1813, 1705, 68.0, 'UA', 407, 'N526UA', 'EWR', 'DEN', 223.0, 1605.0, 14.0, 45.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1605, 1610, -5.0, 1748, 1800, -12.0, 'AA', 341, 'N4XMAA', 'LGA', 'ORD', 123.0, 733.0, 16.0, 10.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1610, 1615, -5.0, 1835, 1831, 4.0, 'DL', 1619, 'N344NW', 'LGA', 'MSP', 168.0, 1020.0, 16.0, 15.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1611, 1620, -9.0, 1745, 1750, -5.0, 'MQ', 4622, 'N526MQ', 'LGA', 'BNA', 115.0, 764.0, 16.0, 20.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1612, 1615, -3.0, 1843, 1845, -2.0, 'WN', 161, 'N423WN', 'EWR', 'DEN', 235.0, 1605.0, 16.0, 15.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1614, 1615, -1.0, 1754, 1815, -21.0, '9E', 3387, 'N935XJ', 'JFK', 'RDU', 62.0, 427.0, 16.0, 15.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1614, 1605, 9.0, 1926, 1944, -18.0, 'DL', 1508, 'N952DL', 'JFK', 'RSW', 163.0, 1074.0, 16.0, 5.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1615, 1625, -10.0, 1901, 1855, 6.0, 'MQ', 4661, 'N0EGMQ', 'LGA', 'ATL', 124.0, 762.0, 16.0, 25.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1617, 1602, 15.0, 1748, 1722, 26.0, 'YV', 3771, 'N505MJ', 'LGA', 'IAD', 46.0, 229.0, 16.0, 2.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1619, 1540, 39.0, 1831, 1744, 47.0, 'EV', 4667, 'N10156', 'EWR', 'MSP', 175.0, 1008.0, 15.0, 40.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1620, 1616, 4.0, 1804, 1813, -9.0, 'EV', 4092, 'N27190', 'EWR', 'DAY', 88.0, 533.0, 16.0, 16.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1621, 1630, -9.0, 1817, 1838, -21.0, 'DL', 2231, 'N373NW', 'LGA', 'DTW', 87.0, 502.0, 16.0, 30.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1621, 1620, 1.0, 1930, 2003, -33.0, 'US', 35, 'N553UW', 'JFK', 'PHX', 288.0, 2153.0, 16.0, 20.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1622, 1625, -3.0, 1928, 1954, -26.0, 'B6', 675, 'N779JB', 'JFK', 'LAX', 343.0, 2475.0, 16.0, 25.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1625, 1628, -3.0, 1729, 1735, -6.0, 'EV', 4588, 'N14952', 'EWR', 'MHT', 40.0, 209.0, 16.0, 28.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1625, 1633, -8.0, 1827, 1836, -9.0, 'EV', 4411, 'N14904', 'EWR', 'MEM', 149.0, 946.0, 16.0, 33.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1626, 1635, -9.0, 1828, 1856, -28.0, 'EV', 3805, 'N21537', 'EWR', 'SAV', 110.0, 708.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1626, 1630, -4.0, 1949, 2020, -31.0, 'VX', 27, 'N855VA', 'JFK', 'SFO', 359.0, 2586.0, 16.0, 30.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1626, 1600, 26.0, 1825, 1820, 5.0, 'MQ', 3985, 'N620MQ', 'JFK', 'CVG', 97.0, 589.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1627, 1629, -2.0, 1911, 1931, -20.0, 'B6', 369, 'N627JB', 'LGA', 'PBI', 140.0, 1035.0, 16.0, 29.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1629, 1640, -11.0, 1858, 1850, 8.0, 'MQ', 4540, 'N734MQ', 'LGA', 'DTW', 108.0, 502.0, 16.0, 40.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1629, 1629, 0.0, 1931, 2005, -34.0, 'UA', 1078, 'N76528', 'EWR', 'SAT', 224.0, 1569.0, 16.0, 29.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1630, 1635, -5.0, 1941, 2001, -20.0, 'US', 656, 'N657AW', 'EWR', 'PHX', 292.0, 2133.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1633, 1635, -2.0, 1926, 1945, -19.0, 'WN', 891, 'N936WN', 'EWR', 'HOU', 214.0, 1411.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1634, 1635, -1.0, 1815, 1841, -26.0, 'B6', 1085, 'N353JB', 'JFK', 'CLT', 81.0, 541.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1635, 1635, 0.0, 1932, 1952, -20.0, 'B6', 139, 'N274JB', 'JFK', 'RSW', 161.0, 1074.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1637, 1645, -8.0, 1849, 1906, -17.0, '9E', 4027, 'N825AY', 'EWR', 'CVG', 102.0, 569.0, 16.0, 45.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1638, 1640, -2.0, 1937, 1955, -18.0, 'AA', 773, 'N4YGAA', 'LGA', 'DFW', 202.0, 1389.0, 16.0, 40.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1640, 1645, -5.0, 1847, 1900, -13.0, 'DL', 1473, 'N347NB', 'LGA', 'MEM', 148.0, 963.0, 16.0, 45.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1641, 1640, 1.0, 1814, 1816, -2.0, 'EV', 4485, 'N29906', 'EWR', 'RDU', 68.0, 416.0, 16.0, 40.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1641, 1645, -4.0, 1829, 1853, -24.0, 'EV', 4997, 'N612QX', 'EWR', 'DTW', 87.0, 488.0, 16.0, 45.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1641, 1635, 6.0, 1817, 1816, 1.0, 'UA', 1638, 'N37437', 'EWR', 'CLE', 73.0, 404.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1642, 1645, -3.0, 1939, 2005, -26.0, 'AA', 181, 'N319AA', 'JFK', 'LAX', 340.0, 2475.0, 16.0, 45.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1645, 1635, 10.0, 1919, 1907, 12.0, 'EV', 4705, 'N14543', 'EWR', 'ATL', 123.0, 746.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1645, 1640, 5.0, 1837, 1835, 2.0, 'WN', 372, 'N736SA', 'LGA', 'STL', 137.0, 888.0, 16.0, 40.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1646, 1659, -13.0, 2000, 2046, -46.0, '9E', 3375, 'N902XJ', 'JFK', 'SAT', 221.0, 1587.0, 16.0, 59.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1646, 1635, 11.0, 1752, 1750, 2.0, 'B6', 1176, 'N231JB', 'EWR', 'BOS', 44.0, 200.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1647, 1650, -3.0, 1928, 1936, -8.0, 'UA', 733, 'N453UA', 'EWR', 'LAS', 319.0, 2227.0, 16.0, 50.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1649, 1610, 39.0, 1733, 1732, 1.0, '9E', 3689, 'N800AY', 'JFK', 'PHL', 26.0, 94.0, 16.0, 10.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1649, 1655, -6.0, 1958, 2029, -31.0, 'DL', 706, 'N318NB', 'JFK', 'AUS', 221.0, 1521.0, 16.0, 55.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1649, 1650, -1.0, 1811, 1826, -15.0, 'UA', 464, 'N815UA', 'EWR', 'ORD', 119.0, 719.0, 16.0, 50.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1650, 1655, -5.0, 2007, 2035, -28.0, 'VX', 413, 'N640VA', 'JFK', 'LAX', 358.0, 2475.0, 16.0, 55.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1652, 1700, -8.0, 1757, 1840, -43.0, 'MQ', 4323, 'N922MQ', 'JFK', 'ORF', 47.0, 290.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1653, 1700, -7.0, 1934, 1955, -21.0, 'AA', 257, 'N3JBAA', 'JFK', 'LAS', 322.0, 2248.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1653, 1700, -7.0, 1814, 1817, -3.0, 'US', 2183, 'N770UW', 'LGA', 'DCA', 43.0, 214.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1655, 1700, -5.0, 1948, 2006, -18.0, 'B6', 509, 'N597JB', 'EWR', 'FLL', 145.0, 1065.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1655, 1700, -5.0, 2125, 2204, -39.0, 'DL', 329, 'N388DA', 'JFK', 'SJU', 185.0, 1598.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1655, 1700, -5.0, 1810, 1813, -3.0, 'US', 2136, 'N952UW', 'LGA', 'BOS', 42.0, 184.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1656, 1700, -4.0, 1924, 1950, -26.0, 'AA', 575, 'N628AA', 'JFK', 'EGE', 247.0, 1747.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1656, 1700, -4.0, 1925, 1935, -10.0, 'DL', 2042, 'N307DQ', 'EWR', 'ATL', 116.0, 746.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1657, 1630, 27.0, 1831, 1807, 24.0, 'EV', 4702, 'N15985', 'EWR', 'GSO', 74.0, 445.0, 16.0, 30.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1658, 1700, -2.0, 2007, 2036, -29.0, 'DL', 127, 'N718TW', 'JFK', 'LAX', 344.0, 2475.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1659, 1700, -1.0, 2030, 2049, -19.0, 'DL', 31, 'N723TW', 'JFK', 'SFO', 368.0, 2586.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1659, 1705, -6.0, 1800, 1830, -30.0, 'MQ', 4410, 'N840MQ', 'JFK', 'DCA', 39.0, 213.0, 17.0, 5.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1700, 1705, -5.0, 1950, 2010, -20.0, 'AA', 1905, 'N599AA', 'EWR', 'DFW', 194.0, 1372.0, 17.0, 5.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1701, 1619, 42.0, 1808, 1726, 42.0, 'EV', 4299, 'N12921', 'EWR', 'DCA', 40.0, 199.0, 16.0, 19.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1701, 1703, -2.0, 1802, 1810, -8.0, 'EV', 4373, 'N13995', 'EWR', 'DCA', 38.0, 199.0, 17.0, 3.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1701, 1655, 6.0, 2020, 2015, 5.0, 'B6', 359, 'N579JB', 'JFK', 'BUR', 356.0, 2465.0, 16.0, 55.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1703, 1705, -2.0, 1913, 1905, 8.0, 'WN', 440, 'N486WN', 'EWR', 'STL', 135.0, 872.0, 17.0, 5.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1705, 1708, -3.0, 2003, 2023, -20.0, 'B6', 15, 'N249JB', 'JFK', 'FLL', 155.0, 1069.0, 17.0, 8.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1705, 1706, -1.0, 1823, 1834, -11.0, 'B6', 36, 'N624JB', 'JFK', 'ROC', 50.0, 264.0, 17.0, 6.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1706, 1700, 6.0, 1944, 1943, 1.0, 'DL', 1499, 'N655DL', 'LGA', 'ATL', 115.0, 762.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1706, 1710, -4.0, 2034, 2036, -2.0, 'UA', 1739, 'N12125', 'EWR', 'SFO', 361.0, 2565.0, 17.0, 10.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1707, 1710, -3.0, 1858, 1912, -14.0, 'US', 894, 'N179UW', 'LGA', 'CLT', 81.0, 544.0, 17.0, 10.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1708, 1550, 78.0, 1913, 1826, 47.0, '9E', 3427, 'N931XJ', 'JFK', 'IND', 108.0, 665.0, 15.0, 50.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1708, 1715, -7.0, 2013, 2040, -27.0, 'DL', 503, 'N3771K', 'JFK', 'SAN', 345.0, 2446.0, 17.0, 15.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1710, 1555, 75.0, 1926, 1810, 76.0, 'EV', 3820, 'N13964', 'EWR', 'SDF', 105.0, 642.0, 15.0, 55.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1710, 1715, -5.0, 2010, 2019, -9.0, 'DL', 1585, 'N949DL', 'LGA', 'MCO', 136.0, 950.0, 17.0, 15.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1711, 1710, 1.0, 1807, 1820, -13.0, 'EV', 4316, 'N10575', 'EWR', 'BWI', 34.0, 169.0, 17.0, 10.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1711, 1720, -9.0, 1902, 1910, -8.0, 'AA', 345, 'N4WWAA', 'LGA', 'ORD', 123.0, 733.0, 17.0, 20.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1714, 1700, 14.0, 1852, 1849, 3.0, 'EV', 4202, 'N16976', 'EWR', 'STL', 137.0, 872.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1714, 1720, -6.0, 2014, 2040, -26.0, 'AA', 1999, 'N5DEAA', 'EWR', 'MIA', 146.0, 1085.0, 17.0, 20.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1715, 1720, -5.0, 1910, 1905, 5.0, 'MQ', 4479, 'N719MQ', 'LGA', 'RDU', 73.0, 431.0, 17.0, 20.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1716, 1720, -4.0, 1851, 1915, -24.0, 'AA', 1351, 'N3FAAA', 'JFK', 'ORD', 126.0, 740.0, 17.0, 20.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1717, 1720, -3.0, 2017, 2033, -16.0, 'DL', 1779, 'N330NW', 'LGA', 'FLL', 149.0, 1076.0, 17.0, 20.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1719, 1725, -6.0, 1836, 1855, -19.0, 'MQ', 4255, 'N659MQ', 'JFK', 'BNA', 118.0, 765.0, 17.0, 25.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1719, 1705, 14.0, 2035, 2015, 20.0, 'UA', 1259, 'N24715', 'LGA', 'IAH', 222.0, 1416.0, 17.0, 5.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1719, 1719, 0.0, 1950, 1945, 5.0, 'UA', 509, 'N535UA', 'LGA', 'DEN', 225.0, 1620.0, 17.0, 19.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1719, 1725, -6.0, 2058, 2050, 8.0, 'UA', 512, 'N508UA', 'JFK', 'SFO', 347.0, 2586.0, 17.0, 25.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1720, 1725, -5.0, 2023, 2040, -17.0, 'AA', 145, 'N3CWAA', 'JFK', 'SAN', 346.0, 2446.0, 17.0, 25.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1721, 1725, -4.0, 1925, 1933, -8.0, 'EV', 4323, 'N14568', 'EWR', 'CVG', 102.0, 569.0, 17.0, 25.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1721, 1725, -4.0, 2002, 2017, -15.0, 'UA', 1109, 'N14102', 'EWR', 'MCO', 137.0, 937.0, 17.0, 25.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1722, 1729, -7.0, 1848, 1902, -14.0, 'EV', 4480, 'N12142', 'EWR', 'PIT', 60.0, 319.0, 17.0, 29.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1724, 1729, -5.0, 2029, 2046, -17.0, 'DL', 1185, 'N3740C', 'EWR', 'SLC', 281.0, 1969.0, 17.0, 29.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1726, 1735, -9.0, 1901, 1925, -24.0, 'WN', 408, 'N963WN', 'LGA', 'BNA', 115.0, 764.0, 17.0, 35.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1726, 1730, -4.0, 2005, 2004, 1.0, 'FL', 623, 'N318AT', 'LGA', 'ATL', 117.0, 762.0, 17.0, 30.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1726, 1730, -4.0, 1911, 1923, -12.0, 'US', 449, 'N651AW', 'EWR', 'CLT', 80.0, 529.0, 17.0, 30.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1727, 1734, -7.0, 1840, 1854, -14.0, 'B6', 74, 'N556JB', 'JFK', 'BTV', 46.0, 266.0, 17.0, 34.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1730, 1730, 0.0, 2001, 1957, 4.0, 'F9', 837, 'N216FR', 'LGA', 'DEN', 232.0, 1620.0, 17.0, 30.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1730, 1659, 31.0, 1844, 1822, 22.0, 'UA', 531, 'N435UA', 'EWR', 'BOS', 43.0, 200.0, 16.0, 59.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1731, 1655, 36.0, 2050, 2010, 40.0, 'B6', 185, 'N649JB', 'JFK', 'SAN', 352.0, 2446.0, 16.0, 55.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1733, 1725, 8.0, 2010, 2023, -13.0, 'UA', 1134, 'N29129', 'EWR', 'IAH', 193.0, 1400.0, 17.0, 25.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1733, 1727, 6.0, 2014, 2049, -35.0, 'UA', 1593, 'N77525', 'EWR', 'PDX', 314.0, 2434.0, 17.0, 27.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1735, 1730, 5.0, 1901, 1855, 6.0, 'WN', 216, 'N231WN', 'EWR', 'MDW', 115.0, 711.0, 17.0, 30.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1736, 1727, 9.0, 2038, 2038, 0.0, 'UA', 738, 'N466UA', 'EWR', 'SEA', 316.0, 2402.0, 17.0, 27.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1738, 1729, 9.0, 2033, 2049, -16.0, 'AA', 543, 'N351AA', 'JFK', 'MIA', 150.0, 1089.0, 17.0, 29.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1738, 1745, -7.0, 1939, 1953, -14.0, 'DL', 2331, 'N909DE', 'LGA', 'DTW', 84.0, 502.0, 17.0, 45.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1738, 1745, -7.0, 1957, 2020, -23.0, 'MQ', 4413, 'N723MQ', 'LGA', 'XNA', 165.0, 1147.0, 17.0, 45.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1738, 1700, 38.0, 1915, 1839, 36.0, 'UA', 689, 'N813UA', 'LGA', 'ORD', 117.0, 733.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1740, 1730, 10.0, 1944, 1936, 8.0, 'EV', 4382, 'N19966', 'EWR', 'DTW', 85.0, 488.0, 17.0, 30.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1740, 1730, 10.0, 2033, 2023, 10.0, 'UA', 1637, 'N37293', 'EWR', 'TPA', 134.0, 997.0, 17.0, 30.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1742, 1745, -3.0, 2035, 2055, -20.0, 'AA', 785, 'N3ERAA', 'LGA', 'DFW', 200.0, 1389.0, 17.0, 45.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1743, 1745, -2.0, 2103, 2120, -17.0, 'AA', 177, 'N320AA', 'JFK', 'SFO', 355.0, 2586.0, 17.0, 45.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1745, 1745, 0.0, 2049, 2117, -28.0, 'DL', 1394, 'N3745B', 'JFK', 'PDX', 332.0, 2454.0, 17.0, 45.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1748, 1753, -5.0, 2104, 2105, -1.0, 'UA', 535, 'N510UA', 'JFK', 'LAX', 343.0, 2475.0, 17.0, 53.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1750, 1750, 0.0, 2115, 2102, 13.0, 'UA', 1228, 'N16713', 'EWR', 'SAN', 352.0, 2425.0, 17.0, 50.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1751, 1710, 41.0, 2100, 2015, 45.0, 'AA', 695, 'N3CJAA', 'JFK', 'AUS', 217.0, 1521.0, 17.0, 10.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1753, 1755, -2.0, 2033, 2109, -36.0, 'B6', 989, 'N587JB', 'JFK', 'FLL', 137.0, 1069.0, 17.0, 55.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1753, 1800, -7.0, 1905, 1913, -8.0, 'US', 2138, 'N945UW', 'LGA', 'BOS', 39.0, 184.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1754, 1745, 9.0, 2051, 2042, 9.0, 'B6', 547, 'N589JB', 'EWR', 'PBI', 137.0, 1023.0, 17.0, 45.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1754, 1714, 40.0, 2137, 2030, 67.0, 'UA', 250, 'N840UA', 'EWR', 'LAX', 357.0, 2454.0, 17.0, 14.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1755, 1735, 20.0, 1925, 1922, 3.0, 'B6', 1111, 'N228JB', 'JFK', 'RDU', 67.0, 427.0, 17.0, 35.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1756, 1800, -4.0, 1854, 1915, -21.0, 'B6', 1016, 'N337JB', 'JFK', 'BOS', 34.0, 187.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1756, 1800, -4.0, 2030, 2058, -28.0, 'B6', 9, 'N651JB', 'JFK', 'MCO', 127.0, 944.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1756, 1800, -4.0, 1916, 1913, 3.0, 'US', 2185, 'N756US', 'LGA', 'DCA', 46.0, 214.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1757, 1800, -3.0, 2040, 2043, -3.0, 'DL', 1047, 'N618DL', 'LGA', 'ATL', 116.0, 762.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1757, 1800, -3.0, 1911, 1910, 1.0, 'WN', 808, 'N773SA', 'EWR', 'BWI', 35.0, 169.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1757, 1810, -13.0, 1946, 1945, 1.0, 'MQ', 4484, 'N737MQ', 'LGA', 'BNA', 117.0, 764.0, 18.0, 10.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1759, 1722, 37.0, 1929, 1844, 45.0, 'EV', 4300, 'N15973', 'EWR', 'RIC', 50.0, 277.0, 17.0, 22.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1759, 1805, -6.0, 2005, 1955, 10.0, 'MQ', 4626, 'N515MQ', 'LGA', 'CMH', 77.0, 479.0, 18.0, 5.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1800, 1800, 0.0, 2115, 2104, 11.0, 'UA', 1221, 'N23708', 'EWR', 'DFW', 213.0, 1372.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1801, 1619, 102.0, 1923, 1723, 120.0, 'EV', 4271, 'N14148', 'EWR', 'ALB', 32.0, 143.0, 16.0, 19.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1802, 1758, 4.0, 1943, 1936, 7.0, 'UA', 1139, 'N76508', 'EWR', 'ORD', 115.0, 719.0, 17.0, 58.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1804, 1705, 59.0, 2100, 2008, 52.0, 'B6', 143, 'N585JB', 'JFK', 'PBI', 145.0, 1028.0, 17.0, 5.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1804, 1810, -6.0, 2132, 2104, 28.0, 'UA', 812, 'N803UA', 'EWR', 'LAS', 334.0, 2227.0, 18.0, 10.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1805, 1807, -2.0, 2122, 2128, -6.0, 'B6', 217, 'N605JB', 'JFK', 'LGB', 350.0, 2465.0, 18.0, 7.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1805, 1810, -5.0, 2139, 2142, -3.0, 'B6', 173, 'N563JB', 'JFK', 'SJC', 361.0, 2569.0, 18.0, 10.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1806, 1759, 7.0, 2027, 2014, 13.0, 'EV', 4397, 'N14173', 'EWR', 'MCI', 151.0, 1092.0, 17.0, 59.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1806, 1815, -9.0, 2017, 2026, -9.0, 'DL', 2019, 'N351NW', 'LGA', 'MSP', 155.0, 1020.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1807, 1810, -3.0, 2109, 2130, -21.0, 'AA', 1611, 'N3JWAA', 'LGA', 'MIA', 151.0, 1096.0, 18.0, 10.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1807, 1810, -3.0, 2158, 2150, 8.0, 'UA', 979, 'N410UA', 'EWR', 'PHX', 305.0, 2133.0, 18.0, 10.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1809, 1810, -1.0, 2041, 2037, 4.0, '9E', 3542, 'N913XJ', 'JFK', 'MSP', 172.0, 1029.0, 18.0, 10.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1809, 1815, -6.0, 1927, 1952, -25.0, '9E', 4277, 'N8506C', 'JFK', 'ORF', 48.0, 290.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1810, 1815, -5.0, 1921, 1958, -37.0, '9E', 4019, 'N8444F', 'JFK', 'RIC', 50.0, 288.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1811, 1820, -9.0, 2149, 2150, -1.0, 'AA', 119, 'N3DHAA', 'EWR', 'LAX', 345.0, 2454.0, 18.0, 20.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1811, 1815, -4.0, 2111, 2130, -19.0, 'AS', 7, 'N402AS', 'EWR', 'SEA', 313.0, 2402.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1813, 1815, -2.0, 2058, 2050, 8.0, 'DL', 926, 'N304DQ', 'EWR', 'ATL', 117.0, 746.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1814, 1815, -1.0, 2105, 2032, 33.0, 'EV', 5054, 'N761ND', 'EWR', 'MSP', 174.0, 1008.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1814, 1820, -6.0, 2100, 2115, -15.0, 'B6', 711, 'N646JB', 'JFK', 'LAS', 318.0, 2248.0, 18.0, 20.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1815, 1800, 15.0, 2012, 2006, 6.0, 'US', 373, 'N523UW', 'JFK', 'CLT', 79.0, 541.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1816, 1820, -4.0, 1945, 2005, -20.0, 'AA', 353, 'N552AA', 'LGA', 'ORD', 115.0, 733.0, 18.0, 20.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1819, 1819, 0.0, 1955, 1932, 23.0, 'EV', 4520, 'N11150', 'EWR', 'PWM', 53.0, 284.0, 18.0, 19.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1821, 1830, -9.0, 2037, 2044, -7.0, 'EV', 5203, 'N755EV', 'EWR', 'DTW', 89.0, 488.0, 18.0, 30.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1821, 1815, 6.0, 2031, 2037, -6.0, '9E', 3424, 'N934XJ', 'JFK', 'DTW', 90.0, 509.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1821, 1819, 2.0, 2157, 2138, 19.0, 'UA', 593, 'N848UA', 'EWR', 'SNA', 355.0, 2434.0, 18.0, 19.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1821, 1800, 21.0, 1946, 1939, 7.0, 'UA', 691, 'N428UA', 'LGA', 'ORD', 118.0, 733.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1823, 1805, 18.0, 1941, 1935, 6.0, 'WN', 389, 'N259WN', 'LGA', 'MDW', 112.0, 725.0, 18.0, 5.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1824, 1830, -6.0, 1957, 2015, -18.0, 'MQ', 4674, 'N532MQ', 'LGA', 'CLE', 71.0, 419.0, 18.0, 30.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1824, 1829, -5.0, 2014, 2032, -18.0, 'US', 1973, 'N169UW', 'EWR', 'CLT', 77.0, 529.0, 18.0, 29.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1826, 1830, -4.0, 2144, 2202, -18.0, 'UA', 272, 'N517UA', 'JFK', 'SFO', 346.0, 2586.0, 18.0, 30.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1827, 1828, -1.0, 2031, 2026, 5.0, 'EV', 4410, 'N18557', 'EWR', 'CAE', 89.0, 602.0, 18.0, 28.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1827, 1650, 97.0, 1940, 1820, 80.0, 'AA', 1790, 'N3JPAA', 'JFK', 'BOS', 46.0, 187.0, 16.0, 50.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1827, 1755, 32.0, 2104, 2053, 11.0, 'B6', 391, 'N583JB', 'LGA', 'MCO', 133.0, 950.0, 17.0, 55.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1827, 1835, -8.0, 1932, 1950, -18.0, 'MQ', 3944, 'N909MQ', 'JFK', 'BWI', 33.0, 184.0, 18.0, 35.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1829, 1827, 2.0, 2102, 2045, 17.0, 'UA', 612, 'N519UA', 'EWR', 'DEN', 221.0, 1605.0, 18.0, 27.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1829, 1810, 19.0, 2133, 2120, 13.0, 'UA', 1292, 'N37462', 'EWR', 'FLL', 139.0, 1065.0, 18.0, 10.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1830, 1830, 0.0, 2216, 2148, 28.0, 'UA', 1165, 'N27239', 'EWR', 'LAX', 354.0, 2454.0, 18.0, 30.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1832, 1808, 24.0, 2025, 1949, 36.0, 'UA', 1053, 'N27733', 'EWR', 'CLE', 62.0, 404.0, 18.0, 8.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1832, 1815, 17.0, 1951, 1939, 12.0, 'UA', 1703, 'N77530', 'EWR', 'BOS', 41.0, 200.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1833, 1835, -2.0, 2123, 2212, -49.0, 'DL', 1643, 'N3753', 'JFK', 'SEA', 327.0, 2422.0, 18.0, 35.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1833, 1840, -7.0, 2004, 2020, -16.0, 'MQ', 3730, 'N531MQ', 'EWR', 'ORD', 110.0, 719.0, 18.0, 40.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1838, 1846, -8.0, 1959, 2019, -20.0, 'B6', 130, 'N281JB', 'JFK', 'BUF', 54.0, 301.0, 18.0, 46.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1838, 1750, 48.0, 1949, 1908, 41.0, 'B6', 1307, 'N190JB', 'JFK', 'IAD', 51.0, 228.0, 17.0, 50.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1838, 1840, -2.0, 2034, 2049, -15.0, 'DL', 2131, 'N358NW', 'LGA', 'DTW', 88.0, 502.0, 18.0, 40.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1838, 1808, 30.0, 2144, 2106, 38.0, 'UA', 1269, 'N37252', 'EWR', 'PBI', 142.0, 1023.0, 18.0, 8.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1839, 1845, -6.0, 2058, 2137, -39.0, '9E', 3369, 'N604LR', 'JFK', 'MSY', 176.0, 1182.0, 18.0, 45.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1841, 1845, -4.0, 2018, 2030, -12.0, 'MQ', 4517, 'N739MQ', 'LGA', 'CRW', 72.0, 444.0, 18.0, 45.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1844, 1850, -6.0, 2118, 2212, -54.0, 'DL', 2159, 'N3749D', 'JFK', 'MCO', 126.0, 944.0, 18.0, 50.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1844, 1845, -1.0, 2137, 2221, -44.0, 'DL', 2190, 'N328NW', 'JFK', 'MIA', 142.0, 1089.0, 18.0, 45.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1844, 1855, -11.0, 2052, 2100, -8.0, 'MQ', 4649, 'N504MQ', 'LGA', 'MSP', 165.0, 1020.0, 18.0, 55.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1849, 1855, -6.0, 2128, 2210, -42.0, 'DL', 2391, 'N364NW', 'JFK', 'TPA', 141.0, 1005.0, 18.0, 55.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1850, 1856, -6.0, 2125, 2204, -39.0, 'UA', 891, 'N425UA', 'LGA', 'IAH', 198.0, 1416.0, 18.0, 56.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1850, 1850, 0.0, 2034, 2055, -21.0, 'US', 1491, 'N560UW', 'LGA', 'CLT', 82.0, 544.0, 18.0, 50.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1852, 1855, -3.0, 2220, 2245, -25.0, 'VX', 29, 'N621VA', 'JFK', 'SFO', 362.0, 2586.0, 18.0, 55.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1853, 1850, 3.0, 2038, 2050, -12.0, 'AA', 2019, 'N484AA', 'LGA', 'STL', 131.0, 888.0, 18.0, 50.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1853, 1900, -7.0, 2131, 2146, -15.0, 'DL', 947, 'N675DL', 'LGA', 'ATL', 118.0, 762.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1853, 1855, -2.0, 2124, 2142, -18.0, 'DL', 951, 'N1602', 'JFK', 'ATL', 112.0, 760.0, 18.0, 55.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1853, 1900, -7.0, 2016, 2051, -35.0, 'DL', 1255, 'N323NB', 'LGA', 'PIT', 55.0, 335.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1853, 1900, -7.0, 2002, 2015, -13.0, 'US', 2187, 'N749US', 'LGA', 'DCA', 46.0, 214.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1854, 1858, -4.0, 2033, 2055, -22.0, 'EV', 5038, 'N708EV', 'LGA', 'BHM', 127.0, 866.0, 18.0, 58.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1854, 1904, -10.0, 2027, 2026, 1.0, 'EV', 4131, 'N36915', 'EWR', 'RIC', 50.0, 277.0, 19.0, 4.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1854, 1859, -5.0, 2201, 2225, -24.0, 'B6', 171, 'N648JB', 'JFK', 'SMF', 341.0, 2521.0, 18.0, 59.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1856, 1900, -4.0, 2029, 2057, -28.0, '9E', 3368, 'N917XJ', 'JFK', 'PIT', 66.0, 340.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1856, 1835, 21.0, 2152, 2128, 24.0, 'B6', 527, 'N608JB', 'EWR', 'MCO', 133.0, 937.0, 18.0, 35.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1856, 1900, -4.0, 2003, 2012, -9.0, 'US', 2140, 'N961UW', 'LGA', 'BOS', 39.0, 184.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1857, 1905, -8.0, 2152, 2225, -33.0, 'AA', 21, 'N328AA', 'JFK', 'LAX', 336.0, 2475.0, 19.0, 5.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1857, 1859, -2.0, 2226, 2247, -21.0, 'B6', 179, 'N524JB', 'JFK', 'PHX', 301.0, 2153.0, 18.0, 59.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1857, 1900, -3.0, 2208, 2238, -30.0, 'DL', 87, 'N721TW', 'JFK', 'LAX', 337.0, 2475.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1857, 1900, -3.0, 2239, 2301, -22.0, 'DL', 1465, 'N717TW', 'JFK', 'SFO', 360.0, 2586.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1858, 1905, -7.0, 2059, 2113, -14.0, 'EV', 4543, 'N17115', 'EWR', 'DSM', 142.0, 1017.0, 19.0, 5.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1900, 1900, 0.0, 2012, 2018, -6.0, 'EV', 5714, 'N829AS', 'JFK', 'IAD', 44.0, 228.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1902, 1905, -3.0, 2027, 2040, -13.0, 'WN', 981, 'N238WN', 'LGA', 'MKE', 121.0, 738.0, 19.0, 5.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1902, 1900, 2.0, 2135, 2134, 1.0, 'FL', 645, 'N996AT', 'LGA', 'ATL', 119.0, 762.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1902, 1900, 2.0, 2029, 2040, -11.0, 'UA', 954, 'N413UA', 'EWR', 'ORD', 109.0, 719.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1902, 1905, -3.0, 2230, 2235, -5.0, 'UA', 1111, 'N87507', 'EWR', 'SFO', 349.0, 2565.0, 19.0, 5.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1906, 1910, -4.0, 2200, 2215, -15.0, 'AA', 2075, 'N439AA', 'EWR', 'DFW', 192.0, 1372.0, 19.0, 10.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1908, 1915, -7.0, 2052, 2111, -19.0, '9E', 3525, 'N920XJ', 'JFK', 'ORD', 117.0, 740.0, 19.0, 15.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1909, 1845, 24.0, 2130, 2050, 40.0, 'EV', 4227, 'N13553', 'EWR', 'GRR', 101.0, 605.0, 18.0, 45.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1910, 1915, -5.0, 2147, 2212, -25.0, 'B6', 155, 'N712JB', 'JFK', 'MCO', 124.0, 944.0, 19.0, 15.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1910, 1910, 0.0, 2219, 2231, -12.0, 'B6', 87, 'N760JB', 'JFK', 'SLC', 281.0, 1990.0, 19.0, 10.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1911, 1915, -4.0, 2129, 2137, -8.0, 'EV', 4085, 'N13133', 'EWR', 'OMA', 163.0, 1134.0, 19.0, 15.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1913, 1920, -7.0, 2200, 2246, -46.0, 'DL', 83, 'N3769L', 'JFK', 'FLL', 143.0, 1069.0, 19.0, 20.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1916, 1920, -4.0, 2228, 2258, -30.0, 'DL', 6, 'N3750D', 'JFK', 'SLC', 279.0, 1990.0, 19.0, 20.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1917, 1920, -3.0, 2037, 2100, -23.0, 'AA', 359, 'N3HAAA', 'LGA', 'ORD', 110.0, 733.0, 19.0, 20.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1919, 1920, -1.0, 2047, 2121, -34.0, '9E', 3373, 'N600LR', 'JFK', 'RDU', 66.0, 427.0, 19.0, 20.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1919, 1925, -6.0, 2217, 2235, -18.0, 'DL', 2370, 'N324NB', 'LGA', 'PBI', 145.0, 1035.0, 19.0, 25.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1922, 1920, 2.0, 2242, 2315, -33.0, 'DL', 1345, 'N3757D', 'JFK', 'PHX', 302.0, 2153.0, 19.0, 20.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1922, 1925, -3.0, 2207, 2229, -22.0, 'DL', 1485, 'N975DL', 'LGA', 'MCO', 135.0, 950.0, 19.0, 25.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1922, 1925, -3.0, 2223, 2247, -24.0, 'DL', 2139, 'N976DL', 'LGA', 'MIA', 157.0, 1096.0, 19.0, 25.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1923, 1925, -2.0, 2203, 2243, -40.0, 'DL', 1729, 'N900PC', 'JFK', 'LAS', 309.0, 2248.0, 19.0, 25.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1925, 1930, -5.0, 2133, 2151, -18.0, '9E', 3798, 'N8797A', 'JFK', 'CLT', 81.0, 541.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1925, 1925, 0.0, 2042, 2045, -3.0, '9E', 4127, 'N8688C', 'JFK', 'IAD', 49.0, 228.0, 19.0, 25.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1925, 1930, -5.0, 2230, 2243, -13.0, 'DL', 1435, 'N934DL', 'LGA', 'TPA', 144.0, 1010.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1925, 1930, -5.0, 2150, 2213, -23.0, 'DL', 1715, 'N327NB', 'LGA', 'MSY', 170.0, 1183.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1926, 1930, -4.0, 2058, 2115, -17.0, 'EV', 3274, 'N13538', 'LGA', 'CLE', 69.0, 419.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1926, 1930, -4.0, 2127, 2131, -4.0, 'EV', 4532, 'N12126', 'EWR', 'CHS', 95.0, 628.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1928, 1936, -8.0, 2041, 2056, -15.0, 'EV', 5693, 'N820AS', 'LGA', 'IAD', 54.0, 229.0, 19.0, 36.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1928, 1930, -2.0, 2251, 2247, 4.0, 'DL', 1854, 'N369NB', 'LGA', 'FLL', 145.0, 1076.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1929, 1930, -1.0, 2052, 2103, -11.0, 'EV', 4670, 'N16919', 'EWR', 'BNA', 112.0, 748.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1929, 1930, -1.0, 2242, 2312, -30.0, 'B6', 91, 'N656JB', 'JFK', 'OAK', 353.0, 2576.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1931, 1935, -4.0, 2215, 2240, -25.0, 'AA', 791, 'N3CCAA', 'LGA', 'DFW', 203.0, 1389.0, 19.0, 35.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1932, 1935, -3.0, 2219, 2220, -1.0, 'EV', 4204, 'N16183', 'EWR', 'OKC', 192.0, 1325.0, 19.0, 35.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1933, 1904, 29.0, 2134, 2109, 25.0, 'EV', 4437, 'N11544', 'EWR', 'CLT', 79.0, 529.0, 19.0, 4.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1934, 1940, -6.0, 2047, 2100, -13.0, 'WN', 633, 'N467WN', 'EWR', 'MDW', 113.0, 711.0, 19.0, 40.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1934, 1935, -1.0, 2223, 2233, -10.0, 'UA', 1416, 'N12238', 'EWR', 'IAH', 202.0, 1400.0, 19.0, 35.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1935, 1940, -5.0, 2044, 2106, -22.0, '9E', 4091, 'N829AY', 'JFK', 'BWI', 39.0, 184.0, 19.0, 40.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1936, 1910, 26.0, 2130, 2055, 35.0, 'MQ', 4569, 'N711MQ', 'LGA', 'RDU', 71.0, 431.0, 19.0, 10.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1937, 1940, -3.0, 2224, 2240, -16.0, 'AA', 1787, 'N3DUAA', 'JFK', 'TPA', 147.0, 1005.0, 19.0, 40.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1938, 1943, -5.0, 2050, 2053, -3.0, 'EV', 4312, 'N12922', 'EWR', 'DCA', 42.0, 199.0, 19.0, 43.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1939, 1945, -6.0, 2059, 2105, -6.0, 'EV', 4108, 'N12564', 'EWR', 'IAD', 45.0, 212.0, 19.0, 45.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1941, 1940, 1.0, 2231, 2249, -18.0, 'B6', 381, 'N653JB', 'LGA', 'FLL', 146.0, 1076.0, 19.0, 40.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1944, 1945, -1.0, 2205, 2241, -36.0, '9E', 3314, 'N605LR', 'JFK', 'JAX', 120.0, 828.0, 19.0, 45.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1946, 1855, 51.0, 18, 2355, 23.0, 'AA', 1613, 'N5DMAA', 'JFK', 'SJU', 185.0, 1598.0, 18.0, 55.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1947, 1950, -3.0, 2258, 2335, -37.0, 'B6', 645, 'N643JB', 'JFK', 'SFO', 349.0, 2586.0, 19.0, 50.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1950, 1959, -9.0, 2134, 2144, -10.0, 'MQ', 4423, 'N856MQ', 'JFK', 'RDU', 77.0, 427.0, 19.0, 59.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1950, 2000, -10.0, 2248, 2318, -30.0, 'UA', 890, 'N424UA', 'EWR', 'MIA', 152.0, 1085.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1951, 2000, -9.0, 2149, 2208, -19.0, 'EV', 3822, 'N15980', 'EWR', 'TYS', 98.0, 631.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1952, 2000, -8.0, 2106, 2117, -11.0, 'US', 2189, 'N747UW', 'LGA', 'DCA', 45.0, 214.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1953, 2000, -7.0, 2242, 2243, -1.0, 'DL', 1147, 'N645DL', 'LGA', 'ATL', 110.0, 762.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1953, 2000, -7.0, 2240, 2256, -16.0, 'UA', 1482, 'N38257', 'EWR', 'LAS', 317.0, 2227.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1954, 2000, -6.0, 2146, 2208, -22.0, 'EV', 4536, 'N13913', 'EWR', 'CVG', 90.0, 569.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1955, 2000, -5.0, 2124, 2137, -13.0, 'EV', 4106, 'N26549', 'EWR', 'GSO', 71.0, 445.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1955, 1955, 0.0, 2304, 2310, -6.0, 'AA', 1709, 'N3HYAA', 'LGA', 'MIA', 146.0, 1096.0, 19.0, 55.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1955, 2000, -5.0, 2239, 2305, -26.0, 'B6', 21, 'N517JB', 'JFK', 'TPA', 141.0, 1005.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1955, 2000, -5.0, 2055, 2143, -48.0, 'DL', 402, 'N322NB', 'JFK', 'BOS', 36.0, 187.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1955, 2000, -5.0, 2311, 2329, -18.0, 'VX', 415, 'N641VA', 'JFK', 'LAX', 355.0, 2475.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1955, 2000, -5.0, 2152, 2139, 13.0, 'UA', 695, 'N490UA', 'LGA', 'ORD', 123.0, 733.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1955, 2000, -5.0, 2111, 2114, -3.0, 'US', 2142, 'N949UW', 'LGA', 'BOS', 39.0, 184.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1956, 2000, -4.0, 2144, 2224, -40.0, '9E', 3439, 'N918XJ', 'JFK', 'CVG', 85.0, 589.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1958, 2000, -2.0, 2130, 2147, -17.0, '9E', 3320, 'N921XJ', 'JFK', 'BUF', 57.0, 301.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2000, 2005, -5.0, 2246, 2258, -12.0, 'UA', 711, 'N411UA', 'EWR', 'MCO', 132.0, 937.0, 20.0, 5.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2001, 2000, 1.0, 2114, 2125, -11.0, 'EV', 4412, 'N24103', 'EWR', 'BUF', 51.0, 282.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2001, 2005, -4.0, 2251, 2311, -20.0, 'UA', 983, 'N845UA', 'EWR', 'TPA', 141.0, 997.0, 20.0, 5.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2004, 2000, 4.0, 2223, 2232, -9.0, 'EV', 4333, 'N11155', 'EWR', 'TUL', 178.0, 1215.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2004, 2000, 4.0, 2131, 2139, -8.0, 'UA', 1094, 'N15710', 'EWR', 'CLE', 64.0, 404.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2005, 2005, 0.0, 2128, 2133, -5.0, 'EV', 4224, 'N12921', 'EWR', 'MKE', 116.0, 725.0, 20.0, 5.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2006, 1935, 31.0, 2147, 2145, 2.0, '9E', 3899, 'N8907A', 'JFK', 'CLE', 73.0, 425.0, 19.0, 35.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 2006, 1830, 96.0, 2300, 2205, 55.0, 'AA', 269, 'N3ECAA', 'JFK', 'SEA', 323.0, 2422.0, 18.0, 30.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 2006, 2015, -9.0, 2213, 2210, 3.0, 'MQ', 4555, 'N730MQ', 'LGA', 'CMH', 80.0, 479.0, 20.0, 15.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2015, 2020, -5.0, 2258, 2245, 13.0, 'MQ', 4662, 'N507MQ', 'LGA', 'ATL', 121.0, 762.0, 20.0, 20.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2018, 2025, -7.0, 2304, 2331, -27.0, 'UA', 299, 'N421UA', 'EWR', 'DFW', 207.0, 1372.0, 20.0, 25.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2020, 2000, 20.0, 2259, 2312, -13.0, 'B6', 801, 'N537JB', 'JFK', 'FLL', 139.0, 1069.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2020, 2025, -5.0, 2327, 2329, -2.0, 'UA', 771, 'N518UA', 'JFK', 'LAX', 335.0, 2475.0, 20.0, 25.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2021, 2029, -8.0, 2219, 2233, -14.0, 'EV', 4348, 'N11187', 'EWR', 'MSP', 153.0, 1008.0, 20.0, 29.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2023, 2030, -7.0, 2347, 2350, -3.0, 'B6', 1069, 'N334JB', 'JFK', 'AUS', 215.0, 1521.0, 20.0, 30.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2023, 2030, -7.0, 2200, 2206, -6.0, 'FL', 354, 'N929AT', 'LGA', 'CAK', 62.0, 397.0, 20.0, 30.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2026, 2005, 21.0, 2215, 2204, 11.0, 'EV', 4133, 'N14952', 'EWR', 'GSP', 91.0, 594.0, 20.0, 5.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2027, 2030, -3.0, 2307, 2338, -31.0, 'UA', 1225, 'N38727', 'EWR', 'PBI', 138.0, 1023.0, 20.0, 30.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2034, 2035, -1.0, 112, 126, -14.0, 'UA', 1071, 'N73283', 'EWR', 'BQN', 189.0, 1585.0, 20.0, 35.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2035, 2035, 0.0, 2138, 2154, -16.0, 'UA', 1243, 'N76517', 'EWR', 'BOS', 39.0, 200.0, 20.0, 35.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2037, 2040, -3.0, 2328, 2345, -17.0, 'B6', 629, 'N197JB', 'JFK', 'HOU', 210.0, 1428.0, 20.0, 40.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2037, 2040, -3.0, 2318, 2359, -41.0, 'B6', 165, 'N569JB', 'JFK', 'PDX', 322.0, 2454.0, 20.0, 40.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2038, 2045, -7.0, 2139, 2216, -37.0, '9E', 3395, 'N933XJ', 'JFK', 'DCA', 41.0, 213.0, 20.0, 45.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2038, 2045, -7.0, 2140, 2154, -14.0, 'B6', 1178, 'N640JB', 'EWR', 'BOS', 40.0, 200.0, 20.0, 45.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2039, 1940, 59.0, 2217, 2125, 52.0, 'MQ', 3783, 'N3AEMQ', 'JFK', 'CMH', 76.0, 483.0, 19.0, 40.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 2040, 2040, 0.0, 2351, 2357, -6.0, 'B6', 677, 'N809JB', 'JFK', 'LAX', 343.0, 2475.0, 20.0, 40.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2042, 2046, -4.0, 2308, 2318, -10.0, 'EV', 4645, 'N12552', 'EWR', 'JAX', 121.0, 820.0, 20.0, 46.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2044, 2005, 39.0, 2245, 2230, 15.0, '9E', 4033, 'N8533D', 'LGA', 'TYS', 94.0, 647.0, 20.0, 5.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2044, 2045, -1.0, 2212, 2225, -13.0, 'AA', 371, 'N4YHAA', 'LGA', 'ORD', 120.0, 733.0, 20.0, 45.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2050, 2100, -10.0, 2151, 2207, -16.0, 'EV', 4695, 'N13995', 'EWR', 'MHT', 39.0, 209.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2050, 2100, -10.0, 2345, 2349, -4.0, 'B6', 399, 'N644JB', 'LGA', 'MCO', 130.0, 950.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2052, 2055, -3.0, 2316, 2250, 26.0, 'MQ', 4573, 'N725MQ', 'LGA', 'DTW', 94.0, 502.0, 20.0, 55.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2053, 2100, -7.0, 2209, 2220, -11.0, 'MQ', 3744, 'N510MQ', 'EWR', 'ORD', 117.0, 719.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2054, 2100, -6.0, 2202, 2207, -5.0, 'US', 2144, 'N952UW', 'LGA', 'BOS', 34.0, 184.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2055, 2100, -5.0, 2216, 2211, 5.0, 'US', 2191, 'N770UW', 'LGA', 'DCA', 42.0, 214.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2056, 2100, -4.0, 2236, 2235, 1.0, 'MQ', 4507, 'N846MQ', 'LGA', 'RDU', 68.0, 431.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2058, 2100, -2.0, 2229, 2225, 4.0, 'WN', 530, 'N443WN', 'LGA', 'MDW', 117.0, 725.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2059, 2100, -1.0, 2256, 2250, 6.0, 'MQ', 4584, 'N542MQ', 'LGA', 'CLT', 80.0, 544.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2100, 2100, 0.0, 2201, 2209, -8.0, 'B6', 1020, 'N663JB', 'JFK', 'BOS', 36.0, 187.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2100, 2045, 15.0, 2321, 2310, 11.0, 'B6', 115, 'N283JB', 'JFK', 'MSY', 176.0, 1182.0, 20.0, 45.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2100, 2100, 0.0, 37, 31, 6.0, 'DL', 2363, 'N705TW', 'JFK', 'LAX', 343.0, 2475.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2104, 2107, -3.0, 2318, 2322, -4.0, 'EV', 3819, 'N16559', 'EWR', 'SDF', 110.0, 642.0, 21.0, 7.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2104, 2110, -6.0, 2337, 2355, -18.0, 'B6', 529, 'N507JB', 'EWR', 'MCO', 127.0, 937.0, 21.0, 10.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2109, 2029, 40.0, 2219, 2140, 39.0, '9E', 3609, 'N800AY', 'JFK', 'PHL', 25.0, 94.0, 20.0, 29.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2114, 2125, -11.0, 2230, 2240, -10.0, 'MQ', 4449, 'N840MQ', 'JFK', 'DCA', 53.0, 213.0, 21.0, 25.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2118, 2125, -7.0, 2206, 2224, -18.0, 'EV', 4404, 'N15985', 'EWR', 'PVD', 31.0, 160.0, 21.0, 25.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2119, 2129, -10.0, 2220, 2231, -11.0, 'EV', 4088, 'N11107', 'EWR', 'DCA', 39.0, 199.0, 21.0, 29.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2122, 2125, -3.0, 2234, 2250, -16.0, 'MQ', 4660, 'N500MQ', 'LGA', 'BNA', 109.0, 764.0, 21.0, 25.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2124, 2130, -6.0, 2334, 2, -28.0, 'B6', 97, 'N645JB', 'JFK', 'DEN', 221.0, 1626.0, 21.0, 30.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2127, 2038, 49.0, 2214, 2139, 35.0, 'EV', 4309, 'N13955', 'EWR', 'ALB', 28.0, 143.0, 20.0, 38.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2129, 2130, -1.0, 148, 218, -30.0, 'B6', 701, 'N193JB', 'JFK', 'SJU', 186.0, 1598.0, 21.0, 30.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2129, 2130, -1.0, 2, 25, -23.0, 'B6', 383, 'N746JB', 'LGA', 'FLL', 138.0, 1076.0, 21.0, 30.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2130, 2135, -5.0, 6, 24, -18.0, 'B6', 43, 'N661JB', 'JFK', 'MCO', 129.0, 944.0, 21.0, 35.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2133, 2129, 4.0, 2223, 2224, -1.0, 'EV', 3271, 'N12569', 'EWR', 'PHL', 30.0, 80.0, 21.0, 29.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2133, 2135, -2.0, 22, 36, -14.0, 'B6', 11, 'N624JB', 'JFK', 'FLL', 144.0, 1069.0, 21.0, 35.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2135, 2140, -5.0, 2251, 2306, -15.0, 'B6', 104, 'N239JB', 'JFK', 'BUF', 53.0, 301.0, 21.0, 40.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2137, 1630, 307.0, 17, 1925, 292.0, 'UA', 1178, 'N75435', 'EWR', 'IAH', 197.0, 1400.0, 16.0, 30.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 2141, 2042, 59.0, 2320, 2231, 49.0, 'EV', 3833, 'N12567', 'EWR', 'STL', 136.0, 872.0, 20.0, 42.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2142, 2154, -12.0, 37, 50, -13.0, 'B6', 515, 'N618JB', 'EWR', 'FLL', 136.0, 1065.0, 21.0, 54.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2145, 2135, 10.0, 45, 50, -5.0, 'AA', 185, 'N335AA', 'JFK', 'LAX', 341.0, 2475.0, 21.0, 35.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2145, 2135, 10.0, 34, 22, 12.0, 'B6', 199, 'N521JB', 'JFK', 'LAS', 321.0, 2248.0, 21.0, 35.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2150, 2015, 95.0, 2256, 2130, 86.0, 'AA', 1762, 'N3BUAA', 'JFK', 'BOS', 36.0, 187.0, 20.0, 15.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2151, 2159, -8.0, 2250, 2315, -25.0, 'EV', 4162, 'N27190', 'EWR', 'BTV', 45.0, 266.0, 21.0, 59.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2155, 2159, -4.0, 2302, 2316, -14.0, 'DL', 2155, 'N360NW', 'LGA', 'PWM', 44.0, 269.0, 21.0, 59.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2159, 2159, 0.0, 2247, 2300, -13.0, 'EV', 4519, 'N13124', 'EWR', 'BWI', 33.0, 169.0, 21.0, 59.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2211, 2125, 46.0, 2303, 2234, 29.0, 'UA', 1066, 'N17244', 'EWR', 'BOS', 36.0, 200.0, 21.0, 25.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2228, 2159, 29.0, 2345, 2306, 39.0, 'EV', 4322, 'N14916', 'EWR', 'PWM', 52.0, 284.0, 21.0, 59.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2230, 2230, 0.0, 254, 313, -19.0, 'B6', 713, 'N655JB', 'JFK', 'SJU', 186.0, 1598.0, 22.0, 30.0, '2013-01-11T03:00:00Z'), #> (2013, 1, 10, 2241, 2250, -9.0, 2349, 2359, -10.0, 'B6', 608, 'N236JB', 'JFK', 'PWM', 48.0, 273.0, 22.0, 50.0, '2013-01-11T03:00:00Z'), #> (2013, 1, 10, 2245, 2245, 0.0, 18, 2357, 21.0, 'B6', 128, 'N556JB', 'JFK', 'BTV', 47.0, 266.0, 22.0, 45.0, '2013-01-11T03:00:00Z'), #> (2013, 1, 10, 2245, 2249, -4.0, 2346, 2357, -11.0, 'B6', 22, 'N281JB', 'JFK', 'SYR', 40.0, 209.0, 22.0, 49.0, '2013-01-11T03:00:00Z'), #> (2013, 1, 10, 2247, 2250, -3.0, 2357, 7, -10.0, 'B6', 30, 'N190JB', 'JFK', 'ROC', 47.0, 264.0, 22.0, 50.0, '2013-01-11T03:00:00Z'), #> (2013, 1, 10, 2249, 2105, 104.0, 2355, 2217, 98.0, 'EV', 4119, 'N17169', 'EWR', 'RIC', 47.0, 277.0, 21.0, 5.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2250, 2253, -3.0, 6, 15, -9.0, 'B6', 112, 'N590JB', 'JFK', 'BUF', 53.0, 301.0, 22.0, 53.0, '2013-01-11T03:00:00Z'), #> (2013, 1, 10, 2320, 2250, 30.0, 16, 2354, 22.0, 'B6', 1018, 'N612JB', 'JFK', 'BOS', 35.0, 187.0, 22.0, 50.0, '2013-01-11T03:00:00Z'), #> (2013, 1, 10, NULL, 635, NULL, NULL, 940, NULL, 'AA', 711, 'N3CDAA', 'LGA', 'DFW', NULL, 1389.0, 6.0, 35.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, NULL, 1500, NULL, NULL, 1639, NULL, 'UA', 685, NULL, 'LGA', 'ORD', NULL, 733.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, NULL, 700, NULL, NULL, 1007, NULL, 'UA', 719, NULL, 'EWR', 'DFW', NULL, 1372.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 2, 10, 455, 500, -5.0, 625, 650, -25.0, 'US', 881, 'N420US', 'EWR', 'CLT', 76.0, 529.0, 5.0, 0.0, '2013-02-10T10:00:00Z'), #> (2013, 2, 10, 528, 525, 3.0, 816, 821, -5.0, 'UA', 1545, 'N77510', 'EWR', 'IAH', 211.0, 1400.0, 5.0, 25.0, '2013-02-10T10:00:00Z'), #> (2013, 2, 10, 542, 540, 2.0, 846, 850, -4.0, 'AA', 1141, 'N5CPAA', 'JFK', 'MIA', 141.0, 1089.0, 5.0, 40.0, '2013-02-10T10:00:00Z'), #> (2013, 2, 10, 549, 540, 9.0, 1036, 1016, 20.0, 'B6', 725, 'N618JB', 'JFK', 'BQN', 179.0, 1576.0, 5.0, 40.0, '2013-02-10T10:00:00Z'), #> (2013, 2, 10, 553, 600, -7.0, 826, 858, -32.0, 'B6', 507, 'N789JB', 'EWR', 'FLL', 137.0, 1065.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 556, 600, -4.0, 708, 716, -8.0, 'EV', 4201, 'N11121', 'EWR', 'IAD', 48.0, 212.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 556, 600, -4.0, 923, 910, 13.0, 'AA', 707, 'N3BTAA', 'LGA', 'DFW', 243.0, 1389.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 557, 600, -3.0, 854, 911, -17.0, 'B6', 135, 'N505JB', 'JFK', 'RSW', 154.0, 1074.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 557, 559, -2.0, 915, 930, -15.0, 'UA', 691, 'N525UA', 'JFK', 'SFO', 358.0, 2586.0, 5.0, 59.0, '2013-02-10T10:00:00Z'), #> (2013, 2, 10, 558, 600, -2.0, 810, 815, -5.0, 'FL', 345, 'N990AT', 'LGA', 'ATL', 111.0, 762.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 600, 600, 0.0, 849, 905, -16.0, 'B6', 125, 'N509JB', 'JFK', 'FLL', 141.0, 1069.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 601, 600, 1.0, 839, 903, -24.0, 'B6', 371, 'N633JB', 'LGA', 'FLL', 139.0, 1076.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 601, 600, 1.0, 824, 837, -13.0, 'DL', 461, 'N3766', 'LGA', 'ATL', 116.0, 762.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 602, 600, 2.0, 903, 927, -24.0, 'UA', 1737, 'N57855', 'EWR', 'LAX', 328.0, 2454.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 603, 610, -7.0, 850, 915, -25.0, 'AA', 1837, 'N3CUAA', 'LGA', 'MIA', 142.0, 1096.0, 6.0, 10.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 607, 610, -3.0, 811, 817, -6.0, 'DL', 1919, 'N326US', 'LGA', 'MSP', 159.0, 1020.0, 6.0, 10.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 610, 610, 0.0, 852, 910, -18.0, 'AA', 1895, 'N5CBAA', 'EWR', 'MIA', 141.0, 1085.0, 6.0, 10.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 612, 615, -3.0, 756, 820, -24.0, 'US', 1269, 'N709UW', 'JFK', 'CLT', 81.0, 541.0, 6.0, 15.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 613, 615, -2.0, 833, 842, -9.0, 'DL', 575, 'N346NB', 'EWR', 'ATL', 113.0, 746.0, 6.0, 15.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 618, 615, 3.0, 849, 855, -6.0, '9E', 3856, 'N146PQ', 'JFK', 'ATL', 109.0, 760.0, 6.0, 15.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 621, 610, 11.0, 855, 901, -6.0, 'B6', 145, 'N517JB', 'JFK', 'PBI', 135.0, 1028.0, 6.0, 10.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 621, 621, 0.0, 859, 930, -31.0, 'UA', 772, 'N586UA', 'EWR', 'MIA', 141.0, 1085.0, 6.0, 21.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 624, 625, -1.0, 853, 915, -22.0, 'B6', 79, 'N630JB', 'JFK', 'MCO', 128.0, 944.0, 6.0, 25.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 624, 630, -6.0, 819, 831, -12.0, 'US', 1507, 'N167US', 'EWR', 'CLT', 82.0, 529.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 625, 632, -7.0, 750, 804, -14.0, 'EV', 3271, 'N16963', 'EWR', 'BNA', 119.0, 748.0, 6.0, 32.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 625, 630, -5.0, 1124, 1140, -16.0, 'AA', 413, 'N3DGAA', 'JFK', 'SJU', 184.0, 1598.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 625, 630, -5.0, 754, 810, -16.0, 'AA', 303, 'N3GUAA', 'LGA', 'ORD', 120.0, 733.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 625, 625, 0.0, 910, 937, -27.0, 'UA', 304, 'N490UA', 'LGA', 'IAH', 207.0, 1416.0, 6.0, 25.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 625, 630, -5.0, 814, 843, -29.0, 'US', 1433, 'N187US', 'LGA', 'CLT', 82.0, 544.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 627, 630, -3.0, 842, 859, -17.0, 'DL', 2006, 'N339NB', 'LGA', 'MSY', 173.0, 1183.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 628, 635, -7.0, 904, 933, -29.0, 'B6', 983, 'N613JB', 'LGA', 'TPA', 139.0, 1010.0, 6.0, 35.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 629, 630, -1.0, 806, 809, -3.0, 'B6', 905, 'N292JB', 'JFK', 'ORD', 129.0, 740.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 631, 630, 1.0, 1009, 1014, -5.0, 'UA', 470, 'N453UA', 'EWR', 'PHX', 318.0, 2133.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 637, 636, 1.0, 915, 945, -30.0, 'UA', 1701, 'N76529', 'EWR', 'FLL', 140.0, 1065.0, 6.0, 36.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 640, 610, 30.0, 1103, 1050, 13.0, 'B6', 709, 'N594JB', 'JFK', 'SJU', 181.0, 1598.0, 6.0, 10.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 640, 645, -5.0, 820, 846, -26.0, 'US', 926, 'N556UW', 'EWR', 'CLT', 78.0, 529.0, 6.0, 45.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 643, 635, 8.0, 954, 1000, -6.0, 'UA', 421, 'N488UA', 'EWR', 'SFO', 344.0, 2565.0, 6.0, 35.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 648, 655, -7.0, 906, 926, -20.0, 'B6', 117, 'N651JB', 'JFK', 'MSY', 173.0, 1182.0, 6.0, 55.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 650, 649, 1.0, 946, 912, 34.0, 'UA', 311, 'N479UA', 'EWR', 'DEN', 275.0, 1605.0, 6.0, 49.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 654, 700, -6.0, 826, 836, -10.0, 'UA', 1277, 'N13718', 'EWR', 'ORD', 116.0, 719.0, 7.0, 0.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 655, 700, -5.0, 1007, 1045, -38.0, 'DL', 1865, 'N717TW', 'JFK', 'SFO', 346.0, 2586.0, 7.0, 0.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 655, 700, -5.0, 923, 952, -29.0, 'DL', 2285, 'N320NB', 'LGA', 'MCO', 129.0, 950.0, 7.0, 0.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 656, 700, -4.0, 1012, 1026, -14.0, 'B6', 671, 'N644JB', 'JFK', 'LAX', 352.0, 2475.0, 7.0, 0.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 700, 700, 0.0, 823, 839, -16.0, 'UA', 550, 'N848UA', 'LGA', 'ORD', 121.0, 733.0, 7.0, 0.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 701, 705, -4.0, 924, 937, -13.0, 'EV', 4304, 'N11106', 'EWR', 'MSY', 173.0, 1167.0, 7.0, 5.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 701, 700, 1.0, 950, 956, -6.0, 'B6', 203, 'N715JB', 'JFK', 'LAS', 323.0, 2248.0, 7.0, 0.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 701, 659, 2.0, 956, 959, -3.0, 'AA', 1815, 'N5EUAA', 'JFK', 'MCO', 133.0, 944.0, 6.0, 59.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 703, 700, 3.0, 1002, 1015, -13.0, 'AA', 2279, 'N3ETAA', 'LGA', 'MIA', 145.0, 1096.0, 7.0, 0.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 705, 705, 0.0, 937, 1001, -24.0, 'B6', 389, 'N709JB', 'LGA', 'MCO', 129.0, 950.0, 7.0, 5.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 708, 710, -2.0, 852, 850, 2.0, 'MQ', 3737, 'N527MQ', 'EWR', 'ORD', 133.0, 719.0, 7.0, 10.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 710, 715, -5.0, 1000, 1035, -35.0, 'AA', 825, 'N3EYAA', 'JFK', 'FLL', 145.0, 1069.0, 7.0, 15.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 710, 710, 0.0, 1153, 1202, -9.0, 'B6', 715, 'N637JB', 'JFK', 'SJU', 181.0, 1598.0, 7.0, 10.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 714, 720, -6.0, 854, 926, -32.0, 'DL', 731, 'N336NB', 'LGA', 'DTW', 83.0, 502.0, 7.0, 20.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 715, 705, 10.0, 1008, 1020, -12.0, 'B6', 981, 'N636JB', 'JFK', 'FLL', 144.0, 1069.0, 7.0, 5.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 716, 709, 7.0, 1011, 1021, -10.0, 'UA', 1525, 'N68452', 'EWR', 'RSW', 149.0, 1068.0, 7.0, 9.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 717, 715, 2.0, 1017, 1045, -28.0, 'AA', 443, 'N5EKAA', 'JFK', 'MIA', 142.0, 1089.0, 7.0, 15.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 717, 645, 32.0, 842, 807, 35.0, 'B6', 102, 'N665JB', 'JFK', 'BUF', 56.0, 301.0, 6.0, 45.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 717, 655, 22.0, 1025, 1030, -5.0, 'DL', 1415, 'N37700', 'JFK', 'SLC', 274.0, 1990.0, 6.0, 55.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 717, 720, -3.0, 952, 1018, -26.0, 'UA', 1627, 'N30401', 'EWR', 'PBI', 135.0, 1023.0, 7.0, 20.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 718, 710, 8.0, 946, 1003, -17.0, 'UA', 746, 'N509UA', 'EWR', 'MCO', 129.0, 937.0, 7.0, 10.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 720, 725, -5.0, 959, 1030, -31.0, 'AS', 11, 'N584AS', 'EWR', 'SEA', 315.0, 2402.0, 7.0, 25.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 724, 730, -6.0, 1027, 1100, -33.0, 'AA', 33, 'N327AA', 'JFK', 'LAX', 337.0, 2475.0, 7.0, 30.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 725, 730, -5.0, 812, 842, -30.0, 'US', 1153, 'N959UW', 'LGA', 'PHL', 28.0, 96.0, 7.0, 30.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 731, 735, -4.0, 1024, 1046, -22.0, 'B6', 341, 'N621JB', 'JFK', 'SRQ', 147.0, 1041.0, 7.0, 35.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 731, 730, 1.0, 1020, 1045, -25.0, 'UA', 1599, 'N16709', 'LGA', 'IAH', 211.0, 1416.0, 7.0, 30.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 732, 732, 0.0, 1034, 1045, -11.0, 'B6', 1601, 'N547JB', 'LGA', 'RSW', 155.0, 1080.0, 7.0, 32.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 732, 730, 2.0, 1053, 1115, -22.0, 'VX', 11, 'N836VA', 'JFK', 'SFO', 359.0, 2586.0, 7.0, 30.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 734, 730, 4.0, 1050, 1040, 10.0, 'AA', 715, 'N3CGAA', 'LGA', 'DFW', 224.0, 1389.0, 7.0, 30.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 734, 740, -6.0, 1021, 1105, -44.0, 'DL', 1889, 'N647DL', 'JFK', 'SEA', 322.0, 2422.0, 7.0, 40.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 735, 740, -5.0, 1018, 1040, -22.0, 'UA', 608, 'N469UA', 'EWR', 'TPA', 139.0, 997.0, 7.0, 40.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 738, 740, -2.0, 1041, 1049, -8.0, 'UA', 1740, 'N14704', 'EWR', 'IAH', 216.0, 1400.0, 7.0, 40.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 739, 750, -11.0, 916, 940, -24.0, '9E', 3611, 'N8783E', 'JFK', 'PIT', 69.0, 340.0, 7.0, 50.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 743, 745, -2.0, 925, 930, -5.0, 'AA', 309, 'N527AA', 'LGA', 'ORD', 129.0, 733.0, 7.0, 45.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 746, 745, 1.0, 1211, 1234, -23.0, 'UA', 1481, 'N75858', 'EWR', 'SJU', 181.0, 1608.0, 7.0, 45.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 751, 635, 76.0, 1053, 940, 73.0, 'AA', 711, 'N4YFAA', 'LGA', 'DFW', 221.0, 1389.0, 6.0, 35.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 751, 755, -4.0, 1046, 1110, -24.0, 'AA', 2267, 'N3GFAA', 'LGA', 'MIA', 146.0, 1096.0, 7.0, 55.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 752, 801, -9.0, 905, 916, -11.0, 'EV', 4372, 'N15980', 'EWR', 'BTV', 48.0, 266.0, 8.0, 1.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 753, 753, 0.0, 1035, 1006, 29.0, 'DL', 2119, 'N332NB', 'LGA', 'MSP', 195.0, 1020.0, 7.0, 53.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 754, 757, -3.0, 857, 909, -12.0, 'B6', 44, 'N603JB', 'JFK', 'SYR', 46.0, 209.0, 7.0, 57.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 755, 800, -5.0, 1019, 1040, -21.0, 'DL', 2047, 'N676DL', 'LGA', 'ATL', 114.0, 762.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 757, 759, -2.0, 931, 1011, -40.0, 'US', 978, 'N105UW', 'LGA', 'CLT', 78.0, 544.0, 7.0, 59.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 758, 800, -2.0, 1030, 1053, -23.0, 'B6', 517, 'N784JB', 'EWR', 'MCO', 127.0, 937.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 758, 800, -2.0, 1028, 1030, -2.0, 'WN', 692, 'N7730A', 'LGA', 'DEN', 241.0, 1620.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 759, 805, -6.0, 959, 1002, -3.0, 'EV', 4584, 'N14972', 'EWR', 'MEM', 158.0, 946.0, 8.0, 5.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 759, 800, -1.0, 1042, 1122, -40.0, 'DL', 1271, 'N947DL', 'JFK', 'FLL', 137.0, 1069.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 800, 800, 0.0, 1148, 1140, 8.0, 'WN', 1558, 'N934WN', 'EWR', 'PHX', 325.0, 2133.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 801, 756, 5.0, 1127, 1103, 24.0, 'UA', 669, 'N807UA', 'EWR', 'DFW', 231.0, 1372.0, 7.0, 56.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 802, 800, 2.0, 1049, 1124, -35.0, 'DL', 2143, 'N320US', 'JFK', 'MIA', 139.0, 1089.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 803, 810, -7.0, 930, 1000, -30.0, 'EV', 4424, 'N11181', 'EWR', 'RDU', 66.0, 416.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 803, 759, 4.0, 1037, 1030, 7.0, 'UA', 369, 'N520UA', 'LGA', 'DEN', 245.0, 1620.0, 7.0, 59.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 805, 810, -5.0, 1033, 1044, -11.0, 'FL', 346, 'N921AT', 'LGA', 'ATL', 114.0, 762.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 806, 805, 1.0, 1100, 1029, 31.0, '9E', 3538, 'N918XJ', 'JFK', 'MSP', 204.0, 1029.0, 8.0, 5.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 807, 809, -2.0, 951, 1013, -22.0, 'EV', 4479, 'N13997', 'EWR', 'MYR', 81.0, 550.0, 8.0, 9.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 807, 810, -3.0, 1237, 1315, -38.0, 'AA', 655, 'N5FLAA', 'JFK', 'STT', 183.0, 1623.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 807, 812, -5.0, 939, 950, -11.0, 'B6', 1051, 'N309JB', 'JFK', 'PIT', 69.0, 340.0, 8.0, 12.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 807, 810, -3.0, 928, 955, -27.0, 'MQ', 4406, 'N850MQ', 'JFK', 'RDU', 71.0, 427.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 808, 810, -2.0, 916, 925, -9.0, 'AA', 1838, 'N3GBAA', 'JFK', 'BOS', 38.0, 187.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 808, 815, -7.0, 949, 1015, -26.0, 'US', 675, 'N665AW', 'EWR', 'CLT', 79.0, 529.0, 8.0, 15.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 809, 810, -1.0, 1037, 1042, -5.0, 'DL', 269, 'N302NB', 'JFK', 'ATL', 111.0, 760.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 811, 820, -9.0, 942, 958, -16.0, '9E', 3317, 'N912XJ', 'JFK', 'BUF', 58.0, 301.0, 8.0, 20.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 811, 810, 1.0, 1121, 1116, 5.0, 'DL', 1959, 'N971DL', 'JFK', 'MCO', 129.0, 944.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 812, 815, -3.0, 1100, 1131, -31.0, 'DL', 1167, 'N308DE', 'JFK', 'TPA', 139.0, 1005.0, 8.0, 15.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 813, 821, -8.0, 945, 947, -2.0, 'EV', 3259, 'N12142', 'EWR', 'PWM', 51.0, 284.0, 8.0, 21.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 814, 817, -3.0, 1041, 1058, -17.0, 'DL', 914, 'N366NW', 'LGA', 'DEN', 244.0, 1620.0, 8.0, 17.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 815, 745, 30.0, 1133, 1125, 8.0, 'AA', 59, 'N361AA', 'JFK', 'SFO', 350.0, 2586.0, 7.0, 45.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 816, 819, -3.0, 1246, 1306, -20.0, 'B6', 717, 'N506JB', 'JFK', 'SJU', 181.0, 1598.0, 8.0, 19.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 817, 820, -3.0, 929, 939, -10.0, '9E', 4051, 'N8751D', 'JFK', 'BWI', 35.0, 184.0, 8.0, 20.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 820, 825, -5.0, 934, 945, -11.0, 'MQ', 4418, 'N856MQ', 'JFK', 'DCA', 48.0, 213.0, 8.0, 25.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 824, 824, 0.0, 943, 950, -7.0, 'UA', 278, 'N852UA', 'EWR', 'BOS', 37.0, 200.0, 8.0, 24.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 824, 830, -6.0, 1110, 1143, -33.0, 'UA', 1072, 'N47414', 'EWR', 'FLL', 144.0, 1065.0, 8.0, 30.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 824, 824, 0.0, 1110, 1130, -20.0, 'UA', 1492, 'N37413', 'EWR', 'MCO', 141.0, 937.0, 8.0, 24.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 825, 830, -5.0, 1015, 1023, -8.0, '9E', 4220, 'N830AY', 'JFK', 'RDU', 72.0, 427.0, 8.0, 30.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 826, 830, -4.0, 952, 950, 2.0, 'WN', 1477, 'N966WN', 'EWR', 'MDW', 125.0, 711.0, 8.0, 30.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 827, 830, -3.0, 1005, 1015, -10.0, 'AA', 313, 'N4YSAA', 'LGA', 'ORD', 121.0, 733.0, 8.0, 30.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 828, 830, -2.0, 1303, 1335, -32.0, 'DL', 301, 'N637DL', 'JFK', 'SJU', 180.0, 1598.0, 8.0, 30.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 828, 835, -7.0, 1047, 1105, -18.0, 'MQ', 4610, 'N534MQ', 'LGA', 'ATL', 113.0, 762.0, 8.0, 35.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 829, 830, -1.0, 1006, 1013, -7.0, 'EV', 3815, 'N16961', 'EWR', 'GSO', 71.0, 445.0, 8.0, 30.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 835, 815, 20.0, 1141, 1118, 23.0, 'DL', 1429, 'N396DA', 'JFK', 'LAS', 327.0, 2248.0, 8.0, 15.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 837, 840, -3.0, 1006, 1010, -4.0, 'EV', 4529, 'N19966', 'EWR', 'PIT', 57.0, 319.0, 8.0, 40.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 837, 840, -3.0, 1007, 1030, -23.0, 'MQ', 4521, 'N719MQ', 'LGA', 'RDU', 69.0, 431.0, 8.0, 40.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 837, 800, 37.0, 1228, 1125, 63.0, 'UA', 397, 'N502UA', 'JFK', 'SFO', 361.0, 2586.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 838, 845, -7.0, 1057, 1105, -8.0, 'EV', 4364, 'N11191', 'EWR', 'MCI', 172.0, 1092.0, 8.0, 45.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 838, 840, -2.0, 1154, 1151, 3.0, 'UA', 1626, 'N37287', 'EWR', 'SAN', 352.0, 2425.0, 8.0, 40.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 839, 848, -9.0, 1318, 1111, NULL, 'EV', 4625, 'N14116', 'EWR', 'XNA', NULL, 1131.0, 8.0, 48.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 841, 840, 1.0, 1144, 1203, -19.0, 'B6', 553, 'N521JB', 'EWR', 'RSW', 152.0, 1068.0, 8.0, 40.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 844, 845, -1.0, 1410, 1350, 20.0, 'AA', 1357, 'N625AA', 'JFK', 'SJU', 189.0, 1598.0, 8.0, 45.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 845, 845, 0.0, 953, 1015, -22.0, '9E', 3405, 'N915XJ', 'JFK', 'DCA', 40.0, 213.0, 8.0, 45.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 847, 847, 0.0, 1142, 1204, -22.0, 'UA', 238, 'N482UA', 'LGA', 'IAH', 215.0, 1416.0, 8.0, 47.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 849, 840, 9.0, 1006, 1003, 3.0, '9E', 3422, 'N910XJ', 'JFK', 'BOS', 43.0, 187.0, 8.0, 40.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 850, 855, -5.0, 1041, 1101, -20.0, 'EV', 4383, 'N17159', 'EWR', 'DTW', 87.0, 488.0, 8.0, 55.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 851, 855, -4.0, 1051, 1104, -13.0, '9E', 3353, 'N925XJ', 'JFK', 'DTW', 93.0, 509.0, 8.0, 55.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 852, 859, -7.0, 1125, 1142, -17.0, 'UA', 565, 'N541UA', 'EWR', 'LAS', 308.0, 2227.0, 8.0, 59.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 853, 855, -2.0, 1046, 1102, -16.0, 'EV', 4913, 'N708EV', 'EWR', 'DTW', 87.0, 488.0, 8.0, 55.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 854, 900, -6.0, 1120, 1146, -26.0, 'DL', 1747, 'N671DN', 'LGA', 'ATL', 113.0, 762.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 854, 900, -6.0, 947, 1022, -35.0, 'US', 2167, 'N770UW', 'LGA', 'DCA', 41.0, 214.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 856, 900, -4.0, 1155, 1220, -25.0, 'AA', 647, 'N5DWAA', 'JFK', 'MIA', 145.0, 1089.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 856, 850, 6.0, 1143, 1148, -5.0, 'B6', 59, 'N627JB', 'JFK', 'TPA', 137.0, 1005.0, 8.0, 50.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 856, 900, -4.0, 1049, 1116, -27.0, 'DL', 181, 'N354NW', 'LGA', 'DTW', 85.0, 502.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 856, 905, -9.0, 1101, 1115, -14.0, 'MQ', 4478, 'N722MQ', 'LGA', 'DTW', 98.0, 502.0, 9.0, 5.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 856, 857, -1.0, 1141, 1207, -26.0, 'UA', 524, 'N498UA', 'EWR', 'PBI', 139.0, 1023.0, 8.0, 57.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 857, 900, -3.0, 1440, 1540, -60.0, 'HA', 51, 'N384HA', 'JFK', 'HNL', 605.0, 4983.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 857, 805, 52.0, 1143, 1112, 31.0, 'B6', 17, 'N760JB', 'JFK', 'FLL', 145.0, 1069.0, 8.0, 5.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 857, 900, -3.0, 1205, 1227, -22.0, 'DL', 120, 'N710TW', 'JFK', 'LAX', 334.0, 2475.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 857, 900, -3.0, 1137, 1205, -28.0, 'DL', 1885, 'N330NW', 'LGA', 'MCO', 130.0, 950.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 857, 857, 0.0, 1200, 1210, -10.0, 'UA', 1202, 'N75433', 'EWR', 'MIA', 142.0, 1085.0, 8.0, 57.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 859, 900, -1.0, 1232, 1221, 11.0, 'B6', 1061, 'N197JB', 'JFK', 'AUS', 234.0, 1521.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 900, 900, 0.0, 1235, 1220, 15.0, 'AA', 1, 'N336AA', 'JFK', 'LAX', 362.0, 2475.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 901, 900, 1.0, 1043, 1048, -5.0, 'UA', 673, 'N483UA', 'EWR', 'ORD', 129.0, 719.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 903, 910, -7.0, 1139, 1147, -8.0, 'EV', 4140, 'N18556', 'EWR', 'ATL', 115.0, 746.0, 9.0, 10.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 904, 905, -1.0, 1016, 1022, -6.0, 'B6', 56, 'N316JB', 'JFK', 'BTV', 52.0, 266.0, 9.0, 5.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 904, 910, -6.0, 1035, 1055, -20.0, 'B6', 1103, 'N179JB', 'JFK', 'RDU', 74.0, 427.0, 9.0, 10.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 904, 905, -1.0, 1216, 1226, -10.0, 'DL', 2379, 'N335NB', 'LGA', 'FLL', 157.0, 1076.0, 9.0, 5.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 905, 910, -5.0, 1045, 1059, -14.0, 'UA', 1529, 'N87527', 'EWR', 'CLE', 72.0, 404.0, 9.0, 10.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 906, 857, 9.0, 1215, 1207, 8.0, 'UA', 1110, 'N33292', 'EWR', 'IAH', 218.0, 1400.0, 8.0, 57.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 907, 825, 42.0, 1111, 1026, 45.0, 'US', 487, 'N659AW', 'JFK', 'CLT', 80.0, 541.0, 8.0, 25.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 910, 835, 35.0, 1226, 1150, 36.0, 'AA', 717, 'N3GRAA', 'LGA', 'DFW', 233.0, 1389.0, 8.0, 35.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 913, 915, -2.0, 1211, 1224, -13.0, 'B6', 25, 'N554JB', 'JFK', 'FLL', 151.0, 1069.0, 9.0, 15.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 916, 729, 107.0, 1027, 849, 98.0, 'B6', 1305, 'N298JB', 'JFK', 'IAD', 46.0, 228.0, 7.0, 29.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 917, 920, -3.0, 1236, 1240, -4.0, 'AA', 1589, 'N4XKAA', 'EWR', 'DFW', 231.0, 1372.0, 9.0, 20.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 917, 908, 9.0, 1346, 1409, -23.0, 'UA', 1519, 'N33714', 'EWR', 'STT', 184.0, 1634.0, 9.0, 8.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 920, 925, -5.0, 1025, 1040, -15.0, 'EV', 4636, 'N14998', 'EWR', 'DCA', 37.0, 199.0, 9.0, 25.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 922, 815, 67.0, 1114, 958, 76.0, '9E', 3521, 'N937XJ', 'JFK', 'ORD', 146.0, 740.0, 8.0, 15.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 922, 920, 2.0, 1256, 1245, 11.0, 'AA', 721, 'N3JWAA', 'LGA', 'DFW', 238.0, 1389.0, 9.0, 20.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 922, 925, -3.0, 1156, 1150, 6.0, 'WN', 3494, 'N413WN', 'EWR', 'DEN', 241.0, 1605.0, 9.0, 25.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 926, 920, 6.0, 1245, 1233, 12.0, 'UA', 1669, 'N57864', 'EWR', 'LAX', 343.0, 2454.0, 9.0, 20.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 927, 930, -3.0, 1103, 1103, 0.0, '9E', 3661, 'N826AY', 'JFK', 'ROC', 54.0, 264.0, 9.0, 30.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 928, 921, 7.0, 1038, 1028, 10.0, 'B6', 1004, 'N564JB', 'JFK', 'BOS', 38.0, 187.0, 9.0, 21.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 928, 928, 0.0, 1051, 1050, 1.0, 'B6', 4, 'N706JB', 'JFK', 'BUF', 54.0, 301.0, 9.0, 28.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 929, 935, -6.0, 1231, 1235, -4.0, 'VX', 251, 'N842VA', 'JFK', 'LAS', 325.0, 2248.0, 9.0, 35.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 931, 929, 2.0, 1404, 1426, -22.0, 'B6', 215, 'N794JB', 'EWR', 'SJU', 187.0, 1608.0, 9.0, 29.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 933, 935, -2.0, 1209, 1237, -28.0, 'B6', 361, 'N590JB', 'LGA', 'PBI', 137.0, 1035.0, 9.0, 35.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 935, 935, 0.0, 1211, 1230, -19.0, 'B6', 41, 'N519JB', 'JFK', 'MCO', 130.0, 944.0, 9.0, 35.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 936, 930, 6.0, 1220, 1245, -25.0, 'B6', 375, 'N662JB', 'LGA', 'FLL', 148.0, 1076.0, 9.0, 30.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 939, 940, -1.0, 1234, 1250, -16.0, 'AA', 1871, 'N3CSAA', 'LGA', 'MIA', 144.0, 1096.0, 9.0, 40.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 943, 945, -2.0, 1057, 1135, -38.0, 'WN', 469, 'N246LV', 'LGA', 'BNA', 119.0, 764.0, 9.0, 45.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 945, 945, 0.0, 1128, 1130, -2.0, 'AA', 319, 'N4WKAA', 'LGA', 'ORD', 142.0, 733.0, 9.0, 45.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 945, 950, -5.0, 1058, 1103, -5.0, 'B6', 600, 'N258JB', 'JFK', 'PWM', 51.0, 273.0, 9.0, 50.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 946, 955, -9.0, 1040, 1100, -20.0, '9E', 3667, 'N8928A', 'JFK', 'PHL', 27.0, 94.0, 9.0, 55.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 949, 1006, -17.0, 1124, 1121, 3.0, 'EV', 5711, 'N825AS', 'JFK', 'IAD', 43.0, 228.0, 10.0, 6.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 950, 1000, -10.0, 1112, 1128, -16.0, 'EV', 4187, 'N13553', 'EWR', 'BNA', 116.0, 748.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 952, 955, -3.0, 1159, 1220, -21.0, 'MQ', 4654, 'N514MQ', 'LGA', 'ATL', 111.0, 762.0, 9.0, 55.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 953, 959, -6.0, 1117, 1129, -12.0, 'MQ', 4670, 'N829MQ', 'LGA', 'BNA', 125.0, 764.0, 9.0, 59.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 954, 1000, -6.0, 1240, 1304, -24.0, 'B6', 503, 'N591JB', 'EWR', 'FLL', 150.0, 1065.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 955, 1000, -5.0, 1332, 1341, -9.0, 'DL', 1765, 'N722TW', 'JFK', 'SFO', 366.0, 2586.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 956, 1000, -4.0, 1134, 1209, -35.0, 'US', 1277, 'N562UW', 'LGA', 'CLT', 81.0, 544.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 957, 959, -2.0, 1245, 1247, -2.0, 'B6', 197, 'N558JB', 'JFK', 'LAS', 316.0, 2248.0, 9.0, 59.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 958, 959, -1.0, 1340, 1333, 7.0, 'US', 338, 'N679AW', 'JFK', 'PHX', 316.0, 2153.0, 9.0, 59.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 959, 1005, -6.0, 1253, 1315, -22.0, 'UA', 454, 'N444UA', 'EWR', 'FLL', 160.0, 1065.0, 10.0, 5.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1000, 1000, 0.0, 1251, 1321, -30.0, 'DL', 2044, 'N904DL', 'LGA', 'MIA', 144.0, 1096.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1002, 1000, 2.0, 1222, 1239, -17.0, 'DL', 1847, 'N646DL', 'LGA', 'ATL', 112.0, 762.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1002, 819, 103.0, 1305, 1203, 62.0, 'UA', 665, 'N814UA', 'EWR', 'SFO', 342.0, 2565.0, 8.0, 19.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 1003, 1005, -2.0, 1248, 1303, -15.0, 'DL', 1529, 'N3735D', 'JFK', 'LAS', 317.0, 2248.0, 10.0, 5.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1003, 1000, 3.0, 1243, 1251, -8.0, 'UA', 1177, 'N24702', 'EWR', 'EGE', 263.0, 1726.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1004, 1006, -2.0, 1210, 1219, -9.0, 'EV', 4175, 'N12924', 'EWR', 'IND', 107.0, 645.0, 10.0, 6.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1005, 1010, -5.0, 1140, 1140, 0.0, 'MQ', 3795, 'N502MQ', 'EWR', 'ORD', 133.0, 719.0, 10.0, 10.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1009, 1015, -6.0, 1205, 1216, -11.0, 'US', 1427, 'N711UW', 'JFK', 'CLT', 85.0, 541.0, 10.0, 15.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1010, 1020, -10.0, 1326, 1330, -4.0, 'AA', 731, 'N3HCAA', 'LGA', 'DFW', 231.0, 1389.0, 10.0, 20.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1011, 915, 56.0, 1131, 1038, 53.0, 'B6', 20, 'N190JB', 'JFK', 'ROC', 54.0, 264.0, 9.0, 15.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 1011, 1021, -10.0, 1325, 1342, -17.0, 'DL', 1903, 'N920DE', 'LGA', 'SRQ', 157.0, 1047.0, 10.0, 21.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1014, 1016, -2.0, 1247, 1230, 17.0, 'DL', 2319, 'N979DL', 'LGA', 'MSP', 186.0, 1020.0, 10.0, 16.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1018, 1015, 3.0, 1346, 1340, 6.0, 'US', 75, 'N648AW', 'EWR', 'PHX', 308.0, 2133.0, 10.0, 15.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1020, 1025, -5.0, 1208, 1231, -23.0, 'EV', 5026, 'N608QX', 'EWR', 'DTW', 84.0, 488.0, 10.0, 25.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1022, 1030, -8.0, 1155, 1215, -20.0, 'MQ', 4471, 'N725MQ', 'LGA', 'RDU', 72.0, 431.0, 10.0, 30.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1023, 1000, 23.0, 1127, 1125, 2.0, 'EV', 5736, 'N830AS', 'LGA', 'IAD', 42.0, 229.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1025, 1030, -5.0, 1237, 1252, -15.0, 'DL', 2343, 'N342NB', 'EWR', 'ATL', 116.0, 746.0, 10.0, 30.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1026, 1030, -4.0, 1335, 1340, -5.0, 'AA', 19, 'N338AA', 'JFK', 'LAX', 344.0, 2475.0, 10.0, 30.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1028, 1015, 13.0, 1132, 1131, 1.0, 'EV', 4663, 'N13995', 'EWR', 'IAD', 43.0, 212.0, 10.0, 15.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1029, 1030, -1.0, 1342, 1355, -13.0, 'AA', 179, 'N353AA', 'JFK', 'SFO', 349.0, 2586.0, 10.0, 30.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1029, 1031, -2.0, 1343, 1402, -19.0, 'B6', 641, 'N657JB', 'JFK', 'SFO', 350.0, 2586.0, 10.0, 31.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1029, 1015, 14.0, 1207, 1208, -1.0, 'US', 1103, 'N176UW', 'EWR', 'CLT', 81.0, 529.0, 10.0, 15.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1031, 1029, 2.0, 1140, 1152, -12.0, 'EV', 4240, 'N14568', 'EWR', 'BUF', 53.0, 282.0, 10.0, 29.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1032, 1044, -12.0, 1229, 1223, 6.0, 'EV', 4090, 'N17146', 'EWR', 'RDU', 72.0, 416.0, 10.0, 44.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1032, 950, 42.0, 1306, 1311, -5.0, 'UA', 499, 'N813UA', 'EWR', 'SEA', 316.0, 2402.0, 9.0, 50.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 1039, 1040, -1.0, 1329, 1350, -21.0, 'DL', 1174, 'N327NB', 'LGA', 'PBI', 151.0, 1035.0, 10.0, 40.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1040, 1047, -7.0, 1338, 1330, 8.0, 'UA', 448, 'N569UA', 'EWR', 'LAS', 312.0, 2227.0, 10.0, 47.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1042, 1030, 12.0, 1359, 1415, -16.0, 'VX', 23, 'N839VA', 'JFK', 'SFO', 353.0, 2586.0, 10.0, 30.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1044, 1050, -6.0, 1235, 1250, -15.0, 'MQ', 4589, 'N537MQ', 'LGA', 'DTW', 86.0, 502.0, 10.0, 50.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1045, 1036, 9.0, 1324, 1333, -9.0, 'UA', 927, 'N536UA', 'EWR', 'PBI', 144.0, 1023.0, 10.0, 36.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1046, 1047, -1.0, 1343, 1344, -1.0, 'UA', 575, 'N677UA', 'EWR', 'IAH', 209.0, 1400.0, 10.0, 47.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1050, 1050, 0.0, 1331, 1404, -33.0, 'B6', 373, 'N597JB', 'LGA', 'FLL', 148.0, 1076.0, 10.0, 50.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1053, 1045, 8.0, 1244, 1250, -6.0, 'DL', 1573, 'N332NW', 'LGA', 'MEM', 147.0, 963.0, 10.0, 45.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1054, 1039, 15.0, 1332, 1329, 3.0, 'B6', 31, 'N569JB', 'JFK', 'MCO', 128.0, 944.0, 10.0, 39.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1054, 1055, -1.0, 1213, 1235, -22.0, 'WN', 374, 'N8313F', 'LGA', 'MDW', 123.0, 725.0, 10.0, 55.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1055, 1100, -5.0, 1327, 1338, -11.0, 'DL', 1647, 'N678DL', 'LGA', 'ATL', 116.0, 762.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1056, 1100, -4.0, 1414, 1420, -6.0, 'DL', 1275, 'N3768', 'JFK', 'SLC', 291.0, 1990.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1056, 1100, -4.0, 1417, 1425, -8.0, 'UA', 642, 'N560UA', 'JFK', 'SFO', 358.0, 2586.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1057, 1015, 42.0, 1357, 1327, 30.0, 'UA', 680, 'N570UA', 'LGA', 'IAH', 220.0, 1416.0, 10.0, 15.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1057, 1100, -3.0, 1351, 1413, -22.0, 'UA', 952, 'N436UA', 'EWR', 'RSW', 156.0, 1068.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1058, 1100, -2.0, 1223, 1215, 8.0, 'MQ', 3792, 'N509MQ', 'JFK', 'DCA', 49.0, 213.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1059, 1100, -1.0, 1203, 1215, -12.0, 'US', 2171, 'N945UW', 'LGA', 'DCA', 44.0, 214.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1102, 1100, 2.0, 1248, 1300, -12.0, 'WN', 1873, 'N554WN', 'LGA', 'STL', 148.0, 888.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1103, 920, 103.0, 1239, 1125, 74.0, 'MQ', 4582, 'N522MQ', 'LGA', 'CLT', 77.0, 544.0, 9.0, 20.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 1106, 1115, -9.0, 1251, 1310, -19.0, 'MQ', 4485, 'N711MQ', 'LGA', 'CMH', 81.0, 479.0, 11.0, 15.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1109, 1114, -5.0, 1257, 1315, -18.0, 'DL', 1031, 'N348NB', 'LGA', 'DTW', 85.0, 502.0, 11.0, 14.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1111, 1115, -4.0, 1227, 1257, -30.0, 'EV', 5273, 'N709EV', 'LGA', 'PIT', 56.0, 335.0, 11.0, 15.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1112, 840, 152.0, 1410, 1204, 126.0, 'UA', 112, 'N26123', 'JFK', 'LAX', 335.0, 2475.0, 8.0, 40.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 1113, 1118, -5.0, 1326, 1334, -8.0, 'EV', 4279, 'N12201', 'EWR', 'MCI', 175.0, 1092.0, 11.0, 18.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1113, 905, 128.0, 1428, 1235, 113.0, 'VX', 407, 'N638VA', 'JFK', 'LAX', 352.0, 2475.0, 9.0, 5.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 1117, 1125, -8.0, 1303, 1305, -2.0, 'AA', 327, 'N3CXAA', 'LGA', 'ORD', 144.0, 733.0, 11.0, 25.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1122, 1130, -8.0, 1253, 1306, -13.0, 'EV', 4319, 'N12160', 'EWR', 'RDU', 69.0, 416.0, 11.0, 30.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1122, 1130, -8.0, 1315, 1334, -19.0, 'US', 975, 'N104UW', 'LGA', 'CLT', 79.0, 544.0, 11.0, 30.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1124, 1129, -5.0, 1344, 1418, -34.0, 'B6', 523, 'N649JB', 'EWR', 'MCO', 125.0, 937.0, 11.0, 29.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1124, 1125, -1.0, 1435, 1438, -3.0, 'B6', 673, 'N821JB', 'JFK', 'LAX', 353.0, 2475.0, 11.0, 25.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1125, 1130, -5.0, 1309, 1315, -6.0, 'WN', 145, 'N918WN', 'EWR', 'STL', 144.0, 872.0, 11.0, 30.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1125, 1100, 25.0, 1226, 1209, 17.0, 'UA', 1233, 'N16234', 'EWR', 'BOS', 42.0, 200.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1126, 1125, 1.0, 1550, 1620, -30.0, 'DL', 315, 'N3749D', 'JFK', 'SJU', 179.0, 1598.0, 11.0, 25.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1126, 1126, 0.0, 1332, 1345, -13.0, 'UA', 895, 'N465UA', 'EWR', 'DEN', 225.0, 1605.0, 11.0, 26.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1127, 1059, 28.0, 1342, 1324, 18.0, 'B6', 1925, 'N603JB', 'JFK', 'MSY', 169.0, 1182.0, 10.0, 59.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1128, 1115, 13.0, 1410, 1425, -15.0, 'AA', 2099, 'N3FWAA', 'LGA', 'MIA', 145.0, 1096.0, 11.0, 15.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1130, 1130, 0.0, 1404, 1422, -18.0, 'UA', 1000, 'N14102', 'EWR', 'MCO', 131.0, 937.0, 11.0, 30.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1134, 1130, 4.0, 1420, 1430, -10.0, 'DL', 695, 'N986DL', 'JFK', 'MCO', 130.0, 944.0, 11.0, 30.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1134, 1140, -6.0, 1435, 1450, -15.0, 'DL', 930, 'N324NB', 'LGA', 'FLL', 154.0, 1076.0, 11.0, 40.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1135, 1132, 3.0, 1415, 1439, -24.0, 'UA', 1707, 'N73256', 'EWR', 'TPA', 140.0, 997.0, 11.0, 32.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1138, 1140, -2.0, 1302, 1255, 7.0, 'EV', 4264, 'N15983', 'EWR', 'BTV', 50.0, 266.0, 11.0, 40.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1142, 1145, -3.0, 1429, 1454, -25.0, 'DL', 1875, 'N908DL', 'LGA', 'TPA', 142.0, 1010.0, 11.0, 45.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1143, 1145, -2.0, 1359, 1432, -33.0, 'EV', 5371, 'N615QX', 'LGA', 'JAX', 114.0, 833.0, 11.0, 45.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1144, 1135, 9.0, 1323, 1330, -7.0, 'MQ', 4553, 'N736MQ', 'LGA', 'CLE', 71.0, 419.0, 11.0, 35.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1145, 1140, 5.0, 1457, 1445, 12.0, 'AA', 1623, 'N3HXAA', 'EWR', 'MIA', 139.0, 1085.0, 11.0, 40.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1146, 1145, 1.0, 1306, 1321, -15.0, 'FL', 353, 'N977AT', 'LGA', 'CAK', 65.0, 397.0, 11.0, 45.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1146, 1155, -9.0, 1249, 1304, -15.0, '9E', 3483, 'N936XJ', 'JFK', 'BOS', 36.0, 187.0, 11.0, 55.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1149, 1200, -11.0, 1309, 1330, -21.0, 'MQ', 4601, 'N518MQ', 'LGA', 'BNA', 114.0, 764.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1150, 914, 156.0, 1337, 1108, 149.0, 'EV', 4178, 'N17185', 'EWR', 'STL', 148.0, 872.0, 9.0, 14.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 1150, 1200, -10.0, 1249, 1303, -14.0, 'B6', 1174, 'N284JB', 'EWR', 'BOS', 40.0, 200.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1150, 1153, -3.0, 1505, 1522, -17.0, 'UA', 81, 'N37252', 'EWR', 'SFO', 356.0, 2565.0, 11.0, 53.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1152, 1129, 23.0, 1440, 1437, 3.0, 'B6', 133, 'N641JB', 'JFK', 'RSW', 153.0, 1074.0, 11.0, 29.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1152, 1134, 18.0, 1445, 1345, 60.0, 'DL', 2219, 'N325NB', 'LGA', 'MSP', 186.0, 1020.0, 11.0, 34.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1153, 1155, -2.0, 1449, 1458, -9.0, 'B6', 625, 'N247JB', 'JFK', 'HOU', 217.0, 1428.0, 11.0, 55.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1153, 1200, -7.0, 1246, 1305, -19.0, 'US', 2126, 'N958UW', 'LGA', 'BOS', 37.0, 184.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1155, 1200, -5.0, 1506, 1529, -23.0, 'DL', 863, 'N718TW', 'JFK', 'LAX', 334.0, 2475.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1155, 1200, -5.0, 1302, 1315, -13.0, 'MQ', 4425, 'N856MQ', 'JFK', 'DCA', 50.0, 213.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1156, 1200, -4.0, 1503, 1510, -7.0, 'AA', 3, 'N319AA', 'JFK', 'LAX', 342.0, 2475.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1157, 1200, -3.0, 1425, 1440, -15.0, 'DL', 1947, 'N926DL', 'LGA', 'ATL', 116.0, 762.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1157, 1200, -3.0, 1259, 1309, -10.0, 'US', 2173, 'N760US', 'LGA', 'DCA', 45.0, 214.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1158, 1205, -7.0, 1323, 1345, -22.0, 'MQ', 4431, 'N739MQ', 'LGA', 'RDU', 66.0, 431.0, 12.0, 5.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1158, 1200, -2.0, 1342, 1400, -18.0, 'US', 1443, 'N752US', 'JFK', 'CLT', 83.0, 541.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1201, 1205, -4.0, 1324, 1325, -1.0, 'WN', 644, 'N453WN', 'EWR', 'MDW', 125.0, 711.0, 12.0, 5.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1201, 1150, 11.0, 1503, 1345, 78.0, 'MQ', 4646, 'N513MQ', 'LGA', 'MSP', 172.0, 1020.0, 11.0, 50.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1203, 1203, 0.0, 1458, 1506, -8.0, 'UA', 1549, 'N33284', 'EWR', 'IAH', 218.0, 1400.0, 12.0, 3.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1208, 1210, -2.0, 1256, 1310, -14.0, 'WN', 477, 'N757LV', 'EWR', 'BWI', 34.0, 169.0, 12.0, 10.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1209, 1100, 69.0, 1507, 1439, 28.0, 'UA', 1120, 'N24211', 'EWR', 'SFO', 323.0, 2565.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1214, 1220, -6.0, 1417, 1350, 27.0, 'MQ', 3697, 'N517MQ', 'EWR', 'ORD', 147.0, 719.0, 12.0, 20.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1219, 1210, 9.0, 1321, 1322, -1.0, 'B6', 42, 'N309JB', 'JFK', 'SYR', 45.0, 209.0, 12.0, 10.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1220, 1205, 15.0, 1326, 1318, 8.0, 'EV', 4087, 'N14570', 'EWR', 'PWM', 53.0, 284.0, 12.0, 5.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1220, 1230, -10.0, 1409, 1427, -18.0, 'EV', 4640, 'N12967', 'EWR', 'DAY', 91.0, 533.0, 12.0, 30.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1221, 1225, -4.0, 1406, 1410, -4.0, 'EV', 4446, 'N13908', 'EWR', 'CMH', 83.0, 463.0, 12.0, 25.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1221, 1152, 29.0, 1434, 1424, 10.0, 'EV', 4679, 'N22909', 'EWR', 'JAX', 118.0, 820.0, 11.0, 52.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1228, 1230, -2.0, 1345, 1405, -20.0, 'WN', 283, 'N252WN', 'LGA', 'MKE', 120.0, 738.0, 12.0, 30.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1228, 1235, -7.0, 1355, 1415, -20.0, 'MQ', 4404, 'N850MQ', 'JFK', 'RDU', 69.0, 427.0, 12.0, 35.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1229, 1232, -3.0, 1405, 1429, -24.0, 'EV', 4135, 'N12142', 'EWR', 'CLT', 77.0, 529.0, 12.0, 32.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1229, 1230, -1.0, 1545, 1543, 2.0, 'UA', 1734, 'N77518', 'LGA', 'IAH', 218.0, 1416.0, 12.0, 30.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1230, 1205, 25.0, 1549, 1520, 29.0, 'AA', 743, 'N539AA', 'LGA', 'DFW', 219.0, 1389.0, 12.0, 5.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1230, 1200, 30.0, 1506, 1430, 36.0, 'MQ', 4658, 'N515MQ', 'LGA', 'ATL', 114.0, 762.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1232, 1220, 12.0, 1349, 1342, 7.0, 'B6', 66, 'N187JB', 'JFK', 'BUF', 60.0, 301.0, 12.0, 20.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1237, 1240, -3.0, 1443, 1445, -2.0, 'DL', 1131, 'N364NB', 'LGA', 'DTW', 90.0, 502.0, 12.0, 40.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1240, 1110, 90.0, 1407, 1220, 107.0, 'B6', 24, 'N298JB', 'JFK', 'BTV', 58.0, 266.0, 11.0, 10.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1243, 1240, 3.0, 1534, 1540, -6.0, 'AA', 1853, 'N472AA', 'EWR', 'DFW', 211.0, 1372.0, 12.0, 40.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1243, 1245, -2.0, 1348, 1350, -2.0, 'AA', 1850, 'N3GBAA', 'JFK', 'BOS', 38.0, 187.0, 12.0, 45.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1244, 1245, -1.0, 1608, 1550, 18.0, 'AA', 745, 'N3JNAA', 'LGA', 'DFW', 226.0, 1389.0, 12.0, 45.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1246, 1250, -4.0, 1436, 1449, -13.0, 'EV', 4893, 'N710EV', 'EWR', 'DTW', 82.0, 488.0, 12.0, 50.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1246, 1250, -4.0, 1545, 1605, -20.0, 'UA', 1612, 'N73283', 'EWR', 'DFW', 224.0, 1372.0, 12.0, 50.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1248, 1250, -2.0, 1353, 1354, -1.0, 'B6', 1006, 'N316JB', 'JFK', 'BOS', 43.0, 187.0, 12.0, 50.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1248, 1250, -2.0, 1540, 1550, -10.0, 'DL', 1685, 'N327NW', 'LGA', 'MCO', 129.0, 950.0, 12.0, 50.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1248, 1230, 18.0, 1534, 1527, 7.0, 'UA', 726, 'N559UA', 'EWR', 'MIA', 147.0, 1085.0, 12.0, 30.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1249, 1245, 4.0, 1553, 1600, -7.0, 'AA', 2253, 'N3BCAA', 'LGA', 'MIA', 145.0, 1096.0, 12.0, 45.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1249, 1250, -1.0, 1525, 1520, 5.0, 'WN', 390, 'N946WN', 'LGA', 'DEN', 241.0, 1620.0, 12.0, 50.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1251, 1300, -9.0, 1457, 1450, 7.0, 'MQ', 4426, 'N719MQ', 'LGA', 'CMH', 83.0, 479.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1253, 1257, -4.0, 1339, 1354, -15.0, 'EV', 4368, 'N12157', 'EWR', 'BDL', 26.0, 116.0, 12.0, 57.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1253, 1300, -7.0, 1514, 1529, -15.0, 'EV', 4950, 'N741EV', 'EWR', 'ATL', 118.0, 746.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1255, 1259, -4.0, 1408, 1420, -12.0, 'EV', 4158, 'N14998', 'EWR', 'RIC', 50.0, 277.0, 12.0, 59.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1255, 1305, -10.0, 1357, 1405, -8.0, 'EV', 4129, 'N14959', 'EWR', 'DCA', 43.0, 199.0, 13.0, 5.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1255, 1259, -4.0, 1526, 1555, -29.0, 'B6', 991, 'N249JB', 'JFK', 'PBI', 135.0, 1028.0, 12.0, 59.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1255, 1259, -4.0, 1455, 1456, -1.0, 'US', 1459, 'N180US', 'LGA', 'CLT', 83.0, 544.0, 12.0, 59.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1258, 1300, -2.0, 1351, 1406, -15.0, '9E', 3638, 'N8758D', 'JFK', 'PHL', 27.0, 94.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1259, 1300, -1.0, 1425, 1407, 18.0, 'US', 2175, 'N749US', 'LGA', 'DCA', 43.0, 214.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1300, 1259, 1.0, 1452, 1436, 16.0, 'UA', 1137, 'N17122', 'EWR', 'ORD', 127.0, 719.0, 12.0, 59.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1301, 1310, -9.0, 1411, 1427, -16.0, 'EV', 4148, 'N19966', 'EWR', 'BUF', 52.0, 282.0, 13.0, 10.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1301, 1300, 1.0, 1509, 1506, 3.0, '9E', 3762, 'N8775A', 'EWR', 'CVG', 94.0, 569.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1301, 1305, -4.0, 1531, 1557, -26.0, 'UA', 1641, 'N12225', 'EWR', 'MCO', 130.0, 937.0, 13.0, 5.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1302, 1300, 2.0, 1615, 1610, 5.0, 'WN', 2239, 'N283WN', 'EWR', 'HOU', 234.0, 1411.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1304, 1229, 35.0, 1532, 1459, 33.0, 'EV', 3826, 'N14952', 'EWR', 'ATL', 123.0, 746.0, 12.0, 29.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1304, 1305, -1.0, 1501, 1450, 11.0, 'EV', 4306, 'N14158', 'LGA', 'CLE', 69.0, 419.0, 13.0, 5.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1304, 1308, -4.0, 1553, 1542, 11.0, 'FL', 348, 'N927AT', 'LGA', 'ATL', 120.0, 762.0, 13.0, 8.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1304, 1315, -11.0, 1515, 1520, -5.0, 'MQ', 4564, 'N734MQ', 'LGA', 'DTW', 88.0, 502.0, 13.0, 15.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1305, 1240, 25.0, 1548, 1555, -7.0, 'AA', 2041, 'N5DAAA', 'JFK', 'MIA', 141.0, 1089.0, 12.0, 40.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1311, 1315, -4.0, 1449, 1504, -15.0, 'US', 1895, 'N189UW', 'EWR', 'CLT', 77.0, 529.0, 13.0, 15.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1311, 1315, -4.0, 1622, 1623, -1.0, 'UA', 1054, 'N29124', 'EWR', 'LAX', 344.0, 2454.0, 13.0, 15.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1313, 1300, 13.0, 1603, 1605, -2.0, 'B6', 85, 'N599JB', 'JFK', 'FLL', 150.0, 1069.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1314, 1320, -6.0, 1510, 1509, 1.0, 'EV', 4628, 'N11192', 'EWR', 'STL', 150.0, 872.0, 13.0, 20.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1315, 620, 415.0, 1459, 835, 384.0, 'EV', 4292, 'N15980', 'EWR', 'CLT', 83.0, 529.0, 6.0, 20.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 1316, 1325, -9.0, 1501, 1505, -4.0, 'MQ', 4475, 'N723MQ', 'LGA', 'RDU', 67.0, 431.0, 13.0, 25.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1317, 1317, 0.0, 1426, 1425, 1.0, 'EV', 3829, 'N14905', 'EWR', 'BOS', 46.0, 200.0, 13.0, 17.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1319, 1320, -1.0, 1424, 1436, -12.0, 'EV', 4231, 'N13975', 'EWR', 'IAD', 41.0, 212.0, 13.0, 20.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1324, 1322, 2.0, 1630, 1623, 7.0, 'B6', 431, 'N708JB', 'LGA', 'SRQ', 151.0, 1047.0, 13.0, 22.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1327, 1330, -3.0, 1714, 1705, 9.0, 'WN', 1078, 'N714CB', 'EWR', 'PHX', 329.0, 2133.0, 13.0, 30.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1329, 1326, 3.0, 1430, 1425, 5.0, 'EV', 5683, 'N16559', 'EWR', 'BWI', 35.0, 169.0, 13.0, 26.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1329, 1330, -1.0, 1600, 1616, -16.0, 'B6', 525, 'N317JB', 'EWR', 'MCO', 128.0, 937.0, 13.0, 30.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1329, 1320, 9.0, 1659, 1650, 9.0, 'VX', 411, 'N624VA', 'JFK', 'LAX', 348.0, 2475.0, 13.0, 20.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1330, 1338, -8.0, 1515, 1506, 9.0, 'EV', 4171, 'N13964', 'EWR', 'MSN', 146.0, 799.0, 13.0, 38.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1331, 1330, 1.0, 1654, 1640, 14.0, 'AA', 753, 'N3EAAA', 'LGA', 'DFW', 227.0, 1389.0, 13.0, 30.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1333, 1325, 8.0, 1757, 1809, -12.0, 'B6', 705, 'N789JB', 'JFK', 'SJU', 180.0, 1598.0, 13.0, 25.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1334, 1330, 4.0, 1553, 1605, -12.0, 'DL', 2043, 'N3757D', 'JFK', 'ATL', 119.0, 760.0, 13.0, 30.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1336, 1320, 16.0, 1618, 1619, -1.0, 'B6', 505, 'N509JB', 'EWR', 'FLL', 144.0, 1065.0, 13.0, 20.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1341, 1345, -4.0, 1701, 1705, -4.0, 'AA', 117, 'N329AA', 'JFK', 'LAX', 357.0, 2475.0, 13.0, 45.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1346, 1300, 46.0, 1507, 1440, 27.0, 'AA', 329, 'N4WMAA', 'LGA', 'ORD', 120.0, 733.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1348, 1350, -2.0, 1634, 1657, -23.0, 'UA', 620, 'N588UA', 'EWR', 'FLL', 147.0, 1065.0, 13.0, 50.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1349, 1350, -1.0, 1600, 1628, -28.0, 'DL', 1705, 'N320NB', 'LGA', 'MSY', 167.0, 1183.0, 13.0, 50.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1350, 1354, -4.0, 1447, 1500, -13.0, 'EV', 4434, 'N14177', 'EWR', 'MHT', 40.0, 209.0, 13.0, 54.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1350, 1350, 0.0, 1710, 1715, -5.0, 'US', 186, 'N665AW', 'EWR', 'PHX', 305.0, 2133.0, 13.0, 50.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1354, 1305, 49.0, 1515, 1425, 50.0, 'B6', 32, 'N190JB', 'JFK', 'ROC', 53.0, 264.0, 13.0, 5.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1355, 1400, -5.0, 1504, 1503, 1.0, 'US', 2130, 'N956UW', 'LGA', 'BOS', 39.0, 184.0, 14.0, 0.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1355, 1400, -5.0, 1459, 1509, -10.0, 'US', 2177, 'N767UW', 'LGA', 'DCA', 47.0, 214.0, 14.0, 0.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1356, 1345, 11.0, 1625, 1640, -15.0, 'B6', 1783, 'N613JB', 'JFK', 'MCO', 127.0, 944.0, 13.0, 45.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1356, 1350, 6.0, 1543, 1545, -2.0, 'MQ', 4577, 'N501MQ', 'LGA', 'CLT', 78.0, 544.0, 13.0, 50.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1357, 1400, -3.0, 1640, 1636, 4.0, 'DL', 2247, 'N638DL', 'LGA', 'ATL', 127.0, 762.0, 14.0, 0.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1358, 1345, 13.0, 1646, 1655, -9.0, 'B6', 83, 'N706JB', 'JFK', 'SEA', 320.0, 2422.0, 13.0, 45.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1400, 1410, -10.0, 1616, 1555, 21.0, 'MQ', 4491, 'N722MQ', 'LGA', 'CLE', 84.0, 419.0, 14.0, 10.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1400, 1359, 1.0, 1639, 1659, -20.0, 'UA', 1122, 'N34222', 'EWR', 'PBI', 136.0, 1023.0, 13.0, 59.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1401, 1350, 11.0, 1626, 1623, 3.0, 'B6', 615, 'N179JB', 'JFK', 'JAX', 118.0, 828.0, 13.0, 50.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1404, 1345, 19.0, 1655, 1705, -10.0, 'AA', 1073, 'N3CUAA', 'LGA', 'MIA', 145.0, 1096.0, 13.0, 45.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1407, 1410, -3.0, 1609, 1617, -8.0, 'EV', 4687, 'N14568', 'EWR', 'CVG', 104.0, 569.0, 14.0, 10.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1407, 1335, 32.0, 1654, 1632, 22.0, 'B6', 1161, 'N517JB', 'LGA', 'PBI', 134.0, 1035.0, 13.0, 35.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1412, 1356, 16.0, 1714, 1654, 20.0, 'UA', 1604, 'N73445', 'EWR', 'IAH', 222.0, 1400.0, 13.0, 56.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1414, 1415, -1.0, 1519, 1525, -6.0, 'B6', 1010, 'N206JB', 'JFK', 'BOS', 37.0, 187.0, 14.0, 15.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1414, 1415, -1.0, 1641, 1638, 3.0, 'DL', 935, 'N340NB', 'EWR', 'ATL', 120.0, 746.0, 14.0, 15.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1414, 1420, -6.0, 1611, 1550, 21.0, 'MQ', 3728, 'N527MQ', 'EWR', 'ORD', 121.0, 719.0, 14.0, 20.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1417, 1359, 18.0, 1609, 1600, 9.0, 'EV', 4370, 'N11194', 'EWR', 'CHS', 92.0, 628.0, 13.0, 59.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1419, 1355, 24.0, 1556, 1530, 26.0, 'WN', 348, 'N772SW', 'LGA', 'MDW', 129.0, 725.0, 13.0, 55.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1424, 1345, 39.0, 1543, 1457, 46.0, 'B6', 602, 'N258JB', 'JFK', 'PWM', 53.0, 273.0, 13.0, 45.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1427, 1430, -3.0, 1741, 1755, -14.0, 'UA', 560, 'N557UA', 'JFK', 'SFO', 347.0, 2586.0, 14.0, 30.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1428, 1430, -2.0, 1739, 1735, 4.0, 'AA', 883, 'N4YJAA', 'EWR', 'DFW', 224.0, 1372.0, 14.0, 30.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1429, 1428, 1.0, 1558, 1605, -7.0, 'UA', 402, 'N812UA', 'EWR', 'CLE', 69.0, 404.0, 14.0, 28.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1431, 1429, 2.0, 1548, 1547, 1.0, 'EV', 5712, 'N835AS', 'JFK', 'IAD', 44.0, 228.0, 14.0, 29.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1431, 1435, -4.0, 1544, 1559, -15.0, 'EV', 5968, 'N13958', 'LGA', 'IAD', 49.0, 229.0, 14.0, 35.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1431, 1430, 1.0, 1753, 1815, -22.0, 'DL', 2126, 'N703TW', 'JFK', 'SFO', 347.0, 2586.0, 14.0, 30.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1432, 1420, 12.0, 1654, 1713, -19.0, 'UA', 1166, 'N33103', 'EWR', 'TPA', 127.0, 997.0, 14.0, 20.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1434, 1416, 18.0, 1654, 1650, 4.0, 'FL', 349, 'N992AT', 'LGA', 'ATL', 122.0, 762.0, 14.0, 16.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1438, 1445, -7.0, 1617, 1647, -30.0, 'US', 1445, 'N197UW', 'LGA', 'CLT', 81.0, 544.0, 14.0, 45.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1440, 1440, 0.0, 1715, 1752, -37.0, 'UA', 1183, 'N76529', 'EWR', 'RSW', 144.0, 1068.0, 14.0, 40.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1441, 1420, 21.0, 1656, 1620, 36.0, 'MQ', 4588, 'N505MQ', 'LGA', 'MSP', 164.0, 1020.0, 14.0, 20.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1441, 1444, -3.0, 1750, 1755, -5.0, 'UA', 275, 'N427UA', 'LGA', 'IAH', 222.0, 1416.0, 14.0, 44.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1442, 1445, -3.0, 1556, 1606, -10.0, '9E', 3452, 'N914XJ', 'JFK', 'BOS', 40.0, 187.0, 14.0, 45.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1443, 1445, -2.0, 1642, 1640, 2.0, 'EV', 4381, 'N12922', 'EWR', 'DTW', 96.0, 488.0, 14.0, 45.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1444, 1443, 1.0, 1811, 1801, 10.0, 'UA', 595, 'N472UA', 'EWR', 'AUS', 250.0, 1504.0, 14.0, 43.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1445, 1436, 9.0, 1553, 1543, 10.0, 'EV', 3832, 'N16919', 'EWR', 'DCA', 46.0, 199.0, 14.0, 36.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1445, 1456, -11.0, 1618, 1624, -6.0, '9E', 4357, 'N8694A', 'JFK', 'ORF', 57.0, 290.0, 14.0, 56.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1445, 1445, 0.0, 1730, 1710, 20.0, 'MQ', 4669, 'N526MQ', 'LGA', 'ATL', 123.0, 762.0, 14.0, 45.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1445, 1445, 0.0, 1715, 1711, 4.0, 'UA', 1107, 'N33289', 'EWR', 'DEN', 244.0, 1605.0, 14.0, 45.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1447, 1445, 2.0, 1727, 1744, -17.0, 'B6', 153, 'N651JB', 'JFK', 'MCO', 127.0, 944.0, 14.0, 45.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1447, 1450, -3.0, 1645, 1645, 0.0, 'MQ', 4172, 'N630MQ', 'JFK', 'CLE', 78.0, 425.0, 14.0, 50.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1449, 1450, -1.0, 1626, 1640, -14.0, 'MQ', 4403, 'N832MQ', 'JFK', 'RDU', 70.0, 427.0, 14.0, 50.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1451, 1450, 1.0, 1750, 1755, -5.0, 'AA', 1813, 'N5FSAA', 'JFK', 'MCO', 130.0, 944.0, 14.0, 50.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1451, 1435, 16.0, 1658, 1701, -3.0, 'DL', 1344, 'N365NB', 'LGA', 'MCI', 169.0, 1107.0, 14.0, 35.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1454, 1435, 19.0, 1736, 1742, -6.0, 'DL', 1902, 'N339NB', 'LGA', 'PBI', 139.0, 1035.0, 14.0, 35.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1455, 1500, -5.0, 1611, 1613, -2.0, 'EV', 4571, 'N13968', 'EWR', 'PWM', 51.0, 284.0, 15.0, 0.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1455, 1500, -5.0, 1635, 1655, -20.0, 'MQ', 4429, 'N737MQ', 'LGA', 'CMH', 82.0, 479.0, 15.0, 0.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1456, 1500, -4.0, 1639, 1653, -14.0, 'US', 720, 'N183UW', 'EWR', 'CLT', 79.0, 529.0, 15.0, 0.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1459, 1440, 19.0, 1715, 1656, 19.0, 'EV', 4181, 'N11106', 'EWR', 'MCI', 172.0, 1092.0, 14.0, 40.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1500, 1505, -5.0, 1610, 1637, -27.0, '9E', 3393, 'N910XJ', 'JFK', 'DCA', 48.0, 213.0, 15.0, 5.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1500, 1444, 16.0, 1749, 1744, 5.0, 'B6', 141, 'N618JB', 'JFK', 'PBI', 136.0, 1028.0, 14.0, 44.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1500, 1500, 0.0, 1745, 1742, 3.0, 'DL', 2347, 'N676DL', 'LGA', 'ATL', 123.0, 762.0, 15.0, 0.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1503, 1505, -2.0, 1636, 1645, -9.0, 'WN', 1197, 'N7726A', 'LGA', 'MKE', 128.0, 738.0, 15.0, 5.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1505, 1510, -5.0, 1725, 1745, -20.0, 'MQ', 4309, 'N660MQ', 'JFK', 'IND', 112.0, 665.0, 15.0, 10.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1506, 1510, -4.0, 1636, 1655, -19.0, 'MQ', 4447, 'N730MQ', 'LGA', 'RDU', 67.0, 431.0, 15.0, 10.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1508, 1432, 36.0, 1642, 1609, 33.0, 'UA', 1580, 'N14731', 'EWR', 'ORD', 139.0, 719.0, 14.0, 32.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1511, 1506, 5.0, 1832, 1819, 13.0, 'UA', 1600, 'N12125', 'EWR', 'LAX', 359.0, 2454.0, 15.0, 6.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1513, 1459, 14.0, 1744, 1807, -23.0, 'UA', 1601, 'N30401', 'EWR', 'FLL', 139.0, 1065.0, 14.0, 59.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1513, 1440, 33.0, 1620, 1549, 31.0, 'UA', 1687, 'N24729', 'EWR', 'BOS', 43.0, 200.0, 14.0, 40.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1514, 1520, -6.0, 1627, 1654, -27.0, '9E', 4105, 'N8907A', 'JFK', 'IAD', 48.0, 228.0, 15.0, 20.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1514, 1510, 4.0, 1700, 1710, -10.0, 'MQ', 4579, 'N537MQ', 'LGA', 'CLT', 87.0, 544.0, 15.0, 10.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1516, 1515, 1.0, 1820, 1807, 13.0, 'UA', 1205, 'N59053', 'EWR', 'IAH', 222.0, 1400.0, 15.0, 15.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1518, 1530, -12.0, 1704, 1711, -7.0, '9E', 3719, 'N8974C', 'LGA', 'RIC', 53.0, 292.0, 15.0, 30.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1519, 1526, -7.0, 1728, 1731, -3.0, 'EV', 4086, 'N15983', 'EWR', 'GRR', 108.0, 605.0, 15.0, 26.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1520, 1515, 5.0, 1647, 1700, -13.0, 'MQ', 4333, 'N695MQ', 'JFK', 'PIT', 71.0, 340.0, 15.0, 15.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1521, 1525, -4.0, 1635, 1655, -20.0, 'MQ', 3823, 'N509MQ', 'JFK', 'DCA', 52.0, 213.0, 15.0, 25.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1521, 1511, 10.0, 1743, 1740, 3.0, 'UA', 745, 'N595UA', 'LGA', 'DEN', 231.0, 1620.0, 15.0, 11.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1522, 1524, -2.0, 1646, 1648, -2.0, 'EV', 4581, 'N13132', 'EWR', 'MKE', 126.0, 725.0, 15.0, 24.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1523, 1530, -7.0, 1707, 1725, -18.0, 'AA', 2223, 'N4WNAA', 'LGA', 'STL', 141.0, 888.0, 15.0, 30.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1527, 1517, 10.0, 1804, 1815, -11.0, 'B6', 537, 'N547JB', 'EWR', 'TPA', 138.0, 997.0, 15.0, 17.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1527, 1510, 17.0, 1808, 1801, 7.0, 'UA', 750, 'N592UA', 'EWR', 'MCO', 126.0, 937.0, 15.0, 10.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1528, 1505, 23.0, 1748, 1737, 11.0, 'EV', 3817, 'N29917', 'EWR', 'JAX', 119.0, 820.0, 15.0, 5.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1529, 1505, 24.0, 1848, 1820, 28.0, 'AA', 759, 'N3BTAA', 'LGA', 'DFW', 237.0, 1389.0, 15.0, 5.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1529, 1415, 74.0, 1820, 1723, 57.0, 'B6', 377, 'N633JB', 'LGA', 'FLL', 152.0, 1076.0, 14.0, 15.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1529, 1530, -1.0, 1831, 1854, -23.0, 'UA', 161, 'N18119', 'JFK', 'LAX', 337.0, 2475.0, 15.0, 30.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1530, 1536, -6.0, 1741, 1744, -3.0, 'EV', 4352, 'N13553', 'EWR', 'CVG', 103.0, 569.0, 15.0, 36.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1531, 1455, 36.0, 1703, 1637, 26.0, '9E', 3318, 'N915XJ', 'JFK', 'BUF', 55.0, 301.0, 14.0, 55.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1531, 1535, -4.0, 1635, 1651, -16.0, 'UA', 627, 'N830UA', 'EWR', 'BOS', 44.0, 200.0, 15.0, 35.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1532, 1500, 32.0, 1645, 1620, 25.0, 'US', 2179, 'N958UW', 'LGA', 'DCA', 45.0, 214.0, 15.0, 0.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1534, 1459, 35.0, 1648, 1630, 18.0, 'B6', 8, 'N621JB', 'JFK', 'BUF', 53.0, 301.0, 14.0, 59.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1534, 1504, 30.0, 1706, 1640, 26.0, 'UA', 279, 'N429UA', 'EWR', 'ORD', 132.0, 719.0, 15.0, 4.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1535, 1535, 0.0, 1838, 1850, -12.0, 'AA', 763, 'N3CEAA', 'LGA', 'DFW', 217.0, 1389.0, 15.0, 35.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1535, 1459, 36.0, 1645, 1624, 21.0, 'B6', 12, 'N279JB', 'JFK', 'SYR', 46.0, 209.0, 14.0, 59.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1535, 1355, 100.0, 1839, 1708, 91.0, 'DL', 2079, 'N356NW', 'LGA', 'FLL', 162.0, 1076.0, 13.0, 55.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1539, 1550, -11.0, 1801, 1826, -25.0, '9E', 3427, 'N906XJ', 'JFK', 'IND', 113.0, 665.0, 15.0, 50.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1540, 1540, 0.0, 1830, 1845, -15.0, 'UA', 1624, 'N37293', 'EWR', 'FLL', 152.0, 1065.0, 15.0, 40.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1540, 1530, 10.0, 1735, 1734, 1.0, 'US', 1665, 'N763US', 'LGA', 'CLT', 77.0, 544.0, 15.0, 30.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1543, 1550, -7.0, 1808, 1820, -12.0, '9E', 3355, 'N936XJ', 'JFK', 'MSP', 169.0, 1029.0, 15.0, 50.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1543, 1545, -2.0, 1812, 1815, -3.0, 'DL', 1942, 'N355NB', 'EWR', 'ATL', 120.0, 746.0, 15.0, 45.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1543, 1515, 28.0, 1833, 1844, -11.0, 'UA', 1111, 'N68452', 'EWR', 'SFO', 331.0, 2565.0, 15.0, 15.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1544, 1508, 36.0, 1734, 1705, 29.0, 'EV', 4326, 'N14916', 'EWR', 'CLT', 81.0, 529.0, 15.0, 8.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1545, 1455, 50.0, 1933, 1825, 68.0, 'AA', 1769, 'N5FEAA', 'JFK', 'MIA', 147.0, 1089.0, 14.0, 55.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1546, 1504, 42.0, 1712, 1640, 32.0, 'EV', 4212, 'N17146', 'EWR', 'RDU', 65.0, 416.0, 15.0, 4.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1548, 1545, 3.0, 1913, 1910, 3.0, 'AA', 133, 'N320AA', 'JFK', 'LAX', 343.0, 2475.0, 15.0, 45.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1549, 1459, 50.0, 1835, 1756, 39.0, 'B6', 393, 'N556JB', 'LGA', 'MCO', 132.0, 950.0, 14.0, 59.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1550, 1555, -5.0, 1800, 1817, -17.0, 'DL', 1771, 'N334NB', 'JFK', 'DTW', 95.0, 509.0, 15.0, 55.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1552, 1526, 26.0, 1715, 1659, 16.0, 'EV', 3835, 'N13949', 'EWR', 'BNA', 125.0, 748.0, 15.0, 26.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1553, 1600, -7.0, 1825, 1820, 5.0, 'MQ', 3985, 'N638MQ', 'JFK', 'CVG', 120.0, 589.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1554, 1455, 59.0, 1749, 1654, 55.0, 'EV', 4572, 'N13913', 'EWR', 'GSP', 94.0, 594.0, 14.0, 55.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1554, 1555, -1.0, 1740, 1745, -5.0, 'B6', 1053, 'N334JB', 'JFK', 'PIT', 69.0, 340.0, 15.0, 55.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1554, 1555, -1.0, 2022, 2055, -33.0, 'B6', 703, 'N523JB', 'JFK', 'SJU', 180.0, 1598.0, 15.0, 55.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1554, 1600, -6.0, 1857, 1912, -15.0, 'DL', 4, 'N374DA', 'JFK', 'MCO', 124.0, 944.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1555, 1600, -5.0, 1801, 1732, 29.0, '9E', 3453, 'N917XJ', 'JFK', 'BOS', 47.0, 187.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1555, 1530, 25.0, 1909, 1855, 14.0, 'AA', 1039, 'N3DSAA', 'JFK', 'FLL', 155.0, 1069.0, 15.0, 30.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1555, 1520, 35.0, 1838, 1842, -4.0, 'DL', 2115, 'N341NW', 'LGA', 'MIA', 143.0, 1096.0, 15.0, 20.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1556, 1500, 56.0, 1927, 1837, 50.0, 'DL', 963, 'N624AG', 'JFK', 'LAX', 342.0, 2475.0, 15.0, 0.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1556, 1555, 1.0, 1826, 1847, -21.0, 'UA', 1197, 'N37298', 'EWR', 'LAS', 315.0, 2227.0, 15.0, 55.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1556, 1536, 20.0, 1724, 1731, -7.0, 'UA', 1710, 'N25705', 'LGA', 'CLE', 67.0, 419.0, 15.0, 36.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1557, 1600, -3.0, 1819, 1815, 4.0, 'EV', 3820, 'N27200', 'EWR', 'SDF', 119.0, 642.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1557, 1550, 7.0, 1732, 1710, 22.0, 'WN', 4215, 'N7735A', 'EWR', 'MDW', 134.0, 711.0, 15.0, 50.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1558, 1600, -2.0, 1707, 1712, -5.0, 'US', 2134, 'N945UW', 'LGA', 'BOS', 40.0, 184.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1559, 1605, -6.0, 1913, 1944, -31.0, 'DL', 1508, 'N913DE', 'JFK', 'RSW', 155.0, 1074.0, 16.0, 5.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1600, 1429, 91.0, 1756, 1642, 74.0, 'DL', 1819, 'N921DL', 'LGA', 'MSP', 151.0, 1020.0, 14.0, 29.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1601, 1600, 1.0, 1853, 1850, 3.0, 'DL', 1331, 'N379DA', 'JFK', 'DEN', 229.0, 1626.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1602, 1545, 17.0, 1720, 1703, 17.0, '9E', 3635, 'N8971A', 'JFK', 'BWI', 36.0, 184.0, 15.0, 45.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1603, 1530, 33.0, 1748, 1725, 23.0, 'MQ', 4146, 'N932MQ', 'JFK', 'CMH', 76.0, 483.0, 15.0, 30.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1605, 1525, 40.0, 1707, 1638, 29.0, 'EV', 4349, 'N12157', 'EWR', 'ORF', 50.0, 284.0, 15.0, 25.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1605, 1445, 80.0, 1756, 1634, 82.0, 'EV', 4596, 'N14977', 'EWR', 'STL', 151.0, 872.0, 14.0, 45.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1605, 1610, -5.0, 1718, 1732, -14.0, '9E', 3689, 'N8543F', 'JFK', 'PHL', 26.0, 94.0, 16.0, 10.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1605, 1605, 0.0, 1713, 1729, -16.0, 'YV', 3771, 'N519LR', 'LGA', 'IAD', 46.0, 229.0, 16.0, 5.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1605, 1600, 5.0, 1910, 1912, -2.0, 'UA', 1200, 'N76519', 'EWR', 'SAN', 349.0, 2425.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1609, 1600, 9.0, 1840, 1834, 6.0, 'FL', 620, 'N994AT', 'LGA', 'ATL', 125.0, 762.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1609, 1540, 29.0, 1919, 1909, 10.0, 'DL', 2027, 'N372NW', 'JFK', 'FLL', 144.0, 1069.0, 15.0, 40.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1609, 1452, 77.0, 1755, 1655, 60.0, 'DL', 1231, 'N914DL', 'LGA', 'DTW', 81.0, 502.0, 14.0, 52.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1609, 1434, 95.0, 1903, 1737, 86.0, 'UA', 404, 'N586UA', 'EWR', 'MIA', 155.0, 1085.0, 14.0, 34.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1611, 1610, 1.0, 1858, 1917, -19.0, 'DL', 91, 'N381DN', 'JFK', 'LAS', 313.0, 2248.0, 16.0, 10.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1612, 1600, 12.0, 1716, 1717, -1.0, 'US', 2181, 'N760US', 'LGA', 'DCA', 43.0, 214.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1614, 1405, 129.0, 1910, 1704, 126.0, 'B6', 63, 'N627JB', 'JFK', 'TPA', 139.0, 1005.0, 14.0, 5.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1614, 1600, 14.0, 1934, 1933, 1.0, 'DL', 161, 'N947DL', 'JFK', 'MIA', 145.0, 1089.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1616, 1615, 1.0, 1822, 1831, -9.0, 'DL', 1619, 'N330NW', 'LGA', 'MSP', 157.0, 1020.0, 16.0, 15.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1616, 1620, -4.0, 2010, 2003, 7.0, 'US', 35, 'N549UW', 'JFK', 'PHX', 319.0, 2153.0, 16.0, 20.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1617, 1619, -2.0, 1704, 1723, -19.0, 'EV', 4271, 'N14959', 'EWR', 'ALB', 30.0, 143.0, 16.0, 19.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1617, 1600, 17.0, 1914, 1925, -11.0, 'AA', 1467, 'N3GFAA', 'LGA', 'MIA', 148.0, 1096.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1621, 1625, -4.0, 1956, 1953, 3.0, 'B6', 675, 'N656JB', 'JFK', 'LAX', 345.0, 2475.0, 16.0, 25.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1623, 1627, -4.0, 1847, 1919, -32.0, 'UA', 1262, 'N38451', 'EWR', 'MCO', 129.0, 937.0, 16.0, 27.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1625, 1600, 25.0, 1917, 1909, 8.0, 'B6', 157, 'N594JB', 'JFK', 'MCO', 128.0, 944.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1626, 1550, 36.0, 2058, 2050, 8.0, 'AA', 1635, 'N5FAAA', 'JFK', 'SJU', 177.0, 1598.0, 15.0, 50.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1627, 1610, 17.0, 1823, 1800, 23.0, 'AA', 341, 'N437AA', 'LGA', 'ORD', 128.0, 733.0, 16.0, 10.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1628, 1639, -11.0, 1755, 1753, 2.0, 'B6', 1176, 'N292JB', 'EWR', 'BOS', 50.0, 200.0, 16.0, 39.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1628, 1600, 28.0, 1903, 1840, 23.0, 'DL', 847, 'N671DN', 'LGA', 'ATL', 127.0, 762.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1628, 1630, -2.0, 1925, 1922, 3.0, 'UA', 508, 'N675UA', 'EWR', 'IAH', 216.0, 1400.0, 16.0, 30.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1629, 1630, -1.0, 2007, 2015, -8.0, 'VX', 27, 'N843VA', 'JFK', 'SFO', 351.0, 2586.0, 16.0, 30.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1629, 1605, 24.0, 1749, 1750, -1.0, 'MQ', 4415, 'N736MQ', 'LGA', 'RDU', 66.0, 431.0, 16.0, 5.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1629, 1635, -6.0, 1950, 2001, -11.0, 'US', 656, 'N650AW', 'EWR', 'PHX', 299.0, 2133.0, 16.0, 35.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1630, 1630, 0.0, 1838, 1835, 3.0, 'B6', 1085, 'N187JB', 'JFK', 'CLT', 85.0, 541.0, 16.0, 30.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1630, 1615, 15.0, 1857, 1845, 12.0, 'WN', 171, 'N452WN', 'EWR', 'DEN', 239.0, 1605.0, 16.0, 15.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1630, 1633, -3.0, 1812, 1814, -2.0, 'UA', 1719, 'N37274', 'EWR', 'CLE', 75.0, 404.0, 16.0, 33.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1633, 1640, -7.0, 1948, 1955, -7.0, 'AA', 773, 'N477AA', 'LGA', 'DFW', 231.0, 1389.0, 16.0, 40.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1634, 1600, 34.0, 1951, 1915, 36.0, 'AA', 565, 'N3FRAA', 'JFK', 'DFW', 216.0, 1391.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1635, 1635, 0.0, 1952, 1951, 1.0, 'B6', 139, 'N298JB', 'JFK', 'RSW', 155.0, 1074.0, 16.0, 35.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1635, 1550, 45.0, 1957, 1925, 32.0, 'DL', 1773, 'N666DN', 'JFK', 'SLC', 275.0, 1990.0, 15.0, 50.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1637, 1500, 97.0, 1937, 1825, 72.0, 'AA', 1925, 'N3ETAA', 'LGA', 'MIA', 146.0, 1096.0, 15.0, 0.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1638, 1644, -6.0, 1807, 1820, -13.0, 'EV', 4485, 'N16961', 'EWR', 'RDU', 67.0, 416.0, 16.0, 44.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1639, 1629, 10.0, 1921, 1930, -9.0, 'B6', 369, 'N521JB', 'LGA', 'PBI', 140.0, 1035.0, 16.0, 29.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1639, 1640, -1.0, 1843, 1850, -7.0, 'MQ', 4540, 'N711MQ', 'LGA', 'DTW', 93.0, 502.0, 16.0, 40.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1640, 1540, 60.0, 1809, 1716, 53.0, '9E', 4178, 'N831AY', 'JFK', 'ROC', 50.0, 264.0, 15.0, 40.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1641, 1640, 1.0, 1905, 1835, 30.0, 'WN', 372, 'N707SA', 'LGA', 'STL', 151.0, 888.0, 16.0, 40.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1642, 1645, -3.0, 1856, 1900, -4.0, 'DL', 1473, 'N335NB', 'LGA', 'MEM', 153.0, 963.0, 16.0, 45.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1645, 1645, 0.0, 1942, 2005, -23.0, 'AA', 181, 'N323AA', 'JFK', 'LAX', 332.0, 2475.0, 16.0, 45.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1646, 1655, -9.0, 2019, 2029, -10.0, 'DL', 706, 'N348NB', 'JFK', 'AUS', 237.0, 1521.0, 16.0, 55.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1648, 1630, 18.0, 2028, 2006, 22.0, 'UA', 1078, 'N77295', 'EWR', 'SAT', 259.0, 1569.0, 16.0, 30.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1649, 1555, 54.0, 1932, 1907, 25.0, 'DL', 1695, 'N344NW', 'LGA', 'TPA', 138.0, 1010.0, 15.0, 55.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1650, 1659, -9.0, 2050, 2046, 4.0, '9E', 3375, 'N909XJ', 'JFK', 'SAT', 255.0, 1587.0, 16.0, 59.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1650, 1650, 0.0, 1926, 1945, -19.0, 'UA', 1615, 'N14219', 'EWR', 'LAS', 313.0, 2227.0, 16.0, 50.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1653, 1700, -7.0, 1814, 1840, -26.0, 'MQ', 4323, 'N902MQ', 'JFK', 'ORF', 54.0, 290.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1655, 1655, 0.0, 2003, 2014, -11.0, 'B6', 359, 'N705JB', 'JFK', 'BUR', 336.0, 2465.0, 16.0, 55.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1656, 1700, -4.0, 1955, 1955, 0.0, 'AA', 257, 'N3GAAA', 'JFK', 'LAS', 328.0, 2248.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1656, 1706, -10.0, 1814, 1833, -19.0, 'B6', 36, 'N804JB', 'JFK', 'ROC', 50.0, 264.0, 17.0, 6.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1657, 1655, 2.0, 2020, 2030, -10.0, 'VX', 413, 'N637VA', 'JFK', 'LAX', 349.0, 2475.0, 16.0, 55.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1658, 1700, -2.0, 2125, 2204, -39.0, 'DL', 329, 'N371DA', 'JFK', 'SJU', 173.0, 1598.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1658, 1635, 23.0, 2015, 1945, 30.0, 'WN', 891, 'N356SW', 'EWR', 'HOU', 242.0, 1411.0, 16.0, 35.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1659, 1700, -1.0, 1934, 2005, -31.0, 'B6', 509, 'N526JB', 'EWR', 'FLL', 136.0, 1065.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1701, 1702, -1.0, 2010, 2018, -8.0, 'UA', 250, 'N454UA', 'EWR', 'LAX', 349.0, 2454.0, 17.0, 2.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1702, 1615, 47.0, 1905, 1815, 50.0, '9E', 3387, 'N908XJ', 'JFK', 'RDU', 68.0, 427.0, 16.0, 15.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1702, 1705, -3.0, 2020, 2010, 10.0, 'AA', 1905, 'N4YBAA', 'EWR', 'DFW', 219.0, 1372.0, 17.0, 5.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1702, 1700, 2.0, 2042, 2049, -7.0, 'DL', 31, 'N705TW', 'JFK', 'SFO', 335.0, 2586.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1702, 1554, 68.0, 1835, 1728, 67.0, 'UA', 562, 'N401UA', 'EWR', 'ORD', 118.0, 719.0, 15.0, 54.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1703, 1600, 63.0, 1958, 1902, 56.0, 'B6', 985, 'N760JB', 'LGA', 'TPA', 142.0, 1010.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1703, 1650, 13.0, 1828, 1813, 15.0, 'UA', 531, 'N498UA', 'EWR', 'BOS', 41.0, 200.0, 16.0, 50.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1704, 1700, 4.0, 1947, 1943, 4.0, 'DL', 1499, 'N641DL', 'LGA', 'ATL', 135.0, 762.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1704, 1710, -6.0, 1900, 1912, -12.0, 'US', 894, 'N178US', 'LGA', 'CLT', 89.0, 544.0, 17.0, 10.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1706, 1650, 16.0, 1821, 1820, 1.0, 'AA', 1790, 'N3JMAA', 'JFK', 'BOS', 39.0, 187.0, 16.0, 50.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1706, 1630, 36.0, 1911, 1838, 33.0, 'DL', 2231, 'N351NW', 'LGA', 'DTW', 94.0, 502.0, 16.0, 30.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1708, 1708, 0.0, 2000, 2022, -22.0, 'B6', 15, 'N229JB', 'JFK', 'FLL', 142.0, 1069.0, 17.0, 8.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1708, 1705, 3.0, 1833, 1830, 3.0, 'MQ', 4410, 'N840MQ', 'JFK', 'DCA', 56.0, 213.0, 17.0, 5.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1709, 1710, -1.0, 2050, 2015, 35.0, 'AA', 695, 'N3GBAA', 'JFK', 'AUS', 248.0, 1521.0, 17.0, 10.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1710, 1645, 25.0, 1918, 1853, 25.0, 'EV', 4997, 'N752EV', 'EWR', 'DTW', 101.0, 488.0, 16.0, 45.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1714, 1605, 69.0, 1909, 1754, 75.0, '9E', 3459, 'N922XJ', 'JFK', 'BNA', 127.0, 765.0, 16.0, 5.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1714, 1715, -1.0, 2029, 2040, -11.0, 'DL', 503, 'N3750D', 'JFK', 'SAN', 335.0, 2446.0, 17.0, 15.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1716, 1707, 9.0, 1819, 1815, 4.0, 'EV', 4373, 'N13965', 'EWR', 'DCA', 41.0, 199.0, 17.0, 7.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1717, 1706, 11.0, 1832, 1808, 24.0, 'EV', 4316, 'N26141', 'EWR', 'BWI', 37.0, 169.0, 17.0, 6.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1718, 1725, -7.0, 1901, 1855, 6.0, 'MQ', 4255, 'N694MQ', 'JFK', 'BNA', 128.0, 765.0, 17.0, 25.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1719, 1653, 26.0, 2013, 1925, 48.0, 'EV', 4705, 'N19966', 'EWR', 'ATL', 147.0, 746.0, 16.0, 53.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1719, 1655, 24.0, 2039, 2009, 30.0, 'B6', 185, 'N646JB', 'JFK', 'SAN', 344.0, 2446.0, 16.0, 55.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1719, 1700, 19.0, 2113, 2036, 37.0, 'DL', 127, 'N706TW', 'JFK', 'LAX', 365.0, 2475.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1719, 1720, -1.0, 1853, 1905, -12.0, 'MQ', 4479, 'N713MQ', 'LGA', 'RDU', 65.0, 431.0, 17.0, 20.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1719, 1725, -6.0, 2025, 2050, -25.0, 'UA', 512, 'N554UA', 'JFK', 'SFO', 335.0, 2586.0, 17.0, 25.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1720, 1635, 45.0, 1945, 1856, 49.0, 'EV', 3805, 'N14905', 'EWR', 'SAV', 107.0, 708.0, 16.0, 35.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1720, 1724, -4.0, 1932, 1953, -21.0, 'UA', 509, 'N573UA', 'LGA', 'DEN', 231.0, 1620.0, 17.0, 24.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1721, 1705, 16.0, 2007, 2007, 0.0, 'B6', 143, 'N559JB', 'JFK', 'PBI', 132.0, 1028.0, 17.0, 5.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1722, 1706, 16.0, 2024, 2038, -14.0, 'UA', 1284, 'N41140', 'EWR', 'SFO', 334.0, 2565.0, 17.0, 6.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1724, 1700, 24.0, 1838, 1817, 21.0, 'US', 2183, 'N715UW', 'LGA', 'DCA', 55.0, 214.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1724, 1725, -1.0, 1945, 2032, -47.0, 'UA', 1100, 'N75433', 'EWR', 'SEA', 300.0, 2402.0, 17.0, 25.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1725, 1555, 90.0, 1859, 1748, 71.0, 'B6', 917, 'N306JB', 'JFK', 'ORD', 129.0, 740.0, 15.0, 55.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1726, 1634, 52.0, 1939, 1837, 62.0, 'EV', 4411, 'N15980', 'EWR', 'MEM', 153.0, 946.0, 16.0, 34.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1726, 1725, 1.0, 2043, 2040, 3.0, 'AA', 145, 'N3BGAA', 'JFK', 'SAN', 347.0, 2446.0, 17.0, 25.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1727, 1730, -3.0, 1938, 1957, -19.0, 'F9', 837, 'N216FR', 'LGA', 'DEN', 227.0, 1620.0, 17.0, 30.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1727, 1730, -3.0, 1904, 1855, 9.0, 'WN', 216, 'N913WN', 'EWR', 'MDW', 133.0, 711.0, 17.0, 30.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1727, 1705, 22.0, 1928, 1905, 23.0, 'WN', 440, 'N966WN', 'EWR', 'STL', 150.0, 872.0, 17.0, 5.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1730, 1455, 155.0, 1915, 1645, 150.0, 'AA', 337, 'N4YFAA', 'LGA', 'ORD', 120.0, 733.0, 14.0, 55.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1732, 1545, 107.0, 1959, 1850, 69.0, 'DL', 2377, 'N309US', 'LGA', 'MCO', 130.0, 950.0, 15.0, 45.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1733, 1735, -2.0, 1855, 1925, -30.0, 'WN', 408, 'N483WN', 'LGA', 'BNA', 129.0, 764.0, 17.0, 35.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1734, 1610, 84.0, 1851, 1756, 55.0, 'EV', 5486, 'N751EV', 'LGA', 'PIT', 59.0, 335.0, 16.0, 10.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1734, 1729, 5.0, 2038, 2046, -8.0, 'DL', 1185, 'N398DA', 'EWR', 'SLC', 277.0, 1969.0, 17.0, 29.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1737, 1623, 74.0, 1855, 1730, 85.0, 'EV', 4299, 'N14180', 'EWR', 'DCA', 47.0, 199.0, 16.0, 23.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1737, 1721, 16.0, 1953, 1929, 24.0, 'EV', 4323, 'N12967', 'EWR', 'CVG', 105.0, 569.0, 17.0, 21.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1737, 1559, 98.0, 1944, 1803, 101.0, 'EV', 4667, 'N11191', 'EWR', 'MSP', 157.0, 1008.0, 15.0, 59.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1737, 1700, 37.0, 2022, 1935, 47.0, 'DL', 2042, 'N309DE', 'EWR', 'ATL', 140.0, 746.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1738, 1706, 32.0, 1950, 1855, 55.0, 'EV', 4202, 'N13989', 'EWR', 'STL', 159.0, 872.0, 17.0, 6.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1739, 1725, 14.0, 2036, 2023, 13.0, 'UA', 1178, 'N12116', 'EWR', 'IAH', 213.0, 1400.0, 17.0, 25.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1740, 1729, 11.0, 1933, 1935, -2.0, 'EV', 4382, 'N12142', 'EWR', 'DTW', 89.0, 488.0, 17.0, 29.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1740, 1745, -5.0, 2024, 2117, -53.0, 'DL', 1394, 'N382DA', 'JFK', 'PDX', 307.0, 2454.0, 17.0, 45.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1743, 1730, 13.0, 1931, 1923, 8.0, 'US', 449, 'N654AW', 'EWR', 'CLT', 84.0, 529.0, 17.0, 30.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1745, 1745, 0.0, 2017, 2042, -25.0, 'B6', 391, 'N590JB', 'LGA', 'MCO', 130.0, 950.0, 17.0, 45.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1745, 1751, -6.0, 2104, 2103, 1.0, 'UA', 535, 'N510UA', 'JFK', 'LAX', 339.0, 2475.0, 17.0, 51.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1746, 1745, 1.0, 2048, 2120, -32.0, 'AA', 177, 'N328AA', 'JFK', 'SFO', 338.0, 2586.0, 17.0, 45.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1747, 1735, 12.0, 1915, 1854, 21.0, 'B6', 74, 'N662JB', 'JFK', 'BTV', 51.0, 266.0, 17.0, 35.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1749, 1750, -1.0, 1912, 1907, 5.0, 'B6', 1307, 'N231JB', 'JFK', 'IAD', 48.0, 228.0, 17.0, 50.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1749, 1745, 4.0, 2028, 2020, 8.0, 'MQ', 4413, 'N725MQ', 'LGA', 'XNA', 193.0, 1147.0, 17.0, 45.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1751, 1758, -7.0, 2009, 2014, -5.0, 'EV', 4397, 'N14177', 'EWR', 'MCI', 173.0, 1092.0, 17.0, 58.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1751, 1750, 1.0, 2049, 2107, -18.0, 'UA', 1228, 'N13716', 'EWR', 'SAN', 339.0, 2425.0, 17.0, 50.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1754, 1800, -6.0, 1900, 1913, -13.0, 'US', 2185, 'N767UW', 'LGA', 'DCA', 49.0, 214.0, 18.0, 0.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1756, 1800, -4.0, 1918, 1913, 5.0, 'US', 2138, 'N956UW', 'LGA', 'BOS', 39.0, 184.0, 18.0, 0.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1757, 1720, 37.0, 2045, 2040, 5.0, 'AA', 1999, 'N5DWAA', 'EWR', 'MIA', 140.0, 1085.0, 17.0, 20.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1757, 1800, -3.0, 2000, 2006, -6.0, 'US', 373, 'N523UW', 'JFK', 'CLT', 84.0, 541.0, 18.0, 0.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1759, 1625, 94.0, 1932, 1802, 90.0, 'EV', 4702, 'N16919', 'EWR', 'GSO', 70.0, 445.0, 16.0, 25.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1759, 1540, 139.0, 1955, 1743, 132.0, '9E', 3523, 'N904XJ', 'JFK', 'ORD', 130.0, 740.0, 15.0, 40.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1800, 1605, 115.0, 2152, 1925, 147.0, '9E', 3325, 'N903XJ', 'JFK', 'DFW', 231.0, 1391.0, 16.0, 5.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1800, 1800, 0.0, 2039, 2043, -4.0, 'DL', 1047, 'N678DL', 'LGA', 'ATL', 126.0, 762.0, 18.0, 0.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1800, 1805, -5.0, 1935, 1935, 0.0, 'WN', 389, 'N463WN', 'LGA', 'MDW', 129.0, 725.0, 18.0, 5.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1801, 1610, 111.0, 2000, 1807, 113.0, 'EV', 4092, 'N11137', 'EWR', 'DAY', 92.0, 533.0, 16.0, 10.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1802, 1735, 27.0, 1937, 1921, 16.0, 'B6', 1111, 'N190JB', 'JFK', 'RDU', 70.0, 427.0, 17.0, 35.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1802, 1715, 47.0, 2046, 2019, 27.0, 'DL', 1585, 'N956DL', 'LGA', 'MCO', 131.0, 950.0, 17.0, 15.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1802, 1800, 2.0, 1904, 1910, -6.0, 'WN', 808, 'N955WN', 'EWR', 'BWI', 37.0, 169.0, 18.0, 0.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1802, 1810, -8.0, 1935, 1945, -10.0, 'MQ', 4484, 'N723MQ', 'LGA', 'BNA', 125.0, 764.0, 18.0, 10.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1802, 1805, -3.0, 1942, 1955, -13.0, 'MQ', 4626, 'N518MQ', 'LGA', 'CMH', 80.0, 479.0, 18.0, 5.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1805, 1807, -2.0, 2057, 2127, -30.0, 'B6', 217, 'N552JB', 'JFK', 'LGB', 333.0, 2465.0, 18.0, 7.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1805, 1700, 65.0, 2117, 2011, 66.0, 'UA', 602, 'N805UA', 'LGA', 'IAH', 222.0, 1416.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1806, 1726, 40.0, 1930, 1859, 31.0, 'EV', 3843, 'N14542', 'EWR', 'PIT', 56.0, 319.0, 17.0, 26.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1808, 1815, -7.0, 1938, 1952, -14.0, '9E', 4277, 'N8758D', 'JFK', 'ORF', 53.0, 290.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1809, 1548, 141.0, 2044, 1830, 134.0, 'DL', 95, 'N395DN', 'JFK', 'ATL', 127.0, 760.0, 15.0, 48.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1810, 1755, 15.0, 2055, 2108, -13.0, 'B6', 989, 'N658JB', 'JFK', 'FLL', 140.0, 1069.0, 17.0, 55.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1811, 1745, 26.0, 2116, 2055, 21.0, 'AA', 785, 'N3GRAA', 'LGA', 'DFW', 226.0, 1389.0, 17.0, 45.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1811, 1819, -8.0, 2111, 2138, -27.0, 'UA', 593, 'N807UA', 'EWR', 'SNA', 334.0, 2434.0, 18.0, 19.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1812, 1810, 2.0, 2114, 2130, -16.0, 'AA', 1611, 'N3CSAA', 'LGA', 'MIA', 144.0, 1096.0, 18.0, 10.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1813, 1820, -7.0, 2142, 2150, -8.0, 'AA', 119, 'N3DRAA', 'EWR', 'LAX', 340.0, 2454.0, 18.0, 20.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1814, 1810, 4.0, 2159, 2150, 9.0, 'UA', 594, 'N852UA', 'EWR', 'PHX', 316.0, 2133.0, 18.0, 10.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1815, 1815, 0.0, 1944, 1958, -14.0, '9E', 4019, 'N824AY', 'JFK', 'RIC', 59.0, 288.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1816, 1730, 46.0, 2056, 2004, 52.0, 'FL', 623, 'N991AT', 'LGA', 'ATL', 137.0, 762.0, 17.0, 30.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1817, 1815, 2.0, 2013, 2026, -13.0, 'DL', 2019, 'N312US', 'LGA', 'MSP', 146.0, 1020.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1817, 1759, 18.0, 2136, 2105, 31.0, 'UA', 709, 'N843UA', 'EWR', 'DFW', 229.0, 1372.0, 17.0, 59.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1818, 1830, -12.0, 2025, 2044, -19.0, '9E', 3716, 'N8986B', 'EWR', 'DTW', 79.0, 488.0, 18.0, 30.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1818, 1820, -2.0, 2055, 2114, -19.0, 'B6', 711, 'N793JB', 'JFK', 'LAS', 308.0, 2248.0, 18.0, 20.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1818, 1829, -11.0, 1956, 2032, -36.0, 'US', 1973, 'N123UW', 'EWR', 'CLT', 78.0, 529.0, 18.0, 29.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1818, 1635, 103.0, 1949, 1810, 99.0, 'MQ', 3695, 'N512MQ', 'EWR', 'ORD', 116.0, 719.0, 16.0, 35.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1818, 1700, 78.0, 1938, 1839, 59.0, 'UA', 791, 'N827UA', 'LGA', 'ORD', 119.0, 733.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1818, 1811, 7.0, 1955, 1952, 3.0, 'UA', 1053, 'N29717', 'EWR', 'CLE', 67.0, 404.0, 18.0, 11.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1819, 1825, -6.0, 1955, 2008, -13.0, 'EV', 5073, 'N615QX', 'LGA', 'MSN', 133.0, 812.0, 18.0, 25.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1820, 1800, 20.0, 2104, 2057, 7.0, 'B6', 9, 'N506JB', 'JFK', 'MCO', 137.0, 944.0, 18.0, 0.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1823, 1810, 13.0, 2137, 2141, -4.0, 'B6', 173, 'N775JB', 'JFK', 'SJC', 342.0, 2569.0, 18.0, 10.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1823, 1830, -7.0, 2123, 2202, -39.0, 'UA', 272, 'N512UA', 'JFK', 'SFO', 333.0, 2586.0, 18.0, 30.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1824, 1810, 14.0, 2055, 2037, 18.0, '9E', 3542, 'N605LR', 'JFK', 'MSP', 155.0, 1029.0, 18.0, 10.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1824, 1830, -6.0, 2119, 2205, -46.0, 'AA', 269, 'N3EYAA', 'JFK', 'SEA', 318.0, 2422.0, 18.0, 30.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1824, 1815, 9.0, 2207, 2050, 77.0, 'DL', 926, 'N301DQ', 'EWR', 'ATL', 117.0, 746.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1826, 1822, 4.0, 1936, 1935, 1.0, 'EV', 4520, 'N12201', 'EWR', 'PWM', 46.0, 284.0, 18.0, 22.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1827, 1722, 65.0, 1959, 1844, 75.0, 'EV', 4300, 'N13566', 'EWR', 'RIC', 58.0, 277.0, 17.0, 22.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1828, 1815, 13.0, 2056, 2125, -29.0, 'AS', 7, 'N403AS', 'EWR', 'SEA', 306.0, 2402.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1829, 1835, -6.0, 1954, 1950, 4.0, 'MQ', 3944, 'N923MQ', 'JFK', 'BWI', 40.0, 184.0, 18.0, 35.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1829, 1827, 2.0, 2055, 2048, 7.0, 'UA', 1139, 'N37273', 'EWR', 'DEN', 237.0, 1605.0, 18.0, 27.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1830, 1745, 45.0, 2118, 2041, 37.0, 'B6', 547, 'N591JB', 'EWR', 'PBI', 133.0, 1023.0, 17.0, 45.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1830, 1620, 130.0, 1956, 1750, 126.0, 'MQ', 4622, 'N516MQ', 'LGA', 'BNA', 129.0, 764.0, 16.0, 20.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1831, 1836, -5.0, 2032, 2031, 1.0, 'EV', 4437, 'N10575', 'EWR', 'CAE', 95.0, 602.0, 18.0, 36.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1832, 1835, -3.0, 2149, 2212, -23.0, 'DL', 1643, 'N378DA', 'JFK', 'SEA', 325.0, 2422.0, 18.0, 35.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1838, 1720, 78.0, 2030, 1915, 75.0, 'AA', 1351, 'N3GTAA', 'JFK', 'ORD', 127.0, 740.0, 17.0, 20.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1838, 1850, -12.0, 2027, 2050, -23.0, 'AA', 2019, 'N425AA', 'LGA', 'STL', 149.0, 888.0, 18.0, 50.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1839, 1845, -6.0, 2121, 2137, -16.0, '9E', 3369, 'N932XJ', 'JFK', 'MSY', 194.0, 1182.0, 18.0, 45.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1842, 1826, 16.0, 2120, 2132, -12.0, 'UA', 1269, 'N13750', 'EWR', 'PBI', 134.0, 1023.0, 18.0, 26.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1845, 1850, -5.0, 2029, 2055, -26.0, 'US', 1491, 'N554UW', 'LGA', 'CLT', 84.0, 544.0, 18.0, 50.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1847, 1845, 2.0, 2020, 2030, -10.0, 'MQ', 4517, 'N734MQ', 'LGA', 'CRW', 79.0, 444.0, 18.0, 45.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1848, 1850, -2.0, 2122, 2212, -50.0, 'DL', 2159, 'N3742C', 'JFK', 'MCO', 135.0, 944.0, 18.0, 50.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1848, 1831, 17.0, 2132, 2144, -12.0, 'UA', 342, 'N536UA', 'EWR', 'LAX', 323.0, 2454.0, 18.0, 31.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1852, 1845, 7.0, 2108, 2050, 18.0, 'EV', 4227, 'N16918', 'EWR', 'GRR', 107.0, 605.0, 18.0, 45.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1852, 1730, 82.0, 2132, 2023, 69.0, 'UA', 1637, 'N77258', 'EWR', 'TPA', 137.0, 997.0, 17.0, 30.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1854, 1850, 4.0, 2215, 2235, -20.0, 'VX', 29, 'N642VA', 'JFK', 'SFO', 346.0, 2586.0, 18.0, 50.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1854, 1900, -6.0, 2012, 2016, -4.0, 'US', 2187, 'N958UW', 'LGA', 'DCA', 49.0, 214.0, 19.0, 0.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1854, 1857, -3.0, 2201, 2201, 0.0, 'UA', 891, 'N489UA', 'LGA', 'IAH', 229.0, 1416.0, 18.0, 57.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1855, 1900, -5.0, 2229, 2235, -6.0, 'DL', 87, 'N721TW', 'JFK', 'LAX', 340.0, 2475.0, 19.0, 0.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1856, 1720, 96.0, 2042, 1910, 92.0, 'AA', 345, 'N4XSAA', 'LGA', 'ORD', 124.0, 733.0, 17.0, 20.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1858, 1900, -2.0, 2132, 2146, -14.0, 'DL', 947, 'N615DL', 'LGA', 'ATL', 122.0, 762.0, 19.0, 0.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1858, 1855, 3.0, 2215, 2142, 33.0, 'DL', 951, 'N1609', 'JFK', 'ATL', 135.0, 760.0, 18.0, 55.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1858, 1900, -2.0, 2255, 2301, -6.0, 'DL', 1465, 'N704X', 'JFK', 'SFO', 360.0, 2586.0, 19.0, 0.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1858, 1658, 120.0, 2053, 1834, 139.0, 'UA', 326, 'N420UA', 'EWR', 'ORD', 118.0, 719.0, 16.0, 58.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1900, 1905, -5.0, 2026, 2040, -14.0, 'WN', 981, 'N429WN', 'LGA', 'MKE', 128.0, 738.0, 19.0, 5.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1903, 1906, -3.0, 2057, 2115, -18.0, 'EV', 4627, 'N13968', 'EWR', 'CLT', 87.0, 529.0, 19.0, 6.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1904, 1850, 14.0, 2132, 2142, -10.0, 'B6', 527, 'N605JB', 'EWR', 'MCO', 125.0, 937.0, 18.0, 50.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1906, 1729, 97.0, 2156, 2049, 67.0, 'AA', 543, 'N344AA', 'JFK', 'MIA', 141.0, 1089.0, 17.0, 29.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1907, 1910, -3.0, 2147, 2204, -17.0, 'UA', 347, 'N441UA', 'EWR', 'LAS', 308.0, 2227.0, 19.0, 10.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1909, 1915, -6.0, 2141, 2137, 4.0, 'EV', 4085, 'N14188', 'EWR', 'OMA', 177.0, 1134.0, 19.0, 15.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1910, 1815, 55.0, 2114, 2037, 37.0, '9E', 3424, 'N927XJ', 'JFK', 'DTW', 89.0, 509.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1910, 1910, 0.0, 2034, 2055, -21.0, 'MQ', 4569, 'N722MQ', 'LGA', 'RDU', 62.0, 431.0, 19.0, 10.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1912, 1858, 14.0, 2051, 2055, -4.0, 'EV', 5038, 'N716EV', 'LGA', 'BHM', 135.0, 866.0, 18.0, 58.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1913, 1823, 50.0, 2138, 2140, -2.0, 'UA', 1462, 'N73278', 'EWR', 'PDX', 301.0, 2434.0, 18.0, 23.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1914, 1900, 14.0, 2036, 2051, -15.0, 'DL', 1255, 'N329NB', 'LGA', 'PIT', 62.0, 335.0, 19.0, 0.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1914, 1912, 2.0, 2200, 2222, -22.0, 'UA', 492, 'N436UA', 'EWR', 'FLL', 143.0, 1065.0, 19.0, 12.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1915, 1920, -5.0, 2202, 2246, -44.0, 'DL', 1385, 'N373DA', 'JFK', 'FLL', 142.0, 1069.0, 19.0, 20.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1916, 1830, 46.0, 2047, 2015, 32.0, 'MQ', 4674, 'N534MQ', 'LGA', 'CLE', 68.0, 419.0, 18.0, 30.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1917, 1915, 2.0, 2158, 2230, -32.0, 'DL', 1729, 'N385DN', 'JFK', 'LAS', 308.0, 2248.0, 19.0, 15.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1918, 1920, -2.0, 2221, 2258, -37.0, 'DL', 6, 'N3773D', 'JFK', 'SLC', 271.0, 1990.0, 19.0, 20.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1921, 1910, 11.0, 2229, 2215, 14.0, 'AA', 2075, 'N469AA', 'EWR', 'DFW', 220.0, 1372.0, 19.0, 10.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1923, 1930, -7.0, 2151, 2213, -22.0, 'DL', 1715, 'N327NB', 'LGA', 'MSY', 187.0, 1183.0, 19.0, 30.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1924, 1930, -6.0, 2130, 2151, -21.0, '9E', 3798, 'N8747B', 'JFK', 'CLT', 86.0, 541.0, 19.0, 30.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1924, 1859, 25.0, 2227, 2224, 3.0, 'B6', 171, 'N603JB', 'JFK', 'SMF', 316.0, 2521.0, 18.0, 59.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1924, 1929, -5.0, 2221, 2246, -25.0, 'DL', 1099, 'N321NB', 'LGA', 'RSW', 158.0, 1080.0, 19.0, 29.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1924, 1920, 4.0, 2301, 2315, -14.0, 'DL', 1345, 'N3767', 'JFK', 'PHX', 312.0, 2153.0, 19.0, 20.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1924, 1815, 69.0, 2041, 1939, 62.0, 'UA', 1703, 'N12221', 'EWR', 'BOS', 43.0, 200.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1925, 1925, 0.0, 2227, 2247, -20.0, 'DL', 2139, 'N904DL', 'LGA', 'MIA', 157.0, 1096.0, 19.0, 25.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1925, 1845, 40.0, 2230, 2221, 9.0, 'DL', 2190, 'N360NW', 'JFK', 'MIA', 152.0, 1089.0, 18.0, 45.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1927, 1925, 2.0, 2053, 2045, 8.0, '9E', 4127, 'N8577D', 'JFK', 'IAD', 47.0, 228.0, 19.0, 25.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1929, 1930, -1.0, 2301, 2311, -10.0, 'B6', 91, 'N779JB', 'JFK', 'OAK', 335.0, 2576.0, 19.0, 30.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1929, 1859, 30.0, 2323, 2246, 37.0, 'B6', 179, 'N562JB', 'JFK', 'PHX', 317.0, 2153.0, 18.0, 59.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1929, 1910, 19.0, 2301, 2230, 31.0, 'B6', 87, 'N712JB', 'JFK', 'SLC', 274.0, 1990.0, 19.0, 10.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1930, 1800, 90.0, 2053, 1914, 99.0, 'B6', 1016, 'N339JB', 'JFK', 'BOS', 43.0, 187.0, 18.0, 0.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1930, 1930, 0.0, 2228, 2243, -15.0, 'DL', 1435, 'N940DL', 'LGA', 'TPA', 147.0, 1010.0, 19.0, 30.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1934, 1935, -1.0, 2155, 2145, 10.0, '9E', 3899, 'N8907A', 'JFK', 'CLE', 78.0, 425.0, 19.0, 35.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1934, 1846, 48.0, 2108, 2018, 50.0, 'B6', 130, 'N197JB', 'JFK', 'BUF', 58.0, 301.0, 18.0, 46.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1934, 1915, 19.0, 2228, 2211, 17.0, 'B6', 155, 'N703JB', 'JFK', 'MCO', 137.0, 944.0, 19.0, 15.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1934, 1932, 2.0, 2231, 2230, 1.0, 'UA', 1416, 'N39728', 'EWR', 'IAH', 214.0, 1400.0, 19.0, 32.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1935, 1940, -5.0, 2042, 2100, -18.0, 'EV', 4108, 'N14952', 'EWR', 'IAD', 43.0, 212.0, 19.0, 40.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1936, 1940, -4.0, 2111, 2100, 11.0, 'WN', 633, 'N922WN', 'EWR', 'MDW', 126.0, 711.0, 19.0, 40.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1938, 1940, -2.0, 2220, 2240, -20.0, 'AA', 1787, 'N3EXAA', 'JFK', 'TPA', 145.0, 1005.0, 19.0, 40.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1943, 1934, 9.0, 2304, 2219, 45.0, 'EV', 4204, 'N11192', 'EWR', 'OKC', 230.0, 1325.0, 19.0, 34.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1943, 1945, -2.0, 2220, 2241, -21.0, '9E', 3314, 'N910XJ', 'JFK', 'JAX', 114.0, 828.0, 19.0, 45.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1944, 1940, 4.0, 2120, 2125, -5.0, 'MQ', 3783, 'N509MQ', 'JFK', 'CMH', 76.0, 483.0, 19.0, 40.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1947, 1940, 7.0, 2047, 2106, -19.0, '9E', 4091, 'N8543F', 'JFK', 'BWI', 40.0, 184.0, 19.0, 40.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1949, 1910, 39.0, 2153, 2118, 35.0, 'EV', 4543, 'N11194', 'EWR', 'DSM', 161.0, 1017.0, 19.0, 10.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1949, 1955, -6.0, 2223, 2310, -47.0, 'AA', 1709, 'N3FWAA', 'LGA', 'MIA', 139.0, 1096.0, 19.0, 55.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1949, 1940, 9.0, 2236, 2248, -12.0, 'B6', 381, 'N537JB', 'LGA', 'FLL', 140.0, 1076.0, 19.0, 40.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1950, 2000, -10.0, 2302, 2145, NULL, 'EV', 3272, 'N12540', 'LGA', 'CLE', NULL, 419.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 1951, 1959, -8.0, 2140, 2144, -4.0, 'MQ', 4423, 'N832MQ', 'JFK', 'RDU', 70.0, 427.0, 19.0, 59.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1952, 1925, 27.0, 2242, 2235, 7.0, 'DL', 2370, 'N324NB', 'LGA', 'PBI', 142.0, 1035.0, 19.0, 25.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1952, 2000, -8.0, 2108, 2117, -9.0, 'US', 2189, 'N760US', 'LGA', 'DCA', 47.0, 214.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 1953, 1946, 7.0, 2203, 2152, 11.0, 'EV', 4536, 'N14959', 'EWR', 'CVG', 105.0, 569.0, 19.0, 46.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1954, 2000, -6.0, 2123, 2114, 9.0, 'US', 2142, 'N945UW', 'LGA', 'BOS', 40.0, 184.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 1954, 1920, 34.0, 2251, 2251, 0.0, 'UA', 1482, 'N37413', 'EWR', 'SFO', 336.0, 2565.0, 19.0, 20.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1955, 1900, 55.0, 2142, 2057, 45.0, '9E', 3368, 'N914XJ', 'JFK', 'PIT', 68.0, 340.0, 19.0, 0.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1955, 2000, -5.0, 2211, 2224, -13.0, '9E', 3439, 'N916XJ', 'JFK', 'CVG', 103.0, 589.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 1955, 2000, -5.0, 2234, 2243, -9.0, 'DL', 1147, 'N662DN', 'LGA', 'ATL', 118.0, 762.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 1956, 2000, -4.0, 2256, 2311, -15.0, 'B6', 801, 'N621JB', 'JFK', 'FLL', 143.0, 1069.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 1957, 2005, -8.0, 2044, 2109, -25.0, 'EV', 4309, 'N11165', 'EWR', 'ALB', 29.0, 143.0, 20.0, 5.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 1958, 1855, 63.0, 31, 2355, 36.0, 'AA', 1613, 'N625AA', 'JFK', 'SJU', 173.0, 1598.0, 18.0, 55.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1959, 2005, -6.0, 2331, 2335, -4.0, 'VX', 415, 'N636VA', 'JFK', 'LAX', 343.0, 2475.0, 20.0, 5.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2001, 2005, -4.0, 2233, 2258, -25.0, 'UA', 405, 'N405UA', 'EWR', 'MCO', 130.0, 937.0, 20.0, 5.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2002, 1950, 12.0, 2316, 2334, -18.0, 'B6', 645, 'N641JB', 'JFK', 'SFO', 333.0, 2586.0, 19.0, 50.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2002, 2005, -3.0, 2238, 2311, -33.0, 'UA', 754, 'N812UA', 'EWR', 'TPA', 143.0, 997.0, 20.0, 5.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2003, 2005, -2.0, 2205, 2204, 1.0, 'EV', 4133, 'N18556', 'EWR', 'GSP', 99.0, 594.0, 20.0, 5.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2005, 1925, 40.0, 2303, 2229, 34.0, 'DL', 1485, 'N908DL', 'LGA', 'MCO', 133.0, 950.0, 19.0, 25.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2008, 2015, -7.0, 2208, 2210, -2.0, 'MQ', 4555, 'N739MQ', 'LGA', 'CMH', 85.0, 479.0, 20.0, 15.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2009, 1900, 69.0, 2244, 2134, 70.0, 'FL', 645, 'N943AT', 'LGA', 'ATL', 118.0, 762.0, 19.0, 0.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2010, 1745, 145.0, 2213, 1953, 140.0, 'DL', 2331, 'N979DL', 'LGA', 'DTW', 85.0, 502.0, 17.0, 45.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 2011, 1720, 171.0, 2257, 2033, 144.0, 'DL', 1779, 'N333NW', 'LGA', 'FLL', 144.0, 1076.0, 17.0, 20.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 2013, 2000, 13.0, 2141, 2143, -2.0, 'DL', 402, 'N369NB', 'JFK', 'BOS', 40.0, 187.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2015, 2000, 15.0, 2314, 2304, 10.0, 'B6', 21, 'N623JB', 'JFK', 'TPA', 142.0, 1005.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2017, 1910, 67.0, 2150, 2043, 67.0, 'EV', 4191, 'N14950', 'EWR', 'BNA', 128.0, 748.0, 19.0, 10.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2017, 2002, 15.0, 2143, 2140, 3.0, 'UA', 1018, 'N33714', 'EWR', 'CLE', 69.0, 404.0, 20.0, 2.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2018, 2022, -4.0, 2311, 2328, -17.0, 'UA', 299, 'N473UA', 'EWR', 'DFW', 217.0, 1372.0, 20.0, 22.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2023, 2025, -2.0, 2319, 2329, -10.0, 'UA', 771, 'N505UA', 'JFK', 'LAX', 321.0, 2475.0, 20.0, 25.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2025, 2029, -4.0, 2124, 2140, -16.0, '9E', 3609, 'N8971A', 'JFK', 'PHL', 26.0, 94.0, 20.0, 29.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2025, 2030, -5.0, 2347, 2349, -2.0, 'B6', 1069, 'N249JB', 'JFK', 'AUS', 245.0, 1521.0, 20.0, 30.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2026, 2000, 26.0, 2205, 2137, 28.0, 'EV', 4106, 'N13913', 'EWR', 'GSO', 69.0, 445.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2026, 2015, 11.0, 2149, 2130, 19.0, 'AA', 1762, 'N3DXAA', 'JFK', 'BOS', 41.0, 187.0, 20.0, 15.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2027, 2029, -2.0, 2215, 2218, -3.0, 'EV', 3833, 'N14568', 'EWR', 'STL', 148.0, 872.0, 20.0, 29.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2028, 1820, 128.0, 2200, 2005, 115.0, 'AA', 353, 'N3DFAA', 'LGA', 'ORD', 119.0, 733.0, 18.0, 20.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 2029, 2030, -1.0, 2200, 2206, -6.0, 'FL', 354, 'N928AT', 'LGA', 'CAK', 70.0, 397.0, 20.0, 30.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2030, 1952, 38.0, 2135, 2102, 33.0, 'EV', 4312, 'N12922', 'EWR', 'DCA', 43.0, 199.0, 19.0, 52.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2031, 2035, -4.0, 2323, 2349, -26.0, 'B6', 147, 'N608JB', 'JFK', 'RSW', 151.0, 1074.0, 20.0, 35.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2032, 1916, 76.0, 2147, 2038, 69.0, 'EV', 4131, 'N13978', 'EWR', 'RIC', 52.0, 277.0, 19.0, 16.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2032, 2005, 27.0, 2300, 2230, 30.0, '9E', 4033, 'N8598B', 'LGA', 'TYS', 102.0, 647.0, 20.0, 5.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2034, 2039, -5.0, 2140, 2143, -3.0, 'EV', 4695, 'N13553', 'EWR', 'MHT', 41.0, 209.0, 20.0, 39.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2035, 2020, 15.0, 2254, 2245, 9.0, 'MQ', 4662, 'N506MQ', 'LGA', 'ATL', 119.0, 762.0, 20.0, 20.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2036, 2045, -9.0, 2137, 2216, -39.0, '9E', 3395, 'N913XJ', 'JFK', 'DCA', 47.0, 213.0, 20.0, 45.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2037, 1947, 50.0, 2146, 2112, 34.0, 'EV', 4412, 'N14972', 'EWR', 'BUF', 49.0, 282.0, 19.0, 47.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2041, 2045, -4.0, 2159, 2153, 6.0, 'B6', 1178, 'N292JB', 'EWR', 'BOS', 44.0, 200.0, 20.0, 45.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2045, 2029, 16.0, 2241, 2233, 8.0, 'EV', 4348, 'N11193', 'EWR', 'MSP', 157.0, 1008.0, 20.0, 29.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2045, 2045, 0.0, 2309, 2309, 0.0, 'B6', 115, 'N334JB', 'JFK', 'MSY', 189.0, 1182.0, 20.0, 45.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2045, 2055, -10.0, 2233, 2250, -17.0, 'MQ', 4573, 'N736MQ', 'LGA', 'DTW', 85.0, 502.0, 20.0, 55.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2046, 2040, 6.0, 2354, 2344, 10.0, 'B6', 629, 'N309JB', 'JFK', 'HOU', 233.0, 1428.0, 20.0, 40.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2049, 2100, -11.0, 2224, 2211, 13.0, 'US', 2191, 'N730US', 'LGA', 'DCA', 45.0, 214.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2050, 2100, -10.0, 2227, 2235, -8.0, 'MQ', 4507, 'N719MQ', 'LGA', 'RDU', 71.0, 431.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2053, 2040, 13.0, 2342, 2356, -14.0, 'B6', 677, 'N644JB', 'JFK', 'LAX', 331.0, 2475.0, 20.0, 40.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2053, 1840, 133.0, 2255, 2049, 126.0, 'DL', 2131, 'N339NW', 'LGA', 'DTW', 86.0, 502.0, 18.0, 40.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 2053, 2100, -7.0, 2213, 2206, 7.0, 'US', 2144, 'N715UW', 'LGA', 'BOS', 40.0, 184.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2055, 2040, 15.0, 2318, 2312, 6.0, 'EV', 4645, 'N15983', 'EWR', 'JAX', 121.0, 820.0, 20.0, 40.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2055, 1930, 85.0, 2355, 2247, 68.0, 'DL', 1854, 'N325NB', 'LGA', 'FLL', 155.0, 1076.0, 19.0, 30.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2057, 2000, 57.0, 2224, 2147, 37.0, '9E', 3320, 'N917XJ', 'JFK', 'BUF', 54.0, 301.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2058, 2058, 0.0, 2236, 2206, 30.0, 'B6', 1020, 'N606JB', 'JFK', 'BOS', 40.0, 187.0, 20.0, 58.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2058, 2100, -2.0, 2233, 2225, 8.0, 'WN', 530, 'N287WN', 'LGA', 'MDW', 131.0, 725.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2059, 1920, 99.0, 2244, 2100, 104.0, 'AA', 359, 'N3JAAA', 'LGA', 'ORD', 130.0, 733.0, 19.0, 20.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2100, 2040, 20.0, 2330, 2358, -28.0, 'B6', 165, 'N568JB', 'JFK', 'PDX', 301.0, 2454.0, 20.0, 40.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2102, 2110, -8.0, 2209, 2222, -13.0, 'EV', 4119, 'N18557', 'EWR', 'RIC', 49.0, 277.0, 21.0, 10.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2102, 1700, 242.0, 2333, 1950, 223.0, 'AA', 575, 'N615AA', 'JFK', 'EGE', 246.0, 1747.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 2102, 1909, 113.0, 2232, 2050, 102.0, 'UA', 120, 'N72405', 'EWR', 'ORD', 124.0, 719.0, 19.0, 9.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2106, 2000, 66.0, 2312, 2208, 64.0, 'EV', 3822, 'N12157', 'EWR', 'TYS', 109.0, 631.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2106, 2045, 21.0, 2249, 2225, 24.0, 'AA', 371, 'N501AA', 'LGA', 'ORD', 130.0, 733.0, 20.0, 45.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2106, 1810, 176.0, 2222, 1951, 151.0, 'UA', 1437, 'N77520', 'EWR', 'ORD', 119.0, 719.0, 18.0, 10.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 2108, 2100, 8.0, 45, 31, 14.0, 'DL', 2363, 'N717TW', 'JFK', 'LAX', 347.0, 2475.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2110, 2039, 31.0, 2342, 2338, 4.0, 'UA', 1225, 'N73251', 'EWR', 'PBI', 136.0, 1023.0, 20.0, 39.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2111, 2039, 32.0, 127, 130, -3.0, 'UA', 1071, 'N33286', 'EWR', 'BQN', 175.0, 1585.0, 20.0, 39.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2112, 2100, 12.0, 2350, 2348, 2.0, 'B6', 399, 'N708JB', 'LGA', 'MCO', 136.0, 950.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2114, 2102, 12.0, 2328, 2317, 11.0, 'EV', 3819, 'N29917', 'EWR', 'SDF', 115.0, 642.0, 21.0, 2.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2115, 2125, -10.0, 2251, 2250, 1.0, 'MQ', 4660, 'N537MQ', 'LGA', 'BNA', 135.0, 764.0, 21.0, 25.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2118, 2125, -7.0, 2229, 2240, -11.0, 'MQ', 4449, 'N840MQ', 'JFK', 'DCA', 50.0, 213.0, 21.0, 25.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2119, 2110, 9.0, 2350, 2354, -4.0, 'B6', 529, 'N527JB', 'EWR', 'MCO', 129.0, 937.0, 21.0, 10.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2126, 2125, 1.0, 2231, 2233, -2.0, 'UA', 963, 'N527UA', 'EWR', 'BOS', 48.0, 200.0, 21.0, 25.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2127, 2129, -2.0, 2209, 2224, -15.0, 'EV', 4619, 'N41104', 'EWR', 'PHL', 23.0, 80.0, 21.0, 29.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2127, 2035, 52.0, 2234, 2154, 40.0, 'UA', 1243, 'N87531', 'EWR', 'BOS', 43.0, 200.0, 20.0, 35.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2129, 2130, -1.0, 12, 24, -12.0, 'B6', 383, 'N509JB', 'LGA', 'FLL', 145.0, 1076.0, 21.0, 30.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2133, 2135, -2.0, 33, 50, -17.0, 'AA', 185, 'N327AA', 'JFK', 'LAX', 336.0, 2475.0, 21.0, 35.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2134, 1930, 124.0, 2238, 2050, 108.0, 'EV', 5693, 'N833AS', 'LGA', 'IAD', 48.0, 229.0, 19.0, 30.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2134, 2135, -1.0, 2256, 2300, -4.0, 'B6', 104, 'N279JB', 'JFK', 'BUF', 55.0, 301.0, 21.0, 35.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2134, 2135, -1.0, 25, 35, -10.0, 'B6', 11, 'N796JB', 'JFK', 'FLL', 143.0, 1069.0, 21.0, 35.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2142, 1920, 142.0, 2315, 2121, 114.0, '9E', 3373, 'N933XJ', 'JFK', 'RDU', 74.0, 427.0, 19.0, 20.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2149, 2150, -1.0, 2331, 2256, 35.0, 'B6', 1902, 'N651JB', 'JFK', 'BOS', 37.0, 187.0, 21.0, 50.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2150, 1855, 175.0, 30, 2210, 140.0, 'DL', 2391, 'N342NW', 'JFK', 'TPA', 141.0, 1005.0, 18.0, 55.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 2153, 2159, -6.0, 2245, 2300, -15.0, 'EV', 4519, 'N11106', 'EWR', 'BWI', 36.0, 169.0, 21.0, 59.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2159, 2159, 0.0, 2303, 2315, -12.0, 'EV', 4162, 'N13979', 'EWR', 'BTV', 46.0, 266.0, 21.0, 59.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2200, 2125, 35.0, 2301, 2224, 37.0, 'EV', 4404, 'N16919', 'EWR', 'PVD', 36.0, 160.0, 21.0, 25.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2200, 1936, 144.0, 2, 2137, 145.0, 'EV', 4532, 'N16170', 'EWR', 'CHS', 95.0, 628.0, 19.0, 36.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2201, 2145, 16.0, 2305, 2259, 6.0, 'B6', 22, 'N231JB', 'JFK', 'SYR', 41.0, 209.0, 21.0, 45.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2207, 2154, 13.0, 48, 49, -1.0, 'B6', 515, 'N580JB', 'EWR', 'FLL', 140.0, 1065.0, 21.0, 54.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2209, 2129, 40.0, 2311, 2234, 37.0, 'EV', 4698, 'N13965', 'EWR', 'DCA', 40.0, 199.0, 21.0, 29.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2211, 2005, 126.0, 2331, 2133, 118.0, 'EV', 4224, 'N15574', 'EWR', 'MKE', 120.0, 725.0, 20.0, 5.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2211, 2130, 41.0, 38, 1, 37.0, 'B6', 97, 'N586JB', 'JFK', 'DEN', 236.0, 1626.0, 21.0, 30.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2227, 2159, 28.0, 2330, 2316, 14.0, 'DL', 2155, 'N337NW', 'LGA', 'PWM', 41.0, 269.0, 21.0, 59.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2243, 830, 853.0, 100, 1106, 834.0, 'F9', 835, 'N203FR', 'LGA', 'DEN', 233.0, 1620.0, 8.0, 30.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 2244, 1936, 188.0, 130, 2208, 202.0, 'EV', 4333, 'N14180', 'EWR', 'TUL', 207.0, 1215.0, 19.0, 36.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2247, 1905, 222.0, 155, 2225, 210.0, 'AA', 21, 'N336AA', 'JFK', 'LAX', 345.0, 2475.0, 19.0, 5.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2304, 2000, 184.0, 141, 2318, 143.0, 'UA', 890, 'N476UA', 'EWR', 'MIA', 143.0, 1085.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2305, 2241, 24.0, 23, 2, 21.0, 'B6', 112, 'N807JB', 'JFK', 'BUF', 51.0, 301.0, 22.0, 41.0, '2013-02-11T03:00:00Z'), #> (2013, 2, 10, 2310, 2250, 20.0, 17, 2353, 24.0, 'B6', 1018, 'N524JB', 'JFK', 'BOS', 39.0, 187.0, 22.0, 50.0, '2013-02-11T03:00:00Z'), #> (2013, 2, 10, 2313, 2159, 74.0, 16, 2306, 70.0, 'EV', 4322, 'N14977', 'EWR', 'PWM', 45.0, 284.0, 21.0, 59.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2315, 2250, 25.0, 34, 6, 28.0, 'B6', 30, 'N197JB', 'JFK', 'ROC', 50.0, 264.0, 22.0, 50.0, '2013-02-11T03:00:00Z'), #> (2013, 2, 10, 2318, 2250, 28.0, 30, 2358, 32.0, 'B6', 608, 'N179JB', 'JFK', 'PWM', 45.0, 273.0, 22.0, 50.0, '2013-02-11T03:00:00Z'), #> (2013, 2, 10, 2323, 2245, 38.0, 30, 2356, 34.0, 'B6', 128, 'N659JB', 'JFK', 'BTV', 48.0, 266.0, 22.0, 45.0, '2013-02-11T03:00:00Z'), #> (2013, 2, 10, 2352, 2359, -7.0, 408, 436, -28.0, 'B6', 727, 'N662JB', 'JFK', 'BQN', 175.0, 1576.0, 23.0, 59.0, '2013-02-11T04:00:00Z'), #> (2013, 2, 10, 2359, 2359, 0.0, 425, 444, -19.0, 'B6', 739, 'N729JB', 'JFK', 'PSE', 183.0, 1617.0, 23.0, 59.0, '2013-02-11T04:00:00Z'), #> (2013, 2, 10, NULL, 1200, NULL, NULL, 1408, NULL, 'EV', 4689, 'N14952', 'EWR', 'CHS', NULL, 628.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, NULL, 1815, NULL, NULL, 2032, NULL, 'EV', 5054, 'N730EV', 'EWR', 'MSP', NULL, 1008.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, NULL, 1905, NULL, NULL, 2023, NULL, 'EV', 5714, 'N836AS', 'JFK', 'IAD', NULL, 228.0, 19.0, 5.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, NULL, 1915, NULL, NULL, 2111, NULL, '9E', 3525, NULL, 'JFK', 'ORD', NULL, 740.0, 19.0, 15.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, NULL, 1530, NULL, NULL, 1910, NULL, 'AA', 85, 'N363AA', 'JFK', 'SFO', NULL, 2586.0, 15.0, 30.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, NULL, 810, NULL, NULL, 923, NULL, 'B6', 1172, 'N229JB', 'EWR', 'BOS', NULL, 200.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, NULL, 800, NULL, NULL, 1002, NULL, 'B6', 219, 'N274JB', 'JFK', 'CLT', NULL, 541.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, NULL, 829, NULL, NULL, 1105, NULL, 'B6', 611, 'N197JB', 'JFK', 'JAX', NULL, 828.0, 8.0, 29.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, NULL, 1220, NULL, NULL, 1532, NULL, 'B6', 209, 'N536JB', 'JFK', 'LGB', NULL, 2465.0, 12.0, 20.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, NULL, 1459, NULL, NULL, 1736, NULL, 'B6', 119, 'N632JB', 'JFK', 'MSY', NULL, 1182.0, 14.0, 59.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, NULL, 825, NULL, NULL, 1136, NULL, 'B6', 181, 'N625JB', 'JFK', 'SAN', NULL, 2446.0, 8.0, 25.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, NULL, 747, NULL, NULL, 1125, NULL, 'B6', 643, 'N504JB', 'JFK', 'SFO', NULL, 2586.0, 7.0, 47.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, NULL, 1435, NULL, NULL, 1747, NULL, 'B6', 347, 'N197JB', 'JFK', 'SRQ', NULL, 1041.0, 14.0, 35.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, NULL, 630, NULL, NULL, 926, NULL, 'B6', 71, 'N637JB', 'JFK', 'TPA', NULL, 1005.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, NULL, 2100, NULL, NULL, 2220, NULL, 'MQ', 3744, 'N511MQ', 'EWR', 'ORD', NULL, 719.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, NULL, 1840, NULL, NULL, 2020, NULL, 'MQ', 3730, 'N534MQ', 'EWR', 'ORD', NULL, 719.0, 18.0, 40.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, NULL, 2100, NULL, NULL, 2250, NULL, 'MQ', 4584, 'N522MQ', 'LGA', 'CLT', NULL, 544.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, NULL, 850, NULL, NULL, 1035, NULL, 'MQ', 4558, 'N730MQ', 'LGA', 'CLE', NULL, 419.0, 8.0, 50.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, NULL, 1855, NULL, NULL, 2100, NULL, 'MQ', 4649, 'N516MQ', 'LGA', 'MSP', NULL, 1020.0, 18.0, 55.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, NULL, 1625, NULL, NULL, 1855, NULL, 'MQ', 4661, 'N537MQ', 'LGA', 'ATL', NULL, 762.0, 16.0, 25.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, NULL, 1341, NULL, NULL, 1941, NULL, 'UA', 15, NULL, 'EWR', 'HNL', NULL, 4963.0, 13.0, 41.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, NULL, 1130, NULL, NULL, 1437, NULL, 'UA', 703, NULL, 'JFK', 'LAX', NULL, 2475.0, 11.0, 30.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, NULL, 1730, NULL, NULL, 2022, NULL, 'UA', 1109, NULL, 'EWR', 'MCO', NULL, 937.0, 17.0, 30.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, NULL, 1216, NULL, NULL, 1555, NULL, 'UA', 1227, NULL, 'EWR', 'PHX', NULL, 2133.0, 12.0, 16.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, NULL, 653, NULL, NULL, 937, NULL, 'UA', 1506, NULL, 'EWR', 'LAS', NULL, 2227.0, 6.0, 53.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, NULL, 900, NULL, NULL, 1130, NULL, 'UA', 1643, NULL, 'EWR', 'DEN', NULL, 1605.0, 9.0, 0.0, '2013-02-10T14:00:00Z') #> ) AS `values_table` #> #> #> $post #> $post$uk #> named list() #> #> $post$fk #> named list() #> #> $post$indexes #> $post$indexes$flights #> CREATE INDEX flights__carrier ON `flights` (`carrier`) #> CREATE INDEX flights__origin ON `flights` (`origin`) #> CREATE INDEX flights__tailnum ON `flights` (`tailnum`) #> CREATE INDEX flights__origin_time_hour ON `flights` (`origin`, `time_hour`) #> #> #> DBI::dbDisconnect(con)"},{"path":"https://dm.cynkra.com/reference/dm_unnest_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Unnest columns from a wrapped table — dm_unnest_tbl","title":"Unnest columns from a wrapped table — dm_unnest_tbl","text":"dm_unnest_tbl() target specific column unnest given table given dm. ptype set keys given, .","code":""},{"path":"https://dm.cynkra.com/reference/dm_unnest_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Unnest columns from a wrapped table — dm_unnest_tbl","text":"","code":"dm_unnest_tbl(dm, parent_table, col, ptype)"},{"path":"https://dm.cynkra.com/reference/dm_unnest_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Unnest columns from a wrapped table — dm_unnest_tbl","text":"dm dm. parent_table table dm nested columns. col column unnest (unquoted). ptype dm, used query names primary foreign keys.","code":""},{"path":"https://dm.cynkra.com/reference/dm_unnest_tbl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Unnest columns from a wrapped table — dm_unnest_tbl","text":"dm.","code":""},{"path":"https://dm.cynkra.com/reference/dm_unnest_tbl.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Unnest columns from a wrapped table — dm_unnest_tbl","text":"dm_nest_tbl() inverse operation dm_unnest_tbl() differences row column order ignored. opposite true referential constraints tables satisfied.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_unnest_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Unnest columns from a wrapped table — dm_unnest_tbl","text":"","code":"airlines_wrapped <- dm_nycflights13() %>% dm_wrap_tbl(airlines) # The ptype is required for reconstruction. # It can be an empty dm, only primary and foreign keys are considered. ptype <- dm_ptype(dm_nycflights13()) airlines_wrapped %>% dm_unnest_tbl(airlines, flights, ptype) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `flights` #> Columns: 24 #> Primary keys: 1 #> Foreign keys: 1"},{"path":"https://dm.cynkra.com/reference/dm_unpack_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Unpack columns from a wrapped table — dm_unpack_tbl","title":"Unpack columns from a wrapped table — dm_unpack_tbl","text":"#' @description","code":""},{"path":"https://dm.cynkra.com/reference/dm_unpack_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Unpack columns from a wrapped table — dm_unpack_tbl","text":"","code":"dm_unpack_tbl(dm, child_table, col, ptype)"},{"path":"https://dm.cynkra.com/reference/dm_unpack_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Unpack columns from a wrapped table — dm_unpack_tbl","text":"dm dm. child_table table dm packed columns. col column unpack (unquoted). ptype dm, used query names primary foreign keys.","code":""},{"path":"https://dm.cynkra.com/reference/dm_unpack_tbl.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Unpack columns from a wrapped table — dm_unpack_tbl","text":"dm_unpack_tbl() targets specific column unpack given table given dm. ptype set keys given, . dm_pack_tbl() inverse operation dm_unpack_tbl() differences row column order ignored. opposite true referential constraints tables satisfied rows parent table least one child row, .e. relationship cardinality 1:n 1:1.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_unpack_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Unpack columns from a wrapped table — dm_unpack_tbl","text":"","code":"flights_wrapped <- dm_nycflights13() %>% dm_wrap_tbl(flights) # The ptype is required for reconstruction. # It can be an empty dm, only primary and foreign keys are considered. ptype <- dm_ptype(dm_nycflights13()) flights_wrapped %>% dm_unpack_tbl(flights, airlines, ptype) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `flights`, `airlines` #> Columns: 24 #> Primary keys: 1 #> Foreign keys: 1"},{"path":"https://dm.cynkra.com/reference/dm_unwrap_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Unwrap a single table dm — dm_unwrap_tbl","title":"Unwrap a single table dm — dm_unwrap_tbl","text":"dm_unwrap_tbl() unwraps tables dm object resulting dm matches given ptype dm. runs sequence dm_unnest_tbl() dm_unpack_tbl() operations dm.","code":""},{"path":"https://dm.cynkra.com/reference/dm_unwrap_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Unwrap a single table dm — dm_unwrap_tbl","text":"","code":"dm_unwrap_tbl(dm, ptype, progress = NA)"},{"path":"https://dm.cynkra.com/reference/dm_unwrap_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Unwrap a single table dm — dm_unwrap_tbl","text":"dm dm. ptype dm, used query names primary foreign keys. progress Whether display progress bar, NA (default) hide non-interactive mode, show interactive mode. Requires 'progress' package.","code":""},{"path":"https://dm.cynkra.com/reference/dm_unwrap_tbl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Unwrap a single table dm — dm_unwrap_tbl","text":"dm.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_unwrap_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Unwrap a single table dm — dm_unwrap_tbl","text":"","code":"roundtrip <- dm_nycflights13() %>% dm_wrap_tbl(root = flights) %>% dm_unwrap_tbl(ptype = dm_ptype(dm_nycflights13())) roundtrip #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `flights`, `airlines`, `airports`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4 # The roundtrip has the same structure but fewer rows: dm_nrow(dm_nycflights13()) #> airlines airports flights planes weather #> 15 86 1761 945 144 dm_nrow(roundtrip) #> flights airlines airports planes weather #> 1761 15 3 1112 105"},{"path":"https://dm.cynkra.com/reference/dm_validate.html","id":null,"dir":"Reference","previous_headings":"","what":"Validator — dm_validate","title":"Validator — dm_validate","text":"dm_validate() checks internal consistency dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_validate.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validator — dm_validate","text":"","code":"dm_validate(x)"},{"path":"https://dm.cynkra.com/reference/dm_validate.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validator — dm_validate","text":"x object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_validate.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Validator — dm_validate","text":"Returns dm, invisibly, finishing checks.","code":""},{"path":"https://dm.cynkra.com/reference/dm_validate.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validator — dm_validate","text":"theory, exception new_dm(), dm objects created modified functions package valid, function needed. Please file issue dm operation creates invalid object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_validate.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validator — dm_validate","text":"","code":"dm_validate(dm()) bad_dm <- structure(list(bad = \"dm\"), class = \"dm\") try(dm_validate(bad_dm)) #> Error in abort_dm_invalid(\"A `dm` needs to be a list of one item named `def`.\") : #> This `dm` is invalid, reason: A `dm` needs to be a list of one item named `def`."},{"path":"https://dm.cynkra.com/reference/dm_wrap_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Wrap dm into a single tibble dm — dm_wrap_tbl","title":"Wrap dm into a single tibble dm — dm_wrap_tbl","text":"dm_wrap_tbl() creates single tibble dm containing root table enhanced data related relationships stored dm. runs sequence dm_nest_tbl() dm_pack_tbl() operations dm.","code":""},{"path":"https://dm.cynkra.com/reference/dm_wrap_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Wrap dm into a single tibble dm — dm_wrap_tbl","text":"","code":"dm_wrap_tbl(dm, root, strict = TRUE, progress = NA)"},{"path":"https://dm.cynkra.com/reference/dm_wrap_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Wrap dm into a single tibble dm — dm_wrap_tbl","text":"dm cycle free dm object. root Table wrap dm (unquoted). strict Whether fail cyclic dms wrapped single table, FALSE partially wrapped dm returned. progress Whether display progress bar, NA (default) hide non-interactive mode, show interactive mode. Requires 'progress' package.","code":""},{"path":"https://dm.cynkra.com/reference/dm_wrap_tbl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Wrap dm into a single tibble dm — dm_wrap_tbl","text":"dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_wrap_tbl.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Wrap dm into a single tibble dm — dm_wrap_tbl","text":"dm_wrap_tbl() inverse dm_unwrap_tbl(), .e., wrapping unwrapping returns information (disregarding row column order). opposite generally true: since dm_wrap_tbl() keeps rows related directly indirectly rows root table. Even referential constraints satisfied, unwrapping wrapping loses rows parent tables corresponding row child table. function differs dm_flatten_to_tbl() dm_squash_to_tbl() , always return single table, dm object.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_wrap_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Wrap dm into a single tibble dm — dm_wrap_tbl","text":"","code":"dm_nycflights13() %>% dm_wrap_tbl(root = airlines) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines` #> Columns: 3 #> Primary keys: 1 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/reference/dm_zoom_to.html","id":null,"dir":"Reference","previous_headings":"","what":"Mark table for manipulation — dm_zoom_to","title":"Mark table for manipulation — dm_zoom_to","text":"Zooming table dm allows use many dplyr-verbs directly table, retaining context dm object. dm_zoom_to() zooms given table. dm_update_zoomed() overwrites originally zoomed table manipulated table. filter conditions zoomed table added original filter conditions. dm_insert_zoomed() adds new table dm. dm_discard_zoomed() discards zoomed table returns dm zooming. Please refer vignette(\"tech-db-zoom\", package = \"dm\") detailed introduction.","code":""},{"path":"https://dm.cynkra.com/reference/dm_zoom_to.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Mark table for manipulation — dm_zoom_to","text":"","code":"dm_zoom_to(dm, table) dm_insert_zoomed(dm, new_tbl_name = NULL, repair = \"unique\", quiet = FALSE) dm_update_zoomed(dm) dm_discard_zoomed(dm)"},{"path":"https://dm.cynkra.com/reference/dm_zoom_to.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Mark table for manipulation — dm_zoom_to","text":"dm dm object. table table dm. new_tbl_name Name new table. repair Either string function. string, must one \"check_unique\", \"minimal\", \"unique\", \"universal\", \"unique_quiet\", \"universal_quiet\". function, invoked vector minimal names must return minimal names, otherwise error thrown. Minimal names never NULL NA. element name, minimal name empty string. Unique names unique. suffix appended duplicate names make unique. Universal names unique syntactic, meaning can safely use names variables without causing syntax error. \"check_unique\" option perform name repair. Instead, error raised names suit \"unique\" criteria. options \"unique_quiet\" \"universal_quiet\" help user calls function indirectly, via another function exposes repair quiet. Specifying repair = \"unique_quiet\" like specifying repair = \"unique\", quiet = TRUE. \"*_quiet\" options used, setting quiet silently overridden. quiet default, user informed renaming caused repairing names. concerns unique universal repairing. Set quiet TRUE silence messages. Users can silence name repair messages setting \"rlib_name_repair_verbosity\" global option \"quiet\".","code":""},{"path":"https://dm.cynkra.com/reference/dm_zoom_to.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Mark table for manipulation — dm_zoom_to","text":"dm_zoom_to(): dm_zoomed object. dm_insert_zoomed(), dm_update_zoomed() dm_discard_zoomed(): dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_zoom_to.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Mark table for manipulation — dm_zoom_to","text":"Whenever possible, key relations original table transferred resulting table using dm_insert_zoomed() dm_update_zoomed(). Functions dplyr supported dm_zoomed: group_by(), summarise(), mutate(), transmute(), filter(), select(), rename() ungroup(). can use functions just like normal table. Calling filter() zoomed dm different calling dm_filter(): latter, filter expression added list table filters stored dm. Furthermore, different join()-variants dplyr also supported, e.g. left_join() semi_join(). (Support nest_join() planned.) join-methods dm_zoomed infer columns join primary foreign keys, extra argument select allows choosing columns RHS table. -- last least -- also tidyr-functions unite() separate() supported dm_zoomed.","code":""},{"path":"https://dm.cynkra.com/reference/dm_zoom_to.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Mark table for manipulation — dm_zoom_to","text":"","code":"flights_zoomed <- dm_zoom_to(dm_nycflights13(), flights) flights_zoomed #> # Zoomed table: flights #> # A tibble: 1,761 × 19 #> year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time #> #> 1 2013 1 10 3 2359 4 426 437 #> 2 2013 1 10 16 2359 17 447 444 #> 3 2013 1 10 450 500 -10 634 648 #> 4 2013 1 10 520 525 -5 813 820 #> 5 2013 1 10 530 530 0 824 829 #> 6 2013 1 10 531 540 -9 832 850 #> 7 2013 1 10 535 540 -5 1015 1017 #> 8 2013 1 10 546 600 -14 645 709 #> 9 2013 1 10 549 600 -11 652 724 #> 10 2013 1 10 550 600 -10 649 703 #> # ℹ 1,751 more rows #> # ℹ 11 more variables: arr_delay , carrier , flight , #> # tailnum , origin , dest , air_time , distance , #> # hour , minute , time_hour flights_zoomed_transformed <- flights_zoomed %>% mutate(am_pm_dep = ifelse(dep_time < 1200, \"am\", \"pm\")) %>% # `by`-argument of `left_join()` can be explicitly given # otherwise the key-relation is used left_join(airports) %>% select(year:dep_time, am_pm_dep, everything()) flights_zoomed_transformed #> # Zoomed table: flights #> # A tibble: 1,761 × 27 #> year month day dep_time am_pm_dep sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 am 2359 4 426 #> 2 2013 1 10 16 am 2359 17 447 #> 3 2013 1 10 450 am 500 -10 634 #> 4 2013 1 10 520 am 525 -5 813 #> 5 2013 1 10 530 am 530 0 824 #> 6 2013 1 10 531 am 540 -9 832 #> 7 2013 1 10 535 am 540 -5 1015 #> 8 2013 1 10 546 am 600 -14 645 #> 9 2013 1 10 549 am 600 -11 652 #> 10 2013 1 10 550 am 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 19 more variables: sched_arr_time , arr_delay , carrier , #> # flight , tailnum , origin , dest , air_time , #> # distance , hour , minute , time_hour , name , #> # lat , lon , alt , tz , dst , tzone # replace table `flights` with the zoomed table flights_zoomed_transformed %>% dm_update_zoomed() #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 61 #> Primary keys: 4 #> Foreign keys: 4 # insert the zoomed table as a new table flights_zoomed_transformed %>% dm_insert_zoomed(\"extended_flights\") %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaextended_flightsextended_flightscarriertailnumoriginorigin, time_hourextended_flights:carrier->airlines:carrierextended_flights:origin->airports:faaplanesplanestailnumextended_flights:tailnum->planes:tailnumweatherweatherorigin, time_hourextended_flights:origin, time_hour->weather:origin, time_hourflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaflights:tailnum->planes:tailnumflights:origin, time_hour->weather:origin, time_hour # discard the zoomed table flights_zoomed_transformed %>% dm_discard_zoomed() #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/dplyr_join.html","id":null,"dir":"Reference","previous_headings":"","what":"dplyr join methods for zoomed dm objects — dplyr_join","title":"dplyr join methods for zoomed dm objects — dplyr_join","text":"Use methods without '.dm_zoomed' suffix (see examples).","code":""},{"path":"https://dm.cynkra.com/reference/dplyr_join.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"dplyr join methods for zoomed dm objects — dplyr_join","text":"","code":"# S3 method for dm_zoomed left_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...) # S3 method for dm_keyed_tbl left_join(x, y, by = NULL, copy = NULL, suffix = NULL, ..., keep = FALSE) # S3 method for dm_zoomed inner_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...) # S3 method for dm_keyed_tbl inner_join(x, y, by = NULL, copy = NULL, suffix = NULL, ..., keep = FALSE) # S3 method for dm_zoomed full_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...) # S3 method for dm_keyed_tbl full_join(x, y, by = NULL, copy = NULL, suffix = NULL, ..., keep = FALSE) # S3 method for dm_zoomed right_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...) # S3 method for dm_keyed_tbl right_join(x, y, by = NULL, copy = NULL, suffix = NULL, ..., keep = FALSE) # S3 method for dm_zoomed semi_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...) # S3 method for dm_keyed_tbl semi_join(x, y, by = NULL, copy = NULL, ...) # S3 method for dm_zoomed anti_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...) # S3 method for dm_keyed_tbl anti_join(x, y, by = NULL, copy = NULL, ...) # S3 method for dm_zoomed nest_join(x, y, by = NULL, copy = FALSE, keep = FALSE, name = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/dplyr_join.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"dplyr join methods for zoomed dm objects — dplyr_join","text":"x, y tbls join. x dm_zoomed y another table dm. left NULL (default), join performed via foreign key relation exists originally zoomed table (now x) table (y). provide value (syntax see dplyr::join), can also join tables connected dm. copy Disabled, since tables dm definition src. suffix Disabled, since columns disambiguated automatically necessary, changing column names table_name.column_name. select Select subset RHS-table's columns, syntax select = c(col_1, col_2, col_3) (unquoted quoted). argument specific join-methods dm_zoomed. table's column(s) automatically added missing selection. ... see dplyr::join keep new list-column contain join keys? default preserve join keys inequality joins. name name list-column created join. NULL, default, name y used.","code":""},{"path":"https://dm.cynkra.com/reference/dplyr_join.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"dplyr join methods for zoomed dm objects — dplyr_join","text":"","code":"flights_dm <- dm_nycflights13() dm_zoom_to(flights_dm, flights) %>% left_join(airports, select = c(faa, name)) #> # Zoomed table: flights #> # A tibble: 1,761 × 20 #> year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time #> #> 1 2013 1 10 3 2359 4 426 437 #> 2 2013 1 10 16 2359 17 447 444 #> 3 2013 1 10 450 500 -10 634 648 #> 4 2013 1 10 520 525 -5 813 820 #> 5 2013 1 10 530 530 0 824 829 #> 6 2013 1 10 531 540 -9 832 850 #> 7 2013 1 10 535 540 -5 1015 1017 #> 8 2013 1 10 546 600 -14 645 709 #> 9 2013 1 10 549 600 -11 652 724 #> 10 2013 1 10 550 600 -10 649 703 #> # ℹ 1,751 more rows #> # ℹ 12 more variables: arr_delay , carrier , flight , #> # tailnum , origin , dest , air_time , distance , #> # hour , minute , time_hour , name # this should illustrate that tables don't necessarily need to be connected dm_zoom_to(flights_dm, airports) %>% semi_join(airlines, by = \"name\") #> # Zoomed table: airports #> # A tibble: 0 × 8 #> # ℹ 8 variables: faa , name , lat , lon , alt , #> # tz , dst , tzone "},{"path":"https://dm.cynkra.com/reference/dplyr_src.html","id":null,"dir":"Reference","previous_headings":"","what":"dm as data source — dplyr_src","title":"dm as data source — dplyr_src","text":"methods deprecated limited use, notion \"source\" seems getting phased dplyr. Use ways access tables dm.","code":""},{"path":"https://dm.cynkra.com/reference/dplyr_src.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"dm as data source — dplyr_src","text":"","code":"dm_get_src(x) # S3 method for dm tbl(src, from, ...) # S3 method for dm src_tbls(x, ...) # S3 method for dm copy_to( dest, df, name = deparse(substitute(df)), overwrite = FALSE, temporary = TRUE, repair = \"unique\", quiet = FALSE, ... )"},{"path":"https://dm.cynkra.com/reference/dplyr_src.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"dm as data source — dplyr_src","text":"src dm object. length one character variable containing name requested table ... See original function documentation dest copy_to.dm(): dm object table copied. df copy_to.dm(): table (can different src) name copy_to.dm(): See dplyr::copy_to() overwrite copy_to.dm(): See dplyr::copy_to(); TRUE leads error temporary copy_to.dm(): dm DB, copied version df written temporarily DB. connection reset longer available. repair, quiet Name repair options; cf. vctrs::vec_as_names()","code":""},{"path":"https://dm.cynkra.com/reference/dplyr_src.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"dm as data source — dplyr_src","text":"Use dm_get_con() instead dm_get_src() get DBI connetion dm object Use [[ instead tbl() access individual tables dm object. Get names dm_get_tables() instead calling dm_get_src() list table names dm object. Use copy_to() table dm() instead copy_to() dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dplyr_table_manipulation.html","id":null,"dir":"Reference","previous_headings":"","what":"dplyr table manipulation methods for zoomed dm objects — dplyr_table_manipulation","title":"dplyr table manipulation methods for zoomed dm objects — dplyr_table_manipulation","text":"Use methods without '.dm_zoomed' suffix (see examples).","code":""},{"path":"https://dm.cynkra.com/reference/dplyr_table_manipulation.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"dplyr table manipulation methods for zoomed dm objects — dplyr_table_manipulation","text":"","code":"# S3 method for dm_zoomed filter(.data, ...) # S3 method for dm_zoomed mutate(.data, ...) # S3 method for dm_zoomed transmute(.data, ...) # S3 method for dm_zoomed select(.data, ...) # S3 method for dm_zoomed relocate(.data, ..., .before = NULL, .after = NULL) # S3 method for dm_zoomed rename(.data, ...) # S3 method for dm_zoomed distinct(.data, ..., .keep_all = FALSE) # S3 method for dm_zoomed arrange(.data, ...) # S3 method for dm_zoomed slice(.data, ..., .keep_pk = NULL) # S3 method for dm_zoomed group_by(.data, ...) # S3 method for dm_keyed_tbl group_by(.data, ...) # S3 method for dm_zoomed ungroup(x, ...) # S3 method for dm_zoomed summarise(.data, ...) # S3 method for dm_keyed_tbl summarise(.data, ...) # S3 method for dm_zoomed count( x, ..., wt = NULL, sort = FALSE, name = NULL, .drop = group_by_drop_default(x) ) # S3 method for dm_zoomed tally(x, ...) # S3 method for dm_zoomed pull(.data, var = -1, ...) # S3 method for dm_zoomed compute(x, ...)"},{"path":"https://dm.cynkra.com/reference/dplyr_table_manipulation.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"dplyr table manipulation methods for zoomed dm objects — dplyr_table_manipulation","text":".data object class dm_zoomed ... see corresponding function package dplyr tidyr ., . Destination columns selected .... Supplying neither move columns left-hand side; specifying error. .keep_all distinct.dm_zoomed(): see dplyr::distinct() .keep_pk slice.dm_zoomed: Logical, TRUE, primary key retained transformation. FALSE, dropped. default, value NULL, causes function issue message case primary key available zoomed table. argument specific slice.dm_zoomed() method. x ungroup.dm_zoomed: object class dm_zoomed wt Frequency weights. Can NULL variable: NULL (default), counts number rows group. variable, computes sum(wt) group. sort TRUE, show largest groups top. name name new column output. omitted, default n. already column called n, use nn. column called n nn, 'll use nnn, , adding ns gets new name. .drop Handling factor levels appear data, passed group_by(). count(): FALSE include counts empty groups (.e. levels factors exist data). add_count(): deprecated since actually affect output. var variable specified : literal variable name positive integer, giving position counting left negative integer, giving position counting right. default returns last column (assumption column created recently). argument taken expression supports quasiquotation (can unquote column names column locations).","code":""},{"path":"https://dm.cynkra.com/reference/dplyr_table_manipulation.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"dplyr table manipulation methods for zoomed dm objects — dplyr_table_manipulation","text":"","code":"zoomed <- dm_nycflights13() %>% dm_zoom_to(flights) %>% group_by(month) %>% arrange(desc(day)) %>% summarize(avg_air_time = mean(air_time, na.rm = TRUE)) zoomed #> # Zoomed table: flights #> # A tibble: 2 × 2 #> month avg_air_time #> #> 1 1 147. #> 2 2 149. dm_insert_zoomed(zoomed, new_tbl_name = \"avg_air_time_per_month\") #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather`, `avg_air_time_per_month` #> Columns: 55 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/examine_cardinality.html","id":null,"dir":"Reference","previous_headings":"","what":"Check table relations — examine_cardinality","title":"Check table relations — examine_cardinality","text":"check_cardinality_...() functions test following conditions: rows x unique? rows y subset rows x? relation x y meet cardinality requirements? One row x must correspond requested number rows y, e.g. _0_1 means must zero one rows y row x. examine_cardinality() also checks first two points subsequently determines type cardinality. convenience, x_select y_select arguments allow restricting check set key columns without affecting return value.","code":""},{"path":"https://dm.cynkra.com/reference/examine_cardinality.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check table relations — examine_cardinality","text":"","code":"check_cardinality_0_n( x, y, ..., x_select = NULL, y_select = NULL, by_position = NULL ) check_cardinality_1_n( x, y, ..., x_select = NULL, y_select = NULL, by_position = NULL ) check_cardinality_1_1( x, y, ..., x_select = NULL, y_select = NULL, by_position = NULL ) check_cardinality_0_1( x, y, ..., x_select = NULL, y_select = NULL, by_position = NULL ) examine_cardinality( x, y, ..., x_select = NULL, y_select = NULL, by_position = NULL )"},{"path":"https://dm.cynkra.com/reference/examine_cardinality.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check table relations — examine_cardinality","text":"x Parent table, data frame lazy table. y Child table, data frame lazy table. ... dots future extensions must empty. x_select, y_select Key columns restrict check, processed dplyr::select(). by_position Set TRUE ignore column names match position instead. default means matching name, use x_select /y_select align names.","code":""},{"path":"https://dm.cynkra.com/reference/examine_cardinality.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check table relations — examine_cardinality","text":"check_cardinality_...() return x, invisibly, check passed, support pipes. Otherwise error thrown reason explained. examine_cardinality() returns character variable specifying type relationship two columns.","code":""},{"path":"https://dm.cynkra.com/reference/examine_cardinality.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Check table relations — examine_cardinality","text":"cardinality functions accept parent child table (x y). rows x must unique, rows y must subset rows x. x_select y_select arguments allow restricting check set key columns without affecting return value. given, arguments must refer number key columns. cardinality specifications \"0_n\", \"1_n\", \"0_1\", \"1_1\" refer expected relation child table parent table. \"0\", \"1\" \"n\" refer occurrences value combinations y correspond combination columns parent table. \"n\" means \"one\" context, upper limit. \"0_n\": restrictions, row x least 0 n corresponding occurrences y. \"1_n\": row x least 1 n corresponding occurrences y. means \"surjective\" mapping child table parent table, .e. parent table row exists least child table. \"0_1\": row x least 0 1 corresponding occurrence y. means \"injective\" mapping child table parent table, .e. combination values parent table columns addressed multiple times. parent table rows referred . \"1_1\": row x occurs exactly y. means \"bijective\" (\"injective\" \"surjective\") mapping child table parent table, .e. sets rows identical. Finally, examine_cardinality() tests returns nature relationship (injective, surjective, bijective, none ) two given sets columns. either x unique rows y missing x, requirements cardinality test fulfilled. error thrown, result contain information prerequisite violated.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/examine_cardinality.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check table relations — examine_cardinality","text":"","code":"d1 <- tibble::tibble(a = 1:5) d2 <- tibble::tibble(a = c(1:4, 4L)) d3 <- tibble::tibble(c = c(1:5, 5L), d = 0) # This does not pass, `a` is not unique key of d2: try(check_cardinality_0_n(d2, d1)) #> Error in abort_not_unique_key(x_label, orig_names) : #> (`a`) not a unique key of `d2`. # Columns are matched by name by default: try(check_cardinality_0_n(d1, d3)) #> Error in check_card_api_impl({ : #> `by_position = FALSE` or `by_position = NULL` require column names in `x` to match those in `y`. # This passes, multiple values in d3$c are allowed: check_cardinality_0_n(d1, d2) # This does not pass, injectivity is violated: try(check_cardinality_1_1(d1, d3, y_select = c(a = c))) #> Error in abort_not_bijective(y_label, colnames(y)) : #> 1..1 cardinality (bijectivity) is not given: Column (`a`) in table `d3` contains duplicate values. try(check_cardinality_0_1(d1, d3, x_select = c(c = a))) #> Error in abort_not_injective(y_label, colnames(y)) : #> 0..1 cardinality (injectivity from child table to parent table) is not given: Column (`c`) in table `d3` contains duplicate values. # What kind of cardinality is it? examine_cardinality(d1, d3, x_select = c(c = a)) #> [1] \"surjective mapping (child: 1 to n -> parent: 1)\" examine_cardinality(d1, d2) #> [1] \"generic mapping (child: 0 to n -> parent: 1)\""},{"path":"https://dm.cynkra.com/reference/glimpse.dm.html","id":null,"dir":"Reference","previous_headings":"","what":"Get a glimpse of your dm object — glimpse.dm","title":"Get a glimpse of your dm object — glimpse.dm","text":"glimpse() provides overview (dimensions, column data types, primary keys, etc.) tables included dm object. additionally print details outgoing foreign keys child table. glimpse() provided pillar package, re-exported dm. See pillar::glimpse() details.","code":""},{"path":"https://dm.cynkra.com/reference/glimpse.dm.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get a glimpse of your dm object — glimpse.dm","text":"","code":"# S3 method for dm glimpse(x, width = NULL, ...) # S3 method for dm_zoomed glimpse(x, width = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/glimpse.dm.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get a glimpse of your dm object — glimpse.dm","text":"x dm object. width Controls maximum number columns line used printing. NULL, getOption(\"width\") consulted. ... Passed pillar::glimpse().","code":""},{"path":"https://dm.cynkra.com/reference/glimpse.dm.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get a glimpse of your dm object — glimpse.dm","text":"","code":"dm_nycflights13() %>% glimpse() #> dm of 5 tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> #> ──────────────────────────────────────────────────────────────────────────────── #> #> Table: `airlines` #> Primary key: `carrier` #> #> Rows: 15 #> Columns: 2 #> $ carrier \"9E\", \"AA\", \"AS\", \"B6\", \"DL\", \"EV\", \"F9\", \"FL\", \"HA\", \"MQ\", \"U… #> $ name \"Endeavor Air Inc.\", \"American Airlines Inc.\", \"Alaska Airline… #> #> ──────────────────────────────────────────────────────────────────────────────── #> #> Table: `airports` #> Primary key: `faa` #> #> Rows: 86 #> Columns: 8 #> $ faa \"ALB\", \"ATL\", \"AUS\", \"BDL\", \"BHM\", \"BNA\", \"BOS\", \"BTV\", \"BUF\", \"… #> $ name \"Albany Intl\", \"Hartsfield Jackson Atlanta Intl\", \"Austin Bergst… #> $ lat 42.74827, 33.63672, 30.19453, 41.93889, 33.56294, 36.12447, 42.3… #> $ lon -73.80169, -84.42807, -97.66989, -72.68322, -86.75355, -86.67819… #> $ alt 285, 1026, 542, 173, 644, 599, 19, 335, 724, 778, 146, 236, 1228… #> $ tz -5, -5, -6, -5, -6, -6, -5, -5, -5, -8, -5, -5, -5, -5, -5, -5, … #> $ dst \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\",… #> $ tzone \"America/New_York\", \"America/New_York\", \"America/Chicago\", \"Amer… #> #> ──────────────────────────────────────────────────────────────────────────────── #> #> Table: `flights` #> 4 outgoing foreign key(s): #> `carrier` -> `airlines$carrier` no_action #> `origin` -> `airports$faa` no_action #> `tailnum` -> `planes$tailnum` no_action #> (`origin`, `time_hour`) -> (`weather$origin`, `weather$time_hour`) no_action #> #> Rows: 1,761 #> Columns: 19 #> $ year 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2… #> $ month 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1… #> $ day 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,… #> $ dep_time 3, 16, 450, 520, 530, 531, 535, 546, 549, 550, 553, 553… #> $ sched_dep_time 2359, 2359, 500, 525, 530, 540, 540, 600, 600, 600, 600… #> $ dep_delay 4, 17, -10, -5, 0, -9, -5, -14, -11, -10, -7, -7, -7, -… #> $ arr_time 426, 447, 634, 813, 824, 832, 1015, 645, 652, 649, 711,… #> $ sched_arr_time 437, 444, 648, 820, 829, 850, 1017, 709, 724, 703, 715,… #> $ arr_delay -11, 3, -14, -7, -5, -18, -2, -24, -32, -14, -4, -33, -… #> $ carrier \"B6\", \"B6\", \"US\", \"UA\", \"UA\", \"AA\", \"B6\", \"B6\", \"EV\", \"… #> $ flight 727, 739, 1117, 1018, 404, 1141, 725, 380, 6055, 2114, … #> $ tailnum \"N571JB\", \"N564JB\", \"N171US\", \"N35204\", \"N815UA\", \"N5EA… #> $ origin \"JFK\", \"JFK\", \"EWR\", \"EWR\", \"LGA\", \"JFK\", \"JFK\", \"EWR\",… #> $ dest \"BQN\", \"PSE\", \"CLT\", \"IAH\", \"IAH\", \"MIA\", \"BQN\", \"BOS\",… #> $ air_time 183, 191, 78, 215, 210, 149, 191, 39, 48, 36, 51, 201, … #> $ distance 1576, 1617, 529, 1400, 1416, 1089, 1576, 200, 229, 184,… #> $ hour 23, 23, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,… #> $ minute 59, 59, 0, 25, 30, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0… #> $ time_hour 2013-01-10 23:00:00, 2013-01-10 23:00:00, 2013-01-10 0… #> #> ──────────────────────────────────────────────────────────────────────────────── #> #> Table: `planes` #> Primary key: `tailnum` #> #> Rows: 945 #> Columns: 9 #> $ tailnum \"N10156\", \"N104UW\", \"N10575\", \"N105UW\", \"N110UW\", \"N11106… #> $ year 2004, 1999, 2002, 1999, 1999, 2002, 2002, 2002, 2003, 200… #> $ type \"Fixed wing multi engine\", \"Fixed wing multi engine\", \"Fi… #> $ manufacturer \"EMBRAER\", \"AIRBUS INDUSTRIE\", \"EMBRAER\", \"AIRBUS INDUSTR… #> $ model \"EMB-145XR\", \"A320-214\", \"EMB-145LR\", \"A320-214\", \"A320-2… #> $ engines 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, … #> $ seats 55, 182, 55, 182, 182, 55, 55, 55, 55, 55, 55, 55, 55, 55… #> $ speed NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ engine \"Turbo-fan\", \"Turbo-fan\", \"Turbo-fan\", \"Turbo-fan\", \"Turb… #> #> ──────────────────────────────────────────────────────────────────────────────── #> #> Table: `weather` #> Primary key: (`origin`, `time_hour`) #> #> Rows: 144 #> Columns: 15 #> $ origin \"EWR\", \"EWR\", \"EWR\", \"EWR\", \"EWR\", \"EWR\", \"EWR\", \"EWR\", \"EW… #> $ year 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013,… #> $ month 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,… #> $ day 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,… #> $ hour 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1… #> $ temp 41.00, 39.02, 39.02, 39.92, 41.00, 41.00, 39.92, 41.00, 42.… #> $ dewp 32.00, 30.02, 28.94, 26.96, 26.06, 26.06, 24.98, 24.98, 24.… #> $ humid 70.08, 69.86, 66.85, 59.50, 54.97, 54.97, 54.81, 52.56, 48.… #> $ wind_dir 230, 210, 230, 270, 320, 300, 280, 330, 330, 320, 320, 330,… #> $ wind_speed 8.05546, 9.20624, 6.90468, 5.75390, 6.90468, 12.65858, 6.90… #> $ wind_gust NA, NA, NA, NA, NA, 20.71404, 17.26170, NA, NA, 26.46794, N… #> $ precip 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,… #> $ pressure 1024.6, 1025.9, 1026.9, 1027.5, 1028.2, 1029.0, 1030.0, 103… #> $ visib 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,… #> $ time_hour 2013-01-10 00:00:00, 2013-01-10 01:00:00, 2013-01-10 02:00… #> #> ──────────────────────────────────────────────────────────────────────────────── dm_nycflights13() %>% dm_zoom_to(flights) %>% glimpse() #> dm of 5 tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> #> Zoomed table: `flights` #> 4 outgoing foreign key(s): #> `carrier` -> `airlines$carrier` no_action #> `origin` -> `airports$faa` no_action #> `tailnum` -> `planes$tailnum` no_action #> (`origin`, `time_hour`) -> (`weather$origin`, `weather$time_hour`) no_action #> #> Rows: 1,761 #> Columns: 19 #> $ year 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2… #> $ month 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1… #> $ day 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,… #> $ dep_time 3, 16, 450, 520, 530, 531, 535, 546, 549, 550, 553, 553… #> $ sched_dep_time 2359, 2359, 500, 525, 530, 540, 540, 600, 600, 600, 600… #> $ dep_delay 4, 17, -10, -5, 0, -9, -5, -14, -11, -10, -7, -7, -7, -… #> $ arr_time 426, 447, 634, 813, 824, 832, 1015, 645, 652, 649, 711,… #> $ sched_arr_time 437, 444, 648, 820, 829, 850, 1017, 709, 724, 703, 715,… #> $ arr_delay -11, 3, -14, -7, -5, -18, -2, -24, -32, -14, -4, -33, -… #> $ carrier \"B6\", \"B6\", \"US\", \"UA\", \"UA\", \"AA\", \"B6\", \"B6\", \"EV\", \"… #> $ flight 727, 739, 1117, 1018, 404, 1141, 725, 380, 6055, 2114, … #> $ tailnum \"N571JB\", \"N564JB\", \"N171US\", \"N35204\", \"N815UA\", \"N5EA… #> $ origin \"JFK\", \"JFK\", \"EWR\", \"EWR\", \"LGA\", \"JFK\", \"JFK\", \"EWR\",… #> $ dest \"BQN\", \"PSE\", \"CLT\", \"IAH\", \"IAH\", \"MIA\", \"BQN\", \"BOS\",… #> $ air_time 183, 191, 78, 215, 210, 149, 191, 39, 48, 36, 51, 201, … #> $ distance 1576, 1617, 529, 1400, 1416, 1089, 1576, 200, 229, 184,… #> $ hour 23, 23, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,… #> $ minute 59, 59, 0, 25, 30, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0… #> $ time_hour 2013-01-10 23:00:00, 2013-01-10 23:00:00, 2013-01-10 0…"},{"path":"https://dm.cynkra.com/reference/json_nest.html","id":null,"dir":"Reference","previous_headings":"","what":"JSON nest — json_nest","title":"JSON nest — json_nest","text":"wrapper around tidyr::nest() stores nested data JSON columns.","code":""},{"path":"https://dm.cynkra.com/reference/json_nest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"JSON nest — json_nest","text":"","code":"json_nest(.data, ..., .names_sep = NULL)"},{"path":"https://dm.cynkra.com/reference/json_nest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"JSON nest — json_nest","text":".data data frame, data frame extension (e.g. tibble), lazy data frame (e.g. dbplyr dtplyr). ... Columns pack, specified using name-variable pairs form new_col = c(col1, col2, col3). right hand side can valid tidy select expression. .names_sep NULL, default, names left .","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/json_nest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"JSON nest — json_nest","text":"","code":"df <- tibble::tibble(x = c(1, 1, 1, 2, 2, 3), y = 1:6, z = 6:1) nested <- json_nest(df, data = c(y, z)) nested #> # A tibble: 3 × 2 #> x data #> #> 1 1 \"[{\\\"y\\\":1,\\\"z\\\":6},{\\\"y\\\":2,\\\"z\\\":5},{\\\"y\\\":3,\\\"z\\\":4}]\" #> 2 2 \"[{\\\"y\\\":4,\\\"z\\\":3},{\\\"y\\\":5,\\\"z\\\":2}]\" #> 3 3 \"[{\\\"y\\\":6,\\\"z\\\":1}]\""},{"path":"https://dm.cynkra.com/reference/json_nest_join.html","id":null,"dir":"Reference","previous_headings":"","what":"JSON nest join — json_nest_join","title":"JSON nest join — json_nest_join","text":"wrapper around dplyr::nest_join() stores joined data JSON column. json_nest_join() returns rows columns x new JSON columns contains nested matches y.","code":""},{"path":"https://dm.cynkra.com/reference/json_nest_join.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"JSON nest join — json_nest_join","text":"","code":"json_nest_join(x, y, by = NULL, ..., copy = FALSE, keep = FALSE, name = NULL)"},{"path":"https://dm.cynkra.com/reference/json_nest_join.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"JSON nest join — json_nest_join","text":"x, y pair data frames data frame extensions (e.g. tibble). join specification created join_by(), character vector variables join . NULL, default, *_join() perform natural join, using variables common across x y. message lists variables can check correct; suppress message supplying explicitly. join different variables x y, use join_by() specification. example, join_by(== b) match x$y$b. join multiple variables, use join_by() specification multiple expressions. example, join_by(== b, c == d) match x$y$b x$c y$d. column names x y, can shorten listing variable names, like join_by(, c). join_by() can also used perform inequality, rolling, overlap joins. See documentation ?join_by details types joins. simple equality joins, can alternatively specify character vector variable names join . example, = c(\"\", \"b\") joins x$y$x$b y$b. variable names differ x y, use named character vector like = c(\"x_a\" = \"y_a\", \"x_b\" = \"y_b\"). perform cross-join, generating combinations x y, see cross_join(). ... parameters passed onto methods. copy x y data source, copy TRUE, y copied src x. allows join tables across srcs, potentially expensive operation must opt . keep new list-column contain join keys? default preserve join keys inequality joins. name name list-column created join. NULL, default, name y used.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/json_nest_join.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"JSON nest join — json_nest_join","text":"","code":"df1 <- tibble::tibble(x = 1:3) df2 <- tibble::tibble(x = c(1, 1, 2), y = c(\"first\", \"second\", \"third\")) df3 <- json_nest_join(df1, df2) #> Joining with `by = join_by(x)` df3 #> # A tibble: 3 × 2 #> x df2 #> #> 1 1 #> 2 2 #> 3 3 df3$df2 #> [[1]] #> [{\"y\":\"first\"},{\"y\":\"second\"}] #> #> [[2]] #> [{\"y\":\"third\"}] #> #> [[3]] #> [] #>"},{"path":"https://dm.cynkra.com/reference/json_pack.html","id":null,"dir":"Reference","previous_headings":"","what":"JSON pack — json_pack","title":"JSON pack — json_pack","text":"wrapper around tidyr::pack() stores packed data JSON columns.","code":""},{"path":"https://dm.cynkra.com/reference/json_pack.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"JSON pack — json_pack","text":"","code":"json_pack(.data, ..., .names_sep = NULL)"},{"path":"https://dm.cynkra.com/reference/json_pack.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"JSON pack — json_pack","text":".data data frame, data frame extension (e.g. tibble), lazy data frame (e.g. dbplyr dtplyr). ... Columns pack, specified using name-variable pairs form new_col = c(col1, col2, col3). right hand side can valid tidy select expression. .names_sep NULL, default, names left .","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/json_pack.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"JSON pack — json_pack","text":"","code":"df <- tibble::tibble(x1 = 1:3, x2 = 4:6, x3 = 7:9, y = 1:3) packed <- json_pack(df, x = c(x1, x2, x3), y = y) packed #> # A tibble: 3 × 2 #> x y #> #> 1 \"{\\\"x1\\\":1,\\\"x2\\\":4,\\\"x3\\\":7}\" \"{\\\"y\\\":1}\" #> 2 \"{\\\"x1\\\":2,\\\"x2\\\":5,\\\"x3\\\":8}\" \"{\\\"y\\\":2}\" #> 3 \"{\\\"x1\\\":3,\\\"x2\\\":6,\\\"x3\\\":9}\" \"{\\\"y\\\":3}\""},{"path":"https://dm.cynkra.com/reference/json_pack_join.html","id":null,"dir":"Reference","previous_headings":"","what":"JSON pack join — json_pack_join","title":"JSON pack join — json_pack_join","text":"wrapper around pack_join() stores joined data JSON column. json_pack_join() returns rows columns x new JSON columns contains packed matches y.","code":""},{"path":"https://dm.cynkra.com/reference/json_pack_join.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"JSON pack join — json_pack_join","text":"","code":"json_pack_join(x, y, by = NULL, ..., copy = FALSE, keep = FALSE, name = NULL)"},{"path":"https://dm.cynkra.com/reference/json_pack_join.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"JSON pack join — json_pack_join","text":"x, y pair data frames data frame extensions (e.g. tibble). join specification created join_by(), character vector variables join . NULL, default, *_join() perform natural join, using variables common across x y. message lists variables can check correct; suppress message supplying explicitly. join different variables x y, use join_by() specification. example, join_by(== b) match x$y$b. join multiple variables, use join_by() specification multiple expressions. example, join_by(== b, c == d) match x$y$b x$c y$d. column names x y, can shorten listing variable names, like join_by(, c). join_by() can also used perform inequality, rolling, overlap joins. See documentation ?join_by details types joins. simple equality joins, can alternatively specify character vector variable names join . example, = c(\"\", \"b\") joins x$y$x$b y$b. variable names differ x y, use named character vector like = c(\"x_a\" = \"y_a\", \"x_b\" = \"y_b\"). perform cross-join, generating combinations x y, see cross_join(). ... parameters passed onto methods. copy x y data source, copy TRUE, y copied src x. allows join tables across srcs, potentially expensive operation must opt . keep new list-column contain join keys? default preserve join keys inequality joins. name name list-column created join. NULL, default, name y used.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/json_pack_join.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"JSON pack join — json_pack_join","text":"","code":"df1 <- tibble::tibble(x = 1:3) df2 <- tibble::tibble(x = c(1, 1, 2), y = c(\"first\", \"second\", \"third\")) df3 <- json_pack_join(df1, df2) #> Joining with `by = join_by(x)` df3 #> # A tibble: 4 × 2 #> x df2 #> #> 1 1 #> 2 1 #> 3 2 #> 4 3 df3$df2 #> [[1]] #> [{\"y\":\"first\"}] #> #> [[2]] #> [{\"y\":\"second\"}] #> #> [[3]] #> [{\"y\":\"third\"}] #> #> [[4]] #> [{}] #>"},{"path":"https://dm.cynkra.com/reference/json_unnest.html","id":null,"dir":"Reference","previous_headings":"","what":"Unnest a JSON column — json_unnest","title":"Unnest a JSON column — json_unnest","text":"wrapper around tidyr::unnest() extracts data JSON column. inverse json_nest().","code":""},{"path":"https://dm.cynkra.com/reference/json_unnest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Unnest a JSON column — json_unnest","text":"","code":"json_unnest(data, cols, ..., names_sep = NULL, names_repair = \"check_unique\")"},{"path":"https://dm.cynkra.com/reference/json_unnest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Unnest a JSON column — json_unnest","text":"data data frame, data frame extension (e.g. tibble), lazy data frame (e.g. dbplyr dtplyr). cols List-columns unnest. selecting multiple columns, values row recycled common size. ... Arguments passed methods. names_sep NULL, default, outer names come inner names. string, outer names formed pasting together outer inner column names, separated names_sep. names_repair Used check output data frame valid names. Must one following options: \"minimal\": name repair checks, beyond basic existence, \"unique\": make sure names unique empty, \"check_unique\": (default), name repair, check unique, \"universal\": make names unique syntactic function: apply custom name repair. tidyr_legacy: use name repair tidyr 0.8. formula: purrr-style anonymous function (see rlang::as_function()) See vctrs::vec_as_names() details terms strategies used enforce .","code":""},{"path":"https://dm.cynkra.com/reference/json_unnest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Unnest a JSON column — json_unnest","text":"object type data","code":""},{"path":"https://dm.cynkra.com/reference/json_unnest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Unnest a JSON column — json_unnest","text":"","code":"tibble(a = 1, b = '[{ \"c\": 2 }, { \"c\": 3 }]') %>% json_unnest(b) #> # A tibble: 2 × 2 #> a c #> #> 1 1 2 #> 2 1 3"},{"path":"https://dm.cynkra.com/reference/json_unpack.html","id":null,"dir":"Reference","previous_headings":"","what":"Unpack a JSON column — json_unpack","title":"Unpack a JSON column — json_unpack","text":"wrapper around tidyr::unpack() extracts data JSON column. inverse json_pack().","code":""},{"path":"https://dm.cynkra.com/reference/json_unpack.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Unpack a JSON column — json_unpack","text":"","code":"json_unpack(data, cols, ..., names_sep = NULL, names_repair = \"check_unique\")"},{"path":"https://dm.cynkra.com/reference/json_unpack.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Unpack a JSON column — json_unpack","text":"data data frame, data frame extension (e.g. tibble), lazy data frame (e.g. dbplyr dtplyr). cols Columns unpack. ... Arguments passed methods. names_sep NULL, default, names left . pack(), inner names come former outer names; unpack(), new outer names come inner names. string, inner outer names used together. unpack(), names new outer columns formed pasting together outer inner column names, separated names_sep. pack(), new inner names outer names + names_sep automatically stripped. makes names_sep roughly symmetric packing unpacking. names_repair Used check output data frame valid names. Must one following options: \"minimal\": name repair checks, beyond basic existence, \"unique\": make sure names unique empty, \"check_unique\": (default), name repair, check unique, \"universal\": make names unique syntactic function: apply custom name repair. tidyr_legacy: use name repair tidyr 0.8. formula: purrr-style anonymous function (see rlang::as_function()) See vctrs::vec_as_names() details terms strategies used enforce .","code":""},{"path":"https://dm.cynkra.com/reference/json_unpack.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Unpack a JSON column — json_unpack","text":"object type data","code":""},{"path":"https://dm.cynkra.com/reference/json_unpack.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Unpack a JSON column — json_unpack","text":"","code":"tibble(a = 1, b = '{ \"c\": 2, \"d\": 3 }') %>% json_unpack(b) #> # A tibble: 1 × 3 #> a c d #> #> 1 1 2 3"},{"path":"https://dm.cynkra.com/reference/materialize.html","id":null,"dir":"Reference","previous_headings":"","what":"Materialize — materialize","title":"Materialize — materialize","text":"compute() materializes tables dm new temporary tables database. collect() downloads tables dm object local tibbles.","code":""},{"path":"https://dm.cynkra.com/reference/materialize.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Materialize — materialize","text":"","code":"# S3 method for dm compute(x, ..., temporary = TRUE) # S3 method for dm collect(x, ..., progress = NA)"},{"path":"https://dm.cynkra.com/reference/materialize.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Materialize — materialize","text":"x dm object. ... Passed compute(). temporary Must remain TRUE. progress Whether display progress bar, NA (default) hide non-interactive mode, show interactive mode. Requires 'progress' package.","code":""},{"path":"https://dm.cynkra.com/reference/materialize.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Materialize — materialize","text":"dm object structure input.","code":""},{"path":"https://dm.cynkra.com/reference/materialize.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Materialize — materialize","text":"Called dm object, methods create copy tables dm. Depending size data may take long time. create permament tables, first create database schema using copy_dm_to() dm_sql(), use dm_rows_append().","code":""},{"path":"https://dm.cynkra.com/reference/materialize.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Materialize — materialize","text":"","code":"if (FALSE) { # dm:::dm_has_financial() && rlang::is_installed(\"RSQLite\") financial <- dm_financial_sqlite() financial %>% pull_tbl(districts) %>% dbplyr::remote_name() # compute() copies the data to new tables: financial %>% compute() %>% pull_tbl(districts) %>% dbplyr::remote_name() # collect() returns a local dm: financial %>% collect() %>% pull_tbl(districts) %>% class() }"},{"path":"https://dm.cynkra.com/reference/pack_join.html","id":null,"dir":"Reference","previous_headings":"","what":"Pack Join — pack_join","title":"Pack Join — pack_join","text":"pack_join() returns rows columns x new packed column contains matches y.","code":""},{"path":"https://dm.cynkra.com/reference/pack_join.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pack Join — pack_join","text":"","code":"pack_join(x, y, by = NULL, ..., copy = FALSE, keep = FALSE, name = NULL) # S3 method for dm_zoomed pack_join(x, y, by = NULL, ..., copy = FALSE, keep = FALSE, name = NULL)"},{"path":"https://dm.cynkra.com/reference/pack_join.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pack Join — pack_join","text":"x, y pair data frames data frame extensions (e.g. tibble). join specification created join_by(), character vector variables join . NULL, default, *_join() perform natural join, using variables common across x y. message lists variables can check correct; suppress message supplying explicitly. join different variables x y, use join_by() specification. example, join_by(== b) match x$y$b. join multiple variables, use join_by() specification multiple expressions. example, join_by(== b, c == d) match x$y$b x$c y$d. column names x y, can shorten listing variable names, like join_by(, c). join_by() can also used perform inequality, rolling, overlap joins. See documentation ?join_by details types joins. simple equality joins, can alternatively specify character vector variable names join . example, = c(\"\", \"b\") joins x$y$x$b y$b. variable names differ x y, use named character vector like = c(\"x_a\" = \"y_a\", \"x_b\" = \"y_b\"). perform cross-join, generating combinations x y, see cross_join(). ... parameters passed onto methods. copy x y data source, copy TRUE, y copied src x. allows join tables across srcs, potentially expensive operation must opt . keep new list-column contain join keys? default preserve join keys inequality joins. name name list-column created join. NULL, default, name y used.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/pack_join.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Pack Join — pack_join","text":"","code":"df1 <- tibble::tibble(x = 1:3) df2 <- tibble::tibble(x = c(1, 1, 2), y = c(\"first\", \"second\", \"third\")) pack_join(df1, df2) #> Joining with `by = join_by(x)` #> # A tibble: 4 × 2 #> x df2$y #> #> 1 1 first #> 2 1 second #> 3 2 third #> 4 3 NA"},{"path":"https://dm.cynkra.com/reference/pull_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Retrieve a table — pull_tbl","title":"Retrieve a table — pull_tbl","text":"generic methods dm classes: pull_tbl.dm() can chose table dm want retrieve. pull_tbl.dm_zoomed() retrieve zoomed table current state.","code":""},{"path":"https://dm.cynkra.com/reference/pull_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Retrieve a table — pull_tbl","text":"","code":"pull_tbl(dm, table, ..., keyed = FALSE)"},{"path":"https://dm.cynkra.com/reference/pull_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Retrieve a table — pull_tbl","text":"dm dm object. table One unquoted table name pull_tbl.dm(), ignored pull_tbl.dm_zoomed(). ... dots future extensions must empty. keyed Set TRUE return objects internal class \"dm_keyed_tbl\" contain information primary foreign keys individual table objects. allows using dplyr workflows tables later reconstruct dm object. See dm_deconstruct() function generates corresponding code existing dm object, vignette(\"tech-dm-keyed\") details.","code":""},{"path":"https://dm.cynkra.com/reference/pull_tbl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Retrieve a table — pull_tbl","text":"requested table.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/pull_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Retrieve a table — pull_tbl","text":"","code":"# For an unzoomed dm you need to specify the table to pull: dm_nycflights13() %>% pull_tbl(airports) #> # A tibble: 86 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta Intl 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Logan Intl 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows # If zoomed, pulling detaches the zoomed table from the dm: dm_nycflights13() %>% dm_zoom_to(airports) %>% pull_tbl() #> # A tibble: 86 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta Intl 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Logan Intl 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows"},{"path":"https://dm.cynkra.com/reference/reexports.html","id":null,"dir":"Reference","previous_headings":"","what":"Objects exported from other packages — reexports","title":"Objects exported from other packages — reexports","text":"objects imported packages. Follow links see documentation. dplyr %>%, anti_join, arrange, collect, compute, copy_to, filter, full_join, group_by, inner_join, left_join, mutate, rename, right_join, rows_append, rows_delete, rows_insert, rows_patch, rows_update, rows_upsert, select, semi_join, src_tbls, summarise, summarize, tbl, transmute, ungroup tibble glimpse, tibble tidyr separate, unite","code":""},{"path":"https://dm.cynkra.com/reference/reunite_parent_child.html","id":null,"dir":"Reference","previous_headings":"","what":"Merge two tables that are linked by a foreign key relation — reunite_parent_child","title":"Merge two tables that are linked by a foreign key relation — reunite_parent_child","text":"Perform table fusion combining two tables common (key) column, removing column. reunite_parent_child(): joining two tables column id_column, column removed. transformation roughly inverse decompose_table() . reunite_parent_child_from_list(): joining two tables column id_column, id_column removed. function almost exactly inverse decompose_table() (order columns retained, original row names lost).","code":""},{"path":"https://dm.cynkra.com/reference/reunite_parent_child.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Merge two tables that are linked by a foreign key relation — reunite_parent_child","text":"","code":"reunite_parent_child(child_table, parent_table, id_column) reunite_parent_child_from_list(list_of_parent_child_tables, id_column)"},{"path":"https://dm.cynkra.com/reference/reunite_parent_child.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Merge two tables that are linked by a foreign key relation — reunite_parent_child","text":"child_table Table (possibly created decompose_table()) references parent_table parent_table Table (possibly created decompose_table()). id_column Identical name referencing / referenced column child_table/parent_table. list_of_parent_child_tables Cf arguments child_table parent_table reunite_parent_child(), named list (created decompose_table()).","code":""},{"path":"https://dm.cynkra.com/reference/reunite_parent_child.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Merge two tables that are linked by a foreign key relation — reunite_parent_child","text":"wide table produced joining two given tables.","code":""},{"path":"https://dm.cynkra.com/reference/reunite_parent_child.html","id":"life-cycle","dir":"Reference","previous_headings":"","what":"Life cycle","title":"Merge two tables that are linked by a foreign key relation — reunite_parent_child","text":"functions marked \"experimental\" seem useful applied table dm object. Changing interface later seems harmless functions likely used interactively.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/reunite_parent_child.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Merge two tables that are linked by a foreign key relation — reunite_parent_child","text":"","code":"decomposed_table <- decompose_table(mtcars, new_id, am, gear, carb) ct <- decomposed_table$child_table pt <- decomposed_table$parent_table reunite_parent_child(ct, pt, new_id) #> mpg cyl disp hp drat wt qsec vs am gear carb #> 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 #> 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 #> 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 #> 4 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1 #> 5 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2 #> 6 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1 #> 7 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4 #> 8 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 #> 9 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 #> 10 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4 #> 11 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4 #> 12 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3 #> 13 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3 #> 14 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3 #> 15 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4 #> 16 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4 #> 17 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4 #> 18 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1 #> 19 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 #> 20 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1 #> 21 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1 #> 22 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2 #> 23 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2 #> 24 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4 #> 25 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2 #> 26 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1 #> 27 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2 #> 28 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2 #> 29 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4 #> 30 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6 #> 31 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8 #> 32 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2 reunite_parent_child_from_list(decomposed_table, new_id) #> mpg cyl disp hp drat wt qsec vs am gear carb #> 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 #> 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 #> 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 #> 4 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1 #> 5 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2 #> 6 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1 #> 7 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4 #> 8 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 #> 9 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 #> 10 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4 #> 11 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4 #> 12 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3 #> 13 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3 #> 14 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3 #> 15 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4 #> 16 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4 #> 17 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4 #> 18 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1 #> 19 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 #> 20 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1 #> 21 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1 #> 22 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2 #> 23 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2 #> 24 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4 #> 25 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2 #> 26 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1 #> 27 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2 #> 28 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2 #> 29 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4 #> 30 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6 #> 31 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8 #> 32 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2"},{"path":"https://dm.cynkra.com/reference/rows-dm.html","id":null,"dir":"Reference","previous_headings":"","what":"Modifying rows for multiple tables — rows-dm","title":"Modifying rows for multiple tables — rows-dm","text":"functions provide framework updating data existing tables. Unlike compute(), copy_to() copy_dm_to(), new tables created database. operations expect existing new data presented two compatible dm objects data source. functions make sure tables target dm processed topological order parent (dimension) tables receive insertions child (fact) tables. operations, contrast operations, may lead irreversible changes underlying database. Therefore, -place operation must requested explicitly in_place = TRUE. default, informative message given. dm_rows_insert() adds new records via rows_insert() conflict = \"ignore\". Duplicate records silently discarded. operation requires primary keys tables, use dm_rows_append() insert unconditionally. dm_rows_append() adds new records via rows_append(). primary keys must differ existing records. must ensured caller might checked underlying database. Use in_place = FALSE apply dm_examine_constraints() check beforehand. dm_rows_update() updates existing records via rows_update(). Primary keys must match records updated. dm_rows_patch() updates missing values existing records via rows_patch(). Primary keys must match records patched. dm_rows_upsert() updates existing records adds new records, based primary key, via rows_upsert(). dm_rows_delete() removes matching records via rows_delete(), based primary key. order tables processed reversed.","code":""},{"path":"https://dm.cynkra.com/reference/rows-dm.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Modifying rows for multiple tables — rows-dm","text":"","code":"dm_rows_insert(x, y, ..., in_place = NULL, progress = NA) dm_rows_append(x, y, ..., in_place = NULL, progress = NA) dm_rows_update(x, y, ..., in_place = NULL, progress = NA) dm_rows_patch(x, y, ..., in_place = NULL, progress = NA) dm_rows_upsert(x, y, ..., in_place = NULL, progress = NA) dm_rows_delete(x, y, ..., in_place = NULL, progress = NA)"},{"path":"https://dm.cynkra.com/reference/rows-dm.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Modifying rows for multiple tables — rows-dm","text":"x Target dm object. y dm object new data. ... dots future extensions must empty. in_place x modified place? argument relevant mutable backends (e.g. databases, data.tables). TRUE, modified version x returned invisibly; FALSE, new object representing resulting changes returned. progress Whether display progress bar, NA (default) hide non-interactive mode, show interactive mode. Requires 'progress' package.","code":""},{"path":"https://dm.cynkra.com/reference/rows-dm.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Modifying rows for multiple tables — rows-dm","text":"dm object dm_ptype() x. in_place = TRUE, underlying data updated side effect, x returned, invisibly.","code":""},{"path":"https://dm.cynkra.com/reference/rows-dm.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Modifying rows for multiple tables — rows-dm","text":"","code":"# Establish database connection: sqlite <- DBI::dbConnect(RSQLite::SQLite()) # Entire dataset with all dimension tables populated # with flights and weather data truncated: flights_init <- dm_nycflights13() %>% dm_zoom_to(flights) %>% filter(FALSE) %>% dm_update_zoomed() %>% dm_zoom_to(weather) %>% filter(FALSE) %>% dm_update_zoomed() # Target database: flights_sqlite <- copy_dm_to(sqlite, flights_init, temporary = FALSE) print(dm_nrow(flights_sqlite)) #> airlines airports flights planes weather #> 15 86 0 945 0 # First update: flights_jan <- dm_nycflights13() %>% dm_select_tbl(flights, weather) %>% dm_zoom_to(flights) %>% filter(month == 1) %>% dm_update_zoomed() %>% dm_zoom_to(weather) %>% filter(month == 1) %>% dm_update_zoomed() print(dm_nrow(flights_jan)) #> flights weather #> 932 72 # Copy to temporary tables on the target database: flights_jan_sqlite <- copy_dm_to(sqlite, flights_jan) # Dry run by default: dm_rows_append(flights_sqlite, flights_jan_sqlite) #> Result is returned as a dm object with lazy tables. Use `in_place = FALSE` to mute this message, or `in_place = TRUE` to write to the underlying tables. #> ── Table source ──────────────────────────────────────────────────────────────── #> src: sqlite 3.44.2 [] #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4 print(dm_nrow(flights_sqlite)) #> airlines airports flights planes weather #> 15 86 0 945 0 # Explicitly request persistence: dm_rows_append(flights_sqlite, flights_jan_sqlite, in_place = TRUE) print(dm_nrow(flights_sqlite)) #> airlines airports flights planes weather #> 15 86 932 945 72 # Second update: flights_feb <- dm_nycflights13() %>% dm_select_tbl(flights, weather) %>% dm_zoom_to(flights) %>% filter(month == 2) %>% dm_update_zoomed() %>% dm_zoom_to(weather) %>% filter(month == 2) %>% dm_update_zoomed() # Copy to temporary tables on the target database: flights_feb_sqlite <- copy_dm_to(sqlite, flights_feb) # Explicit dry run: flights_new <- dm_rows_append( flights_sqlite, flights_feb_sqlite, in_place = FALSE ) print(dm_nrow(flights_new)) #> airlines airports flights planes weather #> 15 86 1761 945 144 print(dm_nrow(flights_sqlite)) #> airlines airports flights planes weather #> 15 86 932 945 72 # Check for consistency before applying: flights_new %>% dm_examine_constraints() #> ! Unsatisfied constraints: #> • Table `flights`: foreign key `tailnum` into table `planes`: values of `flights$tailnum` not in `planes$tailnum`: N725MQ (6), N537MQ (5), N722MQ (5), N730MQ (5), N736MQ (5), … # Apply: dm_rows_append(flights_sqlite, flights_feb_sqlite, in_place = TRUE) print(dm_nrow(flights_sqlite)) #> airlines airports flights planes weather #> 15 86 1761 945 144 DBI::dbDisconnect(sqlite)"},{"path":"https://dm.cynkra.com/reference/tidyr_table_manipulation.html","id":null,"dir":"Reference","previous_headings":"","what":"tidyr table manipulation methods for zoomed dm objects — tidyr_table_manipulation","title":"tidyr table manipulation methods for zoomed dm objects — tidyr_table_manipulation","text":"Use methods without '.dm_zoomed' suffix (see examples).","code":""},{"path":"https://dm.cynkra.com/reference/tidyr_table_manipulation.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"tidyr table manipulation methods for zoomed dm objects — tidyr_table_manipulation","text":"","code":"# S3 method for dm_zoomed unite(data, col, ..., sep = \"_\", remove = TRUE, na.rm = FALSE) # S3 method for dm_keyed_tbl unite(data, ...) # S3 method for dm_zoomed separate(data, col, into, sep = \"[^[:alnum:]]+\", remove = TRUE, ...) # S3 method for dm_keyed_tbl separate(data, ...)"},{"path":"https://dm.cynkra.com/reference/tidyr_table_manipulation.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"tidyr table manipulation methods for zoomed dm objects — tidyr_table_manipulation","text":"data object class dm_zoomed col unite.dm_zoomed: see tidyr::unite() separate.dm_zoomed: see tidyr::separate() ... unite.dm_zoomed: see tidyr::unite() separate.dm_zoomed: see tidyr::separate() sep unite.dm_zoomed: see tidyr::unite() separate.dm_zoomed: see tidyr::separate() remove unite.dm_zoomed: see tidyr::unite() separate.dm_zoomed: see tidyr::separate() na.rm see tidyr::unite() see tidyr::separate()","code":""},{"path":"https://dm.cynkra.com/reference/tidyr_table_manipulation.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"tidyr table manipulation methods for zoomed dm objects — tidyr_table_manipulation","text":"","code":"zoom_united <- dm_nycflights13() %>% dm_zoom_to(flights) %>% select(year, month, day) %>% unite(\"month_day\", month, day) zoom_united #> # Zoomed table: flights #> # A tibble: 1,761 × 2 #> year month_day #> #> 1 2013 1_10 #> 2 2013 1_10 #> 3 2013 1_10 #> 4 2013 1_10 #> 5 2013 1_10 #> 6 2013 1_10 #> 7 2013 1_10 #> 8 2013 1_10 #> 9 2013 1_10 #> 10 2013 1_10 #> # ℹ 1,751 more rows zoom_united %>% separate(month_day, c(\"month\", \"day\")) #> # Zoomed table: flights #> # A tibble: 1,761 × 3 #> year month day #> #> 1 2013 1 10 #> 2 2013 1 10 #> 3 2013 1 10 #> 4 2013 1 10 #> 5 2013 1 10 #> 6 2013 1 10 #> 7 2013 1 10 #> 8 2013 1 10 #> 9 2013 1 10 #> 10 2013 1 10 #> # ℹ 1,751 more rows"},{"path":"https://dm.cynkra.com/reference/utils_table_manipulation.html","id":null,"dir":"Reference","previous_headings":"","what":"utils table manipulation methods for dm_zoomed objects — head.dm_zoomed","title":"utils table manipulation methods for dm_zoomed objects — head.dm_zoomed","text":"Extract first last rows table. Use methods without '.dm_zoomed' suffix (see examples). methods regular dm objects extract first last tables.","code":""},{"path":"https://dm.cynkra.com/reference/utils_table_manipulation.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"utils table manipulation methods for dm_zoomed objects — head.dm_zoomed","text":"","code":"# S3 method for dm_zoomed head(x, n = 6L, ...) # S3 method for dm_zoomed tail(x, n = 6L, ...)"},{"path":"https://dm.cynkra.com/reference/utils_table_manipulation.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"utils table manipulation methods for dm_zoomed objects — head.dm_zoomed","text":"x object class dm_zoomed n integer vector length dim(x) (1, non-dimensioned objects). logical silently coerced integer. Values specify indices selected corresponding dimension (along length) object. positive value n[] includes first/last n[] indices dimension, negative value excludes last/first abs(n[]), including remaining indices. NA non-specified values (length(n) < length(dim(x))) select indices dimension. Must contain least one non-missing value. ... arguments passed methods.","code":""},{"path":"https://dm.cynkra.com/reference/utils_table_manipulation.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"utils table manipulation methods for dm_zoomed objects — head.dm_zoomed","text":"dm_zoomed object.","code":""},{"path":"https://dm.cynkra.com/reference/utils_table_manipulation.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"utils table manipulation methods for dm_zoomed objects — head.dm_zoomed","text":"see manual corresponding functions utils.","code":""},{"path":"https://dm.cynkra.com/reference/utils_table_manipulation.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"utils table manipulation methods for dm_zoomed objects — head.dm_zoomed","text":"","code":"zoomed <- dm_nycflights13() %>% dm_zoom_to(flights) %>% head(4) zoomed #> # Zoomed table: flights #> # A tibble: 4 × 19 #> year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time #> #> 1 2013 1 10 3 2359 4 426 437 #> 2 2013 1 10 16 2359 17 447 444 #> 3 2013 1 10 450 500 -10 634 648 #> 4 2013 1 10 520 525 -5 813 820 #> # ℹ 11 more variables: arr_delay , carrier , flight , #> # tailnum , origin , dest , air_time , distance , #> # hour , minute , time_hour dm_insert_zoomed(zoomed, new_tbl_name = \"head_flights\") #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather`, `head_flights` #> Columns: 72 #> Primary keys: 4 #> Foreign keys: 8"},{"path":[]},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-10","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.10","text":"Establish compatibility igraph >= 2.0.0 (#2187). Unblock every three hours. Fix withr 3.0.0 compatibility (#2184). Use dev odbc fix SQL Server problem (#2178). Configure Aviator avoid setting blocked label. Snapshot updates rcc-smoke (#2182). Reexport tibble::glimpse() instead pillar::glimpse() avoid pillar dependency roxygen2 7.3.0 (#2179).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"continuous-integration-1-0-10","dir":"Changelog","previous_headings":"","what":"Continuous integration","title":"dm 1.0.10","text":"Fix unblock. Add workflow regularly unblocks PRs.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"uncategorized-1-0-10","dir":"Changelog","previous_headings":"","what":"Uncategorized","title":"dm 1.0.10","text":"Merge branch ‘cran-1.0.9’.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-109","dir":"Changelog","previous_headings":"","what":"dm 1.0.9","title":"dm 1.0.9","text":"CRAN release: 2024-01-08","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-9","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.9","text":"dm_sql() now processes table_names dbplyr::escape(), therefore also accepting dbplyr objects (#2129).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-9","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.9","text":"Adapt DBI >= 1.2.0 (#2148, #2155).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-108","dir":"Changelog","previous_headings":"","what":"dm 1.0.8","title":"dm 1.0.8","text":"CRAN release: 2023-11-02","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-1-0-8","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 1.0.8","text":"copy_dm_to() creates string columns necessary lengths MariaDB SQL Server. worked SQL Server dm 1.0.5, now also works MariaDB (#311, #2066, #2082).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-8","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.8","text":"Explicitly fail compute(temporary = TRUE), never worked correctly (#2059, #2103). Warn DuckDB supporting autoincrementing primary keys (#2099).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-8","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.8","text":"Make check_suggested() standalone (#2054).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-1-0-8","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 1.0.8","text":"Tweak vignette compute(temporary = TRUE). Update documentation check_suggested() (@olivroy, #2055).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"performance-1-0-8","dir":"Changelog","previous_headings":"","what":"Performance","title":"dm 1.0.8","text":"Speed dm(), new_dm(), as_dm() dm_validate(). dm() as_dm() longer call dm_validate() (#2108).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"testing-1-0-8","dir":"Changelog","previous_headings":"","what":"Testing","title":"dm 1.0.8","text":"Add test copy_dm_to(table_names = ) (#250, #2101). Work around test failures dbplyr 2.4.0. Remove skips tests (#2052).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-107","dir":"Changelog","previous_headings":"","what":"dm 1.0.7","title":"dm 1.0.7","text":"CRAN release: 2023-10-24","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-7","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.7","text":"copy_dm_to() now warns unconditionally unsupported arguments, fails copy_to provided (#1944). Use new dm_sql() function replacement copy_dm_to(copy_to = ) (#1915, #2011, @jangorecki). New json_unnest() json_unpack(), currently implemented data frames (#991, #997). dm_rows_append() also works local dm, support autoincrement primary keys (#1727, #1745). Breaking change: Add check_dots_empty() calls (#1929, #1943). Test MySQL GHA (#1940). Improve MySQL compatibility regarding learning database schemas checking constraints (#1938).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-1-0-7","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 1.0.7","text":"Breaking change: Add check_dots_empty() calls (#1929, #1943).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-1-0-7","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 1.0.7","text":"Compatibility duckdb 0.9.1. Minor fixes dm_pack_tbl() dm_unwrap_tbl() (#1947).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-1-0-7","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 1.0.7","text":"Use rlang::check_installed() internally install missing suggested packages fly (@olivroy, #1348, #2036, #2039, #2040). Use vectorized rlang::is_installed()decide examples run (@olivroy, #2043). Recategorize describe function reference. Better error information messages querying keys. collect.zoomed_dm() shows helpful error message (#1929, #1945). Add information default font size ?dm_draw (#1935). Add db-* rules Makefile simplify Docker-based database setup. Remove curly braces, add \\pkg (@olivroy, #2042).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"performance-1-0-7","dir":"Changelog","previous_headings":"","what":"Performance","title":"dm 1.0.7","text":"Replace tibble() fast_tibble() (@mgirlich, #1928). Replace superseded dplyr::recode() (@mgirlich, #1927).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"testing-1-0-7","dir":"Changelog","previous_headings":"","what":"Testing","title":"dm 1.0.7","text":"Remove skips tests (#2052). Add explicit unique key dm_for_filter(). Add Postgres test dm_sql(). Switch internal testing MariaDB. Fast offline checks new \"DM_OFFLINE\" environment variable. New GHA checks case missing suggested packages (#1952).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-7","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.7","text":"Make check_suggested() standalone (#2054). Backport changes attempted CRAN release (#2046). Move magrittr (#1975, #1983), DBI (#1974), pillar (#1976) \"Suggests\". Require RMariaDB 1.3.0, work around tidyverse/dbplyr#1190 tidyverse/dbplyr#1195 (#1989).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-1-0-7","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 1.0.7","text":"Prefer map*() lapply() vapply(). styler::style_pkg(scope = \"tokens\"). Rename internal new_dm3() dm_from_def() (#1225, #1949). Remove dead code (#979, #1950, #1871). Reorganize build_copy_queries() (#1923). Avoid dbplyr::ident_q() (#1788). Add ellipsis tbl_sum() signature (#1941).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-106","dir":"Changelog","previous_headings":"","what":"dm 1.0.6","title":"dm 1.0.6","text":"CRAN release: 2023-07-21","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-1-0-6","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 1.0.6","text":"Compare version returned getRversion() string instead number. Work around vctrs bug jsonlite 1.8.5.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-6","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.6","text":"dm_from_con() gains .names argument pattern-based construction table names dm object (@owenjonesuob, #1790). New dm_set_table_descriptions(), dm_get_table_descriptions() dm_reset_table_descriptions() set table labels persistent attributes table object (#1888). dm_from_con() can retrieve multiple schemas, pass character vector schema argument (@owenjonesuob, #1533, #1789). build_copy_queries() db_learn_from_db() improvements (@samssann, #1642, #1677, #1739). UK support dm_draw() (#1731, #1877). Allow additional description tables dm_draw() (#1875, #1876).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-6","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.6","text":"Establish compatibility dbplyr 2.3.3 2.4.0 (@mgirlich, #1919). copy_dm_to(), call collect() copying data, table table (@jangorecki, #1900). Use roxyglobals (#1838). Require purrr >= 1.0.0 list_c() (#1847, #1848).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-1-0-6","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 1.0.6","text":"Add table description diagram README. Tweak testing instructions. Mention Makefile CONTRIBUTING.md. Describe Docker setup (#1898). Vignette corrections (@MikeJohnPage, #1882). Avoid tidyverse package.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"testing-1-0-6","dir":"Changelog","previous_headings":"","what":"Testing","title":"dm 1.0.6","text":"Fix local tests (#1921).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-105","dir":"Changelog","previous_headings":"","what":"dm 1.0.5","title":"dm 1.0.5","text":"CRAN release: 2023-03-16","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-5","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.5","text":"Progress bars dm_wrap_tbl() dm_unwrap_tbl() (#835, #1450).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-1-0-5","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 1.0.5","text":"Add cheat sheet vignette (#1653). Suggest creating function database dm object (#1827, #1828). Add alternative text author images pkgdown website (#1804).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-5","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.5","text":"Compatibility dev jsonlite (#1837). Remove tidyverse dependency (#1798, #1834). Minimal patch fix multiple match updates (@DavisVaughan, #1806). Adapt rlang 1.1.0 changes (#1817). Make sure dm passes “noSuggests” workflow (#1659).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-104","dir":"Changelog","previous_headings":"","what":"dm 1.0.4","title":"dm 1.0.4","text":"CRAN release: 2023-02-11","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-4","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.4","text":"dm_add_pk() gains autoincrement argument (#1689), autoincrement primary keys configured database copy_dm_to() (#1696). New dm_add_uk(), dm_rm_uk() dm_get_all_uks() functions explicit support unique keys (#622, #1716). dm_get_all_pks() dm_get_all_fks() return output order table parent_table argument (#1707). Improve error message dm_add_pk() columns argument missing (#1644, #1646).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-1-0-4","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 1.0.4","text":"dm_get_all_pks(), dm_get_all_fks(), dm_get_all_uks() require unquoted table names input, consistency parts API (#1741).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-1-0-4","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 1.0.4","text":"dm_examine_constraints() works dm objects database compound keys (#1713).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-1-0-4","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 1.0.4","text":"Update pkgdown URL https://dm.cynkra.com/ (#1652). Fix link rot (#1671).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-1-0-4","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 1.0.4","text":"Require dplyr >= 1.1.0 lifecycle >= 1.0.3 (#1771, #1637). Checks pass suggested packages missing (#1659). Fix r-devel builds (#1776). dm_unpack_tbl() sets PK FK (#1715). Clean dm_rows_append() implementation (#1714). dm() accepts tables class \"tbl_sql\" \"tbl_dbi\" (#1695, #1710). Use correctly typed missing value lists (@DavisVaughan, #1686).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-103","dir":"Changelog","previous_headings":"","what":"dm 1.0.3","title":"dm 1.0.3","text":"CRAN release: 2022-10-12","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-3","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.3","text":"Avoid running example without database connection.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-102","dir":"Changelog","previous_headings":"","what":"dm 1.0.2","title":"dm 1.0.2","text":"CRAN release: 2022-09-20","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-2","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.2","text":"dm_from_con() can use multiple schemata (@mgirlich, #1441, #1449). pack_join(keep = TRUE) preserves order packed columns (#1513, #1514). pack_join(keep = TRUE) keeps keys y resulting packed column (#1451, #1452). New json_pack.tbl_lazy() json_nest.tbl_lazy() (#969, #975).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-1-0-2","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 1.0.2","text":"dm_paste() gives correct output factor columns many levels (#1510, #1511).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-2","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.2","text":"Fix compatibility duckdb 0.5.0 (#1509, #1518). Refactor dm_unwrap_tbl() builds “unwrap plan” first (#1446, #1447). Reenable dm_rows_update() test (#1437).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-101","dir":"Changelog","previous_headings":"","what":"dm 1.0.1","title":"dm 1.0.1","text":"CRAN release: 2022-08-06","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-1","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.1","text":"New dm_deconstruct() creates code deconstruct dm object individual keyed tables via pull_tbl(keyed = TRUE) (#1354).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-1-0-1","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 1.0.1","text":"Use dm_ptype() dm_gui(), generate better code (#1353).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-100","dir":"Changelog","previous_headings":"","what":"dm 1.0.0","title":"dm 1.0.0","text":"CRAN release: 2022-07-21","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-0","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.0","text":"New dm_gui() interactive editing dm objects (#1076, #1319). dm_get_tables() pull_tbl() gain new keyed = FALSE argument. set TRUE, table objects class \"dm_keyed_tbl\" returned. objects inherit underlying data structure (tibble lazy table), keep track primary foreign keys, can used later call dm() recreate dm object keys (#1187). New by_position argument check_subset(), check_set_equality(), check_cardinality_...() examine_cardinality() (#1253). dm() accepts dm objects (#1226). dm_examine_constraints() honors implicit unique keys defined foreign keys (#1131, #1209).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-1-0-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 1.0.0","text":"dm_filter() now stable, new API avoids exposing intermediate state filters yet applied, compatibility wrapper (#424, #426, #1236). check_cardinality_...(), examine_cardinality(), check_subset() check_set_equality() now stable consistently use common interface arguments named x, y, x_select y_select, compatibility wrappers (#1194, #1229). dm_examine_cardinalities() dm_examine_constraints() now stable new signature compatibility wrapper (#1193, #1195). dm_apply_filters(), dm_apply_filters_to_tbl() dm_get_filters() deprecated (#424, #426, #1236). dm_disambiguate_cols() adds table names suffix default, gains .position argument restore original behavior. Arguments sep quiet renamed .sep .quiet (#1293, #1327). dm_squash_to_tbl() deprecated favor new .recursive argument dm_flatten_to_tbl(). Arguments start join renamed .start .join (#1272, #1324). dm_rm_tbl() deprecated favor dm_select_tbl() (#1275). dm_bind() dm_add_tbl() deprecated favor dm() (#1226). rows_truncate() dm_rows_truncate() deprecated, use DDL opposed verbs use DML (#1031, #1321). internal S3 classes now use \"dm_\" prefix (#1285, #1339). Add ellipses generics (#1298).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"api-1-0-0","dir":"Changelog","previous_headings":"","what":"API","title":"dm 1.0.0","text":"Reexport tibble() (#1279). dm_ptype(), dm_financial() dm_pixarfilms() stable now (#1254). Turn “questioning” functions “experimental” (#1030, #1237).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"performance-1-0-0","dir":"Changelog","previous_headings":"","what":"Performance","title":"dm 1.0.0","text":"is_unique_key()uses vctrs::vec_count() local data frames speed (@eutwt, #1247). check_key() uses vctrs::vec_duplicate_any() local data frames speed (@eutwt, #1234).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-1-0-0","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 1.0.0","text":"dm_draw() works table name space (#1219). Don’t print rule glimpse.dm() empty dm() (#1208).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-1-0-0","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 1.0.0","text":"Work around ANSI escape issues CRAN rendering vignette (#1156, #1330). Fix column names ?dm_get_all_pks (#1245). Improve contrast display dm_financial() (#1073, #1250). Add contributing guide (#1222).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-1-0-0","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 1.0.0","text":"Use sensible node edge IDs, corresponding data model, SVG graph (#1214). Tests datamodelr code (#1215).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-030","dir":"Changelog","previous_headings":"","what":"dm 0.3.0","title":"dm 0.3.0","text":"CRAN release: 2022-07-06","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-3-0","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.3.0","text":"Implement glimpse() zoomed_df (@IndrajeetPatil, #1003, #1161). Remove message automated key selection select argument joins zoomed_df (@IndrajeetPatil, #1113, #1176). dm_from_con(learn_keys = TRUE) works MariaDB (#1106, #1123, #1169, @maelle), compound keys Postgres (#342, #1006, #1016) SQL Server (#342). New json_pack_join(), json_nest_join(), json_pack() json_nest(), similar pack_join(), dplyr::nest_join(), tidyr::pack() tidyr::nest(), create character columns (#917, #918, #973, #974). nest_join() pack_join() support zoomed_df objects (#1119, @IndrajeetPatil).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"api-0-3-0","dir":"Changelog","previous_headings":"","what":"API","title":"dm 0.3.0","text":"Marked stable functions stable, particular dm() related functions (#1032, #1040). Remove rows_*() implementation lazy tables, now available dbplyr >= 2.2.0 (#912, #1024, #1028). Deprecate dm_join_to_tbl(), dm_is_referenced() dm_get_referencing_tables() (#1038). New dm_validate() replaces now deprecated validate_dm() (#1033). dm_get_con() dm_get_filters() use dm argument name (#1034, #1036). Mark ... dm_flatten_to_tbl() experimental (#1037). Add ellipses dm_disambiguate_cols(), dm_draw(), dm_examine_constraints(), dm_nycflights13() dm_pixarfilms() (#1035). New dm_from_con(), soft-deprecated dm_from_src() (#1014, #1018, #1044). Moved pack_join() arguments past ellipsis consistency (#920, #921).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-3-0","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.3.0","text":"Compatibility fix writing SQL Server tables dbplyr >= 2.2.0.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-0-3-0","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 0.3.0","text":"pkgdown site now uses BS5 greater readability (#1067, @maelle). Better message dm_rows_...() functions in_place argument missing (@IndrajeetPatil, #414, #1160). Better message learning error (#1081). Greatly improved consistency, content, language across articles (@IndrajeetPatil, #1056, #1132, #1157, #1166, #1079, #1082, #1098, #1100, #1101, #1103, #1112, #1120, #1158, #1175). Tweaks intro vignette README (#1066, #1075, @maelle). Document glimpse() S3 method dm (@IndrajeetPatil, #1121). Update credentials fallback databases dm_financial() hosted pacha.dev (#916, @pachadotdev), also used now vignettes (#1118) dm_from_con() example (#993). Update license year (#1029).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-3-0","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.3.0","text":"Switch duckdb default database backend (#1179). Test duckdb MariaDB GHA (#1091, #1136).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-028","dir":"Changelog","previous_headings":"","what":"dm 0.2.8","title":"dm 0.2.8","text":"CRAN release: 2022-04-08","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-8","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.8","text":"pack_join() works correctly name existing column either table. cases column overwritten, consistent nest_join() behavior (#864, #865). Messages suggest installation optional packages shown per session (#852). dm_insert_zoomed() uses color zoomed table new table (#750, #863). copy_dm_to() consumes less memory faster writing SQL Server (#855).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-2-8","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.2.8","text":"Remove extra spaces output examining constraints compound keys (#868). Fix column tracking foreign keys (#856, #857). copy_dm_to() shows progress bars (#850, #855). Progress bars use console width (#853). Avoid calling dbAppendTable() zero-row tables (#847).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-8","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.8","text":"Require rlang 1.0.1 (#840).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-027","dir":"Changelog","previous_headings":"","what":"dm 0.2.7","title":"dm 0.2.7","text":"CRAN release: 2022-02-03","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-7","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.7","text":"New dm_wrap_tbl(), dm_unwrap_tbl(), dm_nest_tbl(), dm_unnest_tbl(), dm_pack_tbl() dm_unpack_tbl() (#595, #733, #737). New dm_examine_cardinality() (#264, #735). New pack_join() generic method data frames, tidyr::pack() dplyr::nest_join() tidyr::nest() (#721, #722). dm_pixarfilms() exported gains consistent = FALSE argument; TRUE data modified referential constraints satisfied (#703, #707, #708, @erictleung).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-2-7","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.2.7","text":"db_schema_...() functions longer pro-actively check schema existence (#672, #815, #771). db_schema_list.Microsoft SQL Server longer ignoring schemas owner found (#815, #771). copy_dm_to() works DuckDB , SQL statements define tables indexes now created us (#701, #709).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-7","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.7","text":"Establish compatibility rlang 1.0.0 (#756). Simplify database checks GitHub Actions (#712).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-026","dir":"Changelog","previous_headings":"","what":"dm 0.2.6","title":"dm 0.2.6","text":"CRAN release: 2021-11-21","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-6","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.6","text":"New dm_pixarfilms() creates dm object data {pixarfilms} package (#600, @erictleung). check_cardinality_0_1(), check_cardinality_0_n(), check_cardinality_1_1(), check_cardinality_1_n(), examine_cardinality() now support compound keys (#524). check_subset() check_set_equality() support compound keys (#523). dm_paste() adds on_delete argument dm_add_fk() (#673). dm_disambiguate_cols() also disambiguates columns used keys, support correct disambiguation compound keys (#662). dm_disambiguate_cols() now emits source code equivalent renaming operation (#684). dm_examine_constraints() uses backticks surround table names (#687).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-2-6","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.2.6","text":"decompose_table() now avoids creating NA values key column (#580). dm_draw() works empty tables (#585).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-6","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.6","text":"Fix compatibility dplyr 1.0.8 (#698).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-025","dir":"Changelog","previous_headings":"","what":"dm 0.2.5","title":"dm 0.2.5","text":"CRAN release: 2021-10-15","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-5","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.5","text":"mutate(), transmute(), distinct() summarize() now support dplyr::across() extra arguments (#640). Key tracking first three verbs less strict based name equality (#663). relocate() now works zoomed dm objects (#666). dm_add_fk() gains on_delete argument copy_dm_to() picks translates DELETE CASCADE DELETE ACTION specification foreign key (#649). dm_copy_to() defines foreign keys table creation, databases except DuckDB. Tables created topological order (#658). cyclic relationship graphs, table creation attempted original order may fail (#664). waldo::compare() shows better output dm objects (#642). dm_paste() output uses trailing commas dm::dm() tibble::tibble() calls, sorts column attributes name, better modularity (#641).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-0-2-5","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 0.2.5","text":"New db_schema_create(), db_schema_drop(), db_schema_exists() db_schema_list() replace corresponding sql_schema_*() functions, latter soft-deprecated (#670). connection argument db_schema_*() called con, dest (#668).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-2-5","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.2.5","text":"copy_dm_to() sql_create_schema() longer actively check schema existence (#644, #660). Add newline OUTPUT clause SQL Server (#647). Fix sql_rows_delete() returning argument SQL Server (#645).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-5","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.5","text":"Remove method needed RSQLite < 2.2.8, add warning loaded RSQLite version <= 2.2.8 (#632). Adapt MSSQL tests testthat update (#648).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-024","dir":"Changelog","previous_headings":"","what":"dm 0.2.4","title":"dm 0.2.4","text":"CRAN release: 2021-09-30","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-4","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.4","text":"rows_insert(), rows_update() rows_delete() gain returning argument. combination in_place = TRUE argument makes newly inserted rows accessible via get_returning_rows() operation completes (#593, @mgirlich). Implement rows_patch() DBI connections (#610, @mgirlich). Use ACTION instead CASCADE foreign key constraints permit self-references. dm_from_src() supports pool::Pool objects (#599, @moodymudskipper). Better error message dm_rows_update() related functions dm objects tables without primary key (#592). glimpse() implemented dm objects (#605). Support DuckDB rows_insert(), rows_update() rows_delete() (#617, @mgirlich).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-2-4","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.2.4","text":"Fix dm_zoom_to() dm objects empty table (#626, @moodymudskipper). Avoid generating invalid dm objects corner cases (#596).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-4","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.4","text":"sql_schema_list() supports pool::Pool objects (#633, @brancengregory). Establish compatibility pillar 1.6.2, vctrs > 0.3.8 rlang > 0.4.11 (#613). Use check_suggested() everywhere (#572, @moodymudskipper). Add CI run validating new dm objects (#597).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-023","dir":"Changelog","previous_headings":"","what":"dm 0.2.3","title":"dm 0.2.3","text":"CRAN release: 2021-06-20","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-2-3","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.2.3","text":"Fix rows_truncate() interactive mode (#588).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-3","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.3","text":"Implement rows_delete() databases (#589).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-3","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.3","text":"Skip examples might require internet access non-CI platforms.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-022","dir":"Changelog","previous_headings":"","what":"dm 0.2.2","title":"dm 0.2.2","text":"CRAN release: 2021-06-13","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-2","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.2","text":"dm_examine_constraints(), dm_rows_insert() related, copy_dm_to() collect.dm() show progress bars interactive mode via progress package. new progress = NA argument controls behavior (#262, @moodymudskipper). copy_dm_to() gains copy_to argument support ways copying data database (#582).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-2","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.2","text":"Always run database tests sqlite df source. Establish compatibility testthat > 3.0.2 (#566, @moodymudskipper).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-021","dir":"Changelog","previous_headings":"","what":"dm 0.2.1","title":"dm 0.2.1","text":"CRAN release: 2021-05-11","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-0-2-1","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 0.2.1","text":"dm_get_all_fks() returns data frame parent_key_cols instead parent_pk_cols column (introduced dm 0.2.0), reflect fact foreign key longer necessarily points primary key (#562). *_pk() *_fk() functions now verify dots actually empty (#536). dm_get_pk() deprecated favor dm_get_all_pks() (#561). dm_has_fk() dm_get_fk() deprecated favor dm_get_all_fks() (#561).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-1","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.1","text":"dm_add_fk() gains ref_columns argument supports creating foreign keys non-primary keys (#402). dm_get_all_pks() gains table argument filtering returned primary keys (#560). dm_get_all_fks() gains parent_table argument filtering returned foreign keys (#560). dm_rm_fk() gains optional ref_columns argument. function now supports removal multiple foreign keys filtered parent child table columns, message (#559). dm_rm_pk() gains columns argument allows filtering columns tables removing primary keys. rm_referencing_fks argument deprecated favor new fail_fk argument (#558). dm_get_all_fks() optimized speed longer sorts keys (#560). dm operations now slightly faster overall.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-1","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.1","text":"internal data structure dm object changed accommodate foreign keys columns primary key. upgrade message shown working dm object earlier version, e.g. loaded cache .rds file (#402). Drop \"dm_v1\" class dm objects , made every S3 dispatch costly. Relying internal \"version\" attribute instead (#547).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-020","dir":"Changelog","previous_headings":"","what":"dm 0.2.0","title":"dm 0.2.0","text":"CRAN release: 2021-05-03","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-0-2-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 0.2.0","text":"Deprecate dm_get_src() tbl.dm(), src_tbls.dm(), copy_to.dm(). functions better alternatives use notion “data source” phased dplyr (#527). *_pk() *_fk() functions gain ellipsis argument comes check, force rm_referencing_fks arguments (#520).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-0","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.0","text":"dm_add_pk() dm_add_fk() support compound keys via c() notation, e.g. dm_add_pk(dm, table, c(col1, col2)). dm_nycflights13() returns data model compound keys default. Use compound = FALSE return data model dm v0.1.13 earlier (#3). dm_get_all_fks() includes parent_pk_cols column describes primary key columns parent table (#335). dm_from_src() supports schema argument also MariaDB MySQL databases (#516). dm objects now inherit \"dm_v1\" addition \"dm\", allow backward-compatible changes internal format (#521). Use hack create compound primary keys database (#522). dm_examine_constraints() check functions count number rows violate constraints primary foreign keys (#335). copy_dm_to(set_key_constraints = FALSE) downgrades unique indexes regular indexes (#335). rows_truncate() implemented data frames (#335). dm_enum_fk_candidates() enumerates column order apper table (#335).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-0113","dir":"Changelog","previous_headings":"","what":"dm 0.1.13","title":"dm 0.1.13","text":"CRAN release: 2021-04-25","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-1-13","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.1.13","text":"dm_draw() gains column_types argument, TRUE column type shown displayed column (#444, @samssann). copy_dm_to() gains schema argument (#432). dm_from_src() gains dbname argument MSSQL (#472).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-1-13","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.1.13","text":"Fix rows_update() multiple columns updated (#488, @samssann).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"performance-0-1-13","dir":"Changelog","previous_headings":"","what":"Performance","title":"dm 0.1.13","text":"enum_fk_candidates() now checks distinct values, improves performance large tables. consequence, number distinct values reported mismatches, number mismatching rows/entries (#494).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-0-1-13","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 0.1.13","text":"Fix description filtering behavior ?dm_zoom_to (#403).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-1-13","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.1.13","text":"Move repository https://github.com/cynkra/dm (#500). Enable Postgres tests (#497). Test DuckDB GitHub Actions (#498).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-0112","dir":"Changelog","previous_headings":"","what":"dm 0.1.12","title":"dm 0.1.12","text":"CRAN release: 2021-02-15 dm_from_src() gains dbname argument MSSQL (#472). Implement count() tally() dplyr 1.0.3 compatibility (#475). Use databases.pacha.dev instead db-edu.pacha.dev (#478, @pachamaltese).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-0110","dir":"Changelog","previous_headings":"","what":"dm 0.1.10","title":"dm 0.1.10","text":"CRAN release: 2021-01-07 Columns missing values longer primary keys (#469). Fix dm_from_src() MSSQL learn_keys = FALSE (#427). Tests use expect_snapshot() everywhere (#456). Fix compatibility testthat 3.0.1 (#457).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-019","dir":"Changelog","previous_headings":"","what":"dm 0.1.9","title":"dm 0.1.9","text":"CRAN release: 2020-11-18 New vignette(\"howto-dm-copy\", package = \"dm\") vignette(\"howto-dm-rows\", package = \"dm\") discuss updating data database. part derived vignette(\"howto-dm-db\", package = \"dm\") (#411, @jawond). New dm_mutate_tbl() (#448). dm_financial() falls back db-edu.pacha.dev relational.fit.cvut.cz unavailable (#446, @pachamaltese). Use testthat 3e (#455).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-017","dir":"Changelog","previous_headings":"","what":"dm 0.1.7","title":"dm 0.1.7","text":"CRAN release: 2020-09-02 Bump RMariaDB required version 1.0.10 work around timeout R CMD check. dm_from_src() accepts schema argument MSSQL databases (#367).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-016","dir":"Changelog","previous_headings":"","what":"dm 0.1.6","title":"dm 0.1.6","text":"CRAN release: 2020-07-29","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-0-1-6","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 0.1.6","text":"dm_get_src() returns NULL local data sources (#394). Local target copy_dm_to() gives deprecation message (#395).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-1-6","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.1.6","text":"copy_dm_to() gives better error message bad table_names (#397). dm objects local data sources longer show “Table source” part output. Error messages now refer “tables”, “elements” (#413). New dm_bind() binding two ‘dm’ objects together (#417).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-1-6","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.1.6","text":"databases, underlying SQL table names quoted early avoid later SQL syntax errors (#419). dm_financial() longer prints message learn_keys = FALSE. dm_rows_update() related functions now use primary keys defined x establishing matching rows.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-1-6","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.1.6","text":"Use withCallingHandlers() appropriate (#422). Consistent definition .dm .dm_zoomed methods (#300). Examples involving dm_financial() run connection can’t established (#418). Fix database tests CI (#416).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-015","dir":"Changelog","previous_headings":"","what":"dm 0.1.5","title":"dm 0.1.5","text":"CRAN release: 2020-07-03","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-1-5","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.1.5","text":"dm_paste() generates self-contained code (#401). Errors regarding cycles relationship graph now show shortest cycle (#405). Implement rows_truncate() databases. collect() works zoomed dm, message. data model drawn compact way comprises multiple connected components. dm_add_pk(check = TRUE) gives better error message.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-1-5","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.1.5","text":"rows_insert() works column names consist SQL keywords (#409). Cycles connected components don’t affect filtering cycle-free component. Avoid src_sqlite() examples (#372).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-1-5","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.1.5","text":"Testing SQLite, Postgres SQL Server GitHub Actions (#408, @pat-s). Testing packages “Suggests” uninstalled.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-014","dir":"Changelog","previous_headings":"","what":"dm 0.1.4","title":"dm 0.1.4","text":"CRAN release: 2020-06-07","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-1-4","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.1.4","text":"New dm_rows_insert(), dm_rows_update(), dm_rows_patch(), dm_rows_upsert(), dm_rows_delete() dm_rows_truncate(), calling corresponding rows_*() method every table (#319). New rows_truncate() (#319). Added rows_insert() rows_update() methods SQLite, Postgres, MariaDB MSSQL (#319). Missing arguments now give better error message (#388). Empty dm object prints dm() (#386). copy_dm_to() also accepts function table_names argument. unique_table_names() argument deprecated (#80).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-0-1-4","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 0.1.4","text":"Add TL;DR README (#377, @jawond). Add content old README howto-dm-theory.Rmd (#378, @jawond).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-1-4","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.1.4","text":"Require dplyr >= 1.0.0. Use GitHub Actions (#369, @pat-s).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-013","dir":"Changelog","previous_headings":"","what":"dm 0.1.3","title":"dm 0.1.3","text":"CRAN release: 2020-05-25 Avoid src_sqlite() vignettes (#372). Rename vignettes (#349). Rename error class \"dm_error_tables_not_neighbours\" \"dm_error_tables_not_neighbors\". Shortened README intro article (#192, @jawond). Better testing MSSQL (#339). Fix compatibility dplyr 1.0.0.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-012","dir":"Changelog","previous_headings":"","what":"dm 0.1.2","title":"dm 0.1.2","text":"CRAN release: 2020-05-04","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-1-2","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.1.2","text":"dm_from_src() now works databases Postgres MSSQL (#288), gives warning tables accessed table_name = NULL (#348), gains learn_keys argument control querying primary foreign keys database (#340). dm_examine_constraints() now prints different message dm constraints defined. Disambiguation message now lists column names easier copy-pasting. New methods \"dm_zoomed\": head(), tail(), pull(), group_data(), group_indices(), group_vars(), group_keys() groups() (#236, #203). dm_paste() supports writing colors table definition via new options argument. definition can written file via new path argument. select argument soft-deprecated (#218, #302). dm_add_tbl() uses rlang::list2() internally, now accepts := specify table names. New dm_ptype() (#301). New dm_financial() dm_financial_sqlite(). Printing dm objects database sources many tables now faster (#308, @gadenbuie). check_key() now also works zoomed dm. Key columns always selected join operation, message (#153). Support alpha colors table colors (#279).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-1-2","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.1.2","text":"Fix visualization column acts foreign key (#37). dm_add_pk(), dm_rm_pk(), dm_add_fk() dm_rm_fk() now stricter keys exists attempting remove keys don’t exist. relaxed mode operation may added later (#214). examine_cardinality(), dm_examine_constraints() enum_pk_candidates() now work columns named n. dm_set_key_constraints() (extension dm_copy_to(set_key_constraints = TRUE)) now quote identifiers SQL creates foreign keys database. collect() gives better error message called \"dm_zoomed\" (#294). check_subset() gives clean error message tables complex expressions. dm_from_src(schema = \"...\") works Postgres search_path set connection. compute.dm_zoomed() longer throws error. Remove unused DT import (#295).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"compatibility-0-1-2","dir":"Changelog","previous_headings":"","what":"Compatibility","title":"dm 0.1.2","text":"Remove use deprecated src_df() (#336). Fix compatibility dplyr 1.0.0 (#203).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-0-1-2","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 0.1.2","text":"dm_draw() output shown examples (#251). New article “{dm} databases” (#309, @jawond).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-1-2","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.1.2","text":"Testing local data frames (default), optionally also SQLite, Postgres, RMariaDB, SQL Server. Currently requires development versions various pull requests (#334, #327, #312, #76). dm_nycflights13(subset = TRUE) memoizes subset also reduces size weather table. Expand definitions deprecated functions (#204).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-011","dir":"Changelog","previous_headings":"","what":"dm 0.1.1","title":"dm 0.1.1","text":"CRAN release: 2020-03-12 Implement format.dm(). Adapt tidyselect 1.0.0 (#257). Zooming unzooming now faster columns removed. Table names must unique. dm_examine_constraints() formats problems nicely. New class prettier printing keys (#244). Add experimental schema support dm_from_src() Postgres new schema table_type arguments (#256).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-010","dir":"Changelog","previous_headings":"","what":"dm 0.1.0","title":"dm 0.1.0","text":"Package now “maturing” lifecycle (#154). filter.dm_zoomed() longer sets filter. examine_() functions never throw error (#238). API overhaul: dm_zoom_to(), dm_insert_zoomed(), dm_update_zoomed() dm_discard_zoomed(); check_() -> examine_(); dm_get_filter() -> dm_get_filters(); dm_from_src() + dm_learn_from_db() -> dm_from_src() (#233). New $.dm_zoomed(), [.dm_zoomed(), [[.dm_zoomed(), length.dm_zoomed(), names.dm_zoomed(), tbl_vars.dm_zoomed() (#199, #216). New .list() methods (#213). Help pages dplyr methods (#209). New migration guide dm <= 0.0.5 (#234). New {tidyselect} interface setting colors (#162) support hex color codes well R standard colors. Prepare dm_examine_constraints() key-related functions compound keys (#239). Avoid warnings R CMD check dev versions dependencies. Improve error messages missing tables (#220).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-006","dir":"Changelog","previous_headings":"","what":"dm 0.0.6","title":"dm 0.0.6","text":"Change cdm_ prefix dm_. old names still available (#117). New pull_tbl() extracts single table dm (#206). New dm_apply_filters_to_tbl() applies filters related tables table, similar dm_apply_filters(); tbl(), $ [[ longer apply filter conditions defined related tables (#161). New dm_paste() (#160). New check_cardinality() returns nature relationship parent_table$pk_col child_table$fk_col (#15). New zoom vignette (#171). check_key() longer maps empty selection list columns. check_key() supports tidyselect (#188). dm_rm_tbl() supports tidyselect (#127). decompose_table() uses tidyselect (#194). Implement copy_to() dm objects (#129). Relax test cycles relationship graph (#198). Return ref_table column dm_check_constraints() (#178). str() shows simplified views (#123). Edits README (#172, @bbecane). Extend validate_dm() (#173). Fix zooming table uses FK column primary key (#193). Fix corner case dm_rm_fk() (#175). efficient check_key() databases (#208). Testing R >= 3.3 debug versions. Remove {stringr} dependency (#183).","code":""},{"path":[]},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-0-5","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.0.5","text":"cdm_filter() filter.dm_zoomed() apply filter instantly, expression recorded display purposes terminating search filtered tables cdm_apply_filters(). now allows using variety operations filtered dm objects (#124). dimnames(), colnames(), dim(), distinct(), arrange(), slice(), separate() unite() implemented zoomed dm-s (#130). Joins zoomed dm objects now supported (#121). Joins use column name disambiguation algorithm cdm_flatten_to_tbl() (#147). slice.dm_zoomed(): user decides arg .keep_pk PK column tracked (#152). Supported {dplyr} {tidyr} verbs reexported. enum_pk_candidates() works zoomed dm-s (#156). New enum_fk_candidates() (#156). Add name repair argument cdm_insert_zoomed_tbl() cdm_add_tbl(), defaulting renaming old new tables adding tables duplicate names (#132). Redesign constructors validators: dm() akin tibble(), dm_from_src() works like dm() previously, new_dm() accepts list tables longer validates, validate_dm() checks internal consistency (#69). compute.dm() applies filters calls compute() tables (#135).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-0-0-5","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 0.0.5","text":"New demo. Add explanation empty dm (#100).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-0-5","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.0.5","text":"Avoid asterisk printing local dm_zoomed (#131). cdm_select_tbl() works multiple foreign keys defined two tables (#122).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-004","dir":"Changelog","previous_headings":"","what":"dm 0.0.4","title":"dm 0.0.4","text":"Many {dplyr} verbs now work tables dm. Zooming table vie cdm_zoom_to_tbl() creates zoomed dm {dplyr} verbs can applied. resulting table can put back dm cdm_update_zoomed_tbl() (overwriting original table) cdm_insert_zoomed_tbl() (creating new table), respectively (#89). cdm_select_to_tbl() removes foreign key constraints corresponding columns removed. Integrate code {datamodelr} package (@bergant, #111). Reorder tables \"dm\" using cdm_select_tbl() (#108). accurate documentation filtering operation (#98). Support empty dm objects via dm() new_dm() (#96). cdm_flatten_to_tbl() now flattens immediate neighbors default (#95). New cdm_add_tbl() cdm_rm_tbl() (#90). New cdm_get_con() (#84). dm object defined using nested tibble, one row per table (#57).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-003","dir":"Changelog","previous_headings":"","what":"dm 0.0.3","title":"dm 0.0.3","text":"cdm_enum_pk_candidates() cdm_enum_fk_candidates() show candidates first (#85). cdm_flatten_to_tbl() works immediate neighborhood (#75). New cdm_squash_to_tbl() implements recursive flattening left, inner full join (#75). Updated readme introduction vignette (#72, @cutterkom). New cdm_check_constraints() check referential integrity dm (#56). cdm_copy_to() gains table_names argument (#79). check_key() now deals correctly named column lists (#83). Improve error message calling cdm_add_pk() missing column.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-0029003","dir":"Changelog","previous_headings":"","what":"dm 0.0.2.9003","title":"dm 0.0.2.9003","text":"Fix R CMD check.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-0029002","dir":"Changelog","previous_headings":"","what":"dm 0.0.2.9002","title":"dm 0.0.2.9002","text":"Use caching improve loading times. Run tests one source (#76). cdm_enum_fk_candidates() checks class compatibility implicitly via left_join(). cdm_enum_fk_candidates() contains detailed entry column error & candidate (percentage mismatched vals etc.). Improve error messages cdm_join_to_tbl() cdm_flatten_to_tbl() presence cycles disconnected tables (#74).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-0029001","dir":"Changelog","previous_headings":"","what":"dm 0.0.2.9001","title":"dm 0.0.2.9001","text":"Remove src component dm (#38). Internal: Add function checking tables src. Internal: Add 2 classed errors. cdm_get_src() local dm always returns src based .GlobalEnv. cdm_flatten() gains ... argument specify tables include. Currently, tables must form connected subtree rooted start. Disambiguation column names now happens selecting relevant tables. resulting SQL query efficient inner outer joins filtering applied. Flattening right_join two tables well-defined gives error (#62). Add vignette joining functions (#60, @cutterkom). Shorten message cdm_disambiguate_cols().","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-0029000","dir":"Changelog","previous_headings":"","what":"dm 0.0.2.9000","title":"dm 0.0.2.9000","text":"cdm_flatten_to_tbl() disambiguates necessary columns. flattening, column name LHS (child) table used (#52). Fix formatting enum_pk_candidates() character data. cdm_add_pk() cdm_add_fk() longer check data integrity default. Explicitly checking join argument function, avoid surprises caller passes data. cdm_copy_to() works correctly filtered dm objects. cdm_apply_filters() actually resets filter conditions. detailed README file vignette filtering (#29, @cutterkom). cdm_draw() longer supports table_names argument, use cdm_select_tbl(). Copying dm database now creates indexes primary foreign keys.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-0-0-2","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 0.0.2","text":"Requires tidyr >= 1.0.0. cdm_nrow() returns named list (#49). Remove cdm_semi_join(). Remove cdm_find_conn_tbls() all_connected argument cdm_select() (#35). Unexport cdm_set_key_constraints(). Rename cdm_select() cdm_select_tbl(), now uses {tidyselect}. cdm_nycflights13() now cycle = FALSE default. Rename cdm_check_for_*() cdm_enum_*().","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"performance-0-0-2","dir":"Changelog","previous_headings":"","what":"Performance","title":"dm 0.0.2","text":"cdm_filter() records filtering operation, filter applied querying table via tbl() calling compute() new cdm_apply_filters() (#32).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"new-functions-0-0-2","dir":"Changelog","previous_headings":"","what":"New functions","title":"dm 0.0.2","text":"New cdm_flatten_to_tbl() flattens dm wide table starting specified table (#13). Rename cdm_join_tbl() cdm_join_to_tbl(). New cdm_disambiguate_cols() (#40). New cdm_rename() (#41) cdm_select() (#50) renaming selecting columns dm tables. New length.dm() length<-.dm() (#53). $, [[, [, names(), str() length() now implemented dm objects (read-). New enum_pk_candidates().","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"minor-changes-0-0-2","dir":"Changelog","previous_headings":"","what":"Minor changes","title":"dm 0.0.2","text":"browse_docs() opens pkgdown website (#36). as_dm() now also accepts list remote tables (#30). Use {tidyselect} syntax cdm_rename_tbl() cdm_select_tbl() (#14). tibbles returned cdm_enum_fk_candidates() cdm_enum_pk_candidates() contain column explains reasons rejection human-readable form (#12). Improve compatibility RPostgres. create_graph_from_dm() longer fails presence cycles (#10). suggest {RSQLite}. cdm_filter() longer requires primary key. decompose_table() adds new column table end. tbl() now fails table part data model.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-0-0-2","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 0.0.2","text":"Add setup article (#7).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-0-2","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.0.2","text":"Using simpler internal data structure store primary foreign key relations (#26). New nse_function() replaces h() marking functions NSE avoid R CMD check warnings. Simplified internal data structure creation new operations update dm becomes easier. copying dm database, NULL constraints set creation table. removes necessity store column types. Using {RPostgres} instead {RPostgreSQL} testing.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-001","dir":"Changelog","previous_headings":"","what":"dm 0.0.1","title":"dm 0.0.1","text":"Initial GitHub release.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"creating-dm-objects-and-basic-functions-0-0-1","dir":"Changelog","previous_headings":"","what":"Creating dm objects and basic functions:","title":"dm 0.0.1","text":"dm() new_dm() validate_dm() cdm_get_src() cdm_get_tables() cdm_get_data_model() is_dm() as_dm()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"primary-keys-0-0-1","dir":"Changelog","previous_headings":"","what":"Primary keys","title":"dm 0.0.1","text":"cdm_add_pk() cdm_has_pk() cdm_get_pk() cdm_get_all_pks() cdm_rm_pk() cdm_check_for_pk_candidates()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"foreign-keys-0-0-1","dir":"Changelog","previous_headings":"","what":"Foreign keys","title":"dm 0.0.1","text":"cdm_add_fk() cdm_has_fk() cdm_get_fk() cdm_get_all_fks() cdm_rm_fk() cdm_check_for_fk_candidates()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"visualization-0-0-1","dir":"Changelog","previous_headings":"","what":"Visualization","title":"dm 0.0.1","text":"cdm_draw() cdm_set_colors() cdm_get_colors() cdm_get_available_colors()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"flattening-0-0-1","dir":"Changelog","previous_headings":"","what":"Flattening","title":"dm 0.0.1","text":"cdm_join_tbl()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"filtering-0-0-1","dir":"Changelog","previous_headings":"","what":"Filtering","title":"dm 0.0.1","text":"cdm_filter() cdm_semi_join() cdm_nrow()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"interaction-with-dbs-0-0-1","dir":"Changelog","previous_headings":"","what":"Interaction with DBs","title":"dm 0.0.1","text":"cdm_copy_to() cdm_set_key_constraints() cdm_learn_from_db()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"utilizing-foreign-key-relations-0-0-1","dir":"Changelog","previous_headings":"","what":"Utilizing foreign key relations","title":"dm 0.0.1","text":"cdm_is_referenced() cdm_get_referencing_tables() cdm_select() cdm_find_conn_tbls()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"table-surgery-0-0-1","dir":"Changelog","previous_headings":"","what":"Table surgery","title":"dm 0.0.1","text":"decompose_table() reunite_parent_child() reunite_parent_child_from_list()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"check-keys-and-cardinalities-0-0-1","dir":"Changelog","previous_headings":"","what":"Check keys and cardinalities","title":"dm 0.0.1","text":"check_key() check_if_subset() check_set_equality() check_cardinality_0_n() check_cardinality_1_n() check_cardinality_1_1() check_cardinality_0_1()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"miscellaneous-0-0-1","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"dm 0.0.1","text":"cdm_nycflights13() cdm_rename_table() cdm_rename_tables()","code":""}] +[{"path":"https://dm.cynkra.com/CODE_OF_CONDUCT.html","id":null,"dir":"","previous_headings":"","what":"Contributor Code of Conduct","title":"Contributor Code of Conduct","text":"contributors maintainers project, pledge respect people contribute reporting issues, posting feature requests, updating documentation, submitting pull requests patches, activities. committed making participation project harassment-free experience everyone, regardless level experience, gender, gender identity expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion. Examples unacceptable behavior participants include use sexual language imagery, derogatory comments personal attacks, trolling, public private harassment, insults, unprofessional conduct. Project maintainers right responsibility remove, edit, reject comments, commits, code, wiki edits, issues, contributions aligned Code Conduct. Project maintainers follow Code Conduct may removed project team. Instances abusive, harassing, otherwise unacceptable behavior may reported opening issue contacting one project maintainers. Code Conduct adapted Contributor Covenant (https://www.contributor-covenant.org), version 1.0.0, available https://contributor-covenant.org/version/1/0/0/.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":null,"dir":"","previous_headings":"","what":"Contributing to dm","title":"Contributing to dm","text":"outlines propose change dm set local development environment test databases.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"fixing-typos","dir":"","previous_headings":"","what":"Fixing typos","title":"Contributing to dm","text":"can fix typos, spelling mistakes, grammatical errors documentation directly using GitHub web interface, long changes made source file. generally means ’ll need edit roxygen2 comments .R, .Rd file. can find .R file generates .Rd reading comment first line.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"bigger-changes","dir":"","previous_headings":"","what":"Bigger changes","title":"Contributing to dm","text":"want make bigger change, ’s good idea first file issue make sure someone team agrees ’s needed. ’ve found bug, please file issue illustrates bug minimal reprex (also help write unit test, needed).","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"pull-request-process","dir":"","previous_headings":"Bigger changes","what":"Pull request process","title":"Contributing to dm","text":"Fork package clone onto computer. haven’t done , recommend using usethis::create_from_github(\"cynkra/dm\", fork = TRUE). Install development dependencies devtools::install_dev_deps(), make sure package passes R CMD check running devtools::check(). R CMD check doesn’t pass cleanly, ’s good idea ask help continuing. Create Git branch pull request (PR). recommend using usethis::pr_init(\"brief-description--change\"). Make changes, commit git, create PR running usethis::pr_push(), following prompts browser. title PR briefly describe change. body PR contain Fixes #issue-number. user-facing changes, add bullet top NEWS.md (.e. just first header). Follow style described https://style.tidyverse.org/news.html.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"general-remarks","dir":"","previous_headings":"Code style & design","what":"General remarks","title":"Contributing to dm","text":"New code follow tidyverse style guide. can use styler package apply styles, please don’t restyle code nothing PR. use roxygen2, Markdown syntax, documentation. use specific branch downlit knitting README.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"testing","dir":"","previous_headings":"Code style & design","what":"Testing","title":"Contributing to dm","text":"use {testthat}. exported functions tested. R scripts “tests/testthat/”” whose name start “helper” loaded devtools::load_all() available tests interactive debugging, can’t found :::. “helper-src.R” implements complex mechanism dm creating functions, dm_for_filter(), create remote dm different database management system depending context. allows tests use run different setups github actions. Additionally my_db_test_src() return relevant database. order test databases locally (typically debug CI tests fails can’t debug online log) can set environ variable “DM_TEST_SRC” “postgres”, “mariadb”, “mssql”, “duckdb” “sqlite”. might setup credentials “helper-config-db.R” . useful expectations can found “helper-expectations.R”. “helper-skip.R” helpers skip tests contexts, might useful instance feature supported databases. using expect_snapshot() DBMS dependent call (.e call uses dm_for_filter() copies my_db_test_src()), variant argument set my_test_src_name (global variable created loading helpers) snapshots end different directories.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"function-naming","dir":"","previous_headings":"Code style & design","what":"Function naming","title":"Contributing to dm","text":"See vignette function naming logic.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"error-messages","dir":"","previous_headings":"Code style & design","what":"Error messages","title":"Contributing to dm","text":"strive standardise error messages {dm}. failure triggered abort() function defined “error-helpers.R” error class defined dm_error_full() error message created separate function. Please follow pattern used \"error-helpers.R\". Exceptions might exist mostly waiting harmonised.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"test-databases","dir":"","previous_headings":"","what":"Test databases","title":"Contributing to dm","text":"repository comes docker-compose.yml file sets databases required testing. shell commands expected run top-level directory clone repository.","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"macos-only-install-colima-to-run-docker-containers","dir":"","previous_headings":"Test databases","what":"macOS only: Install colima to run Docker containers","title":"Contributing to dm","text":"Take note address output, used later. See also https://docs.google.com/document/d/1axInaYK6oK6riRio72uTAeQazuork1X0clY9UL9gYoE/edit?usp=sharing details colima.","code":"brew install colima docker-compose colima start -c 4 -m 4 --vm-type vz --vz-rosetta --network-address colima status # INFO[0000] colima is running using macOS Virtualization.Framework # INFO[0000] arch: aarch64 # INFO[0000] runtime: docker # INFO[0000] mountType: virtiofs # INFO[0000] address: 192.168.64.2 # INFO[0000] socket: unix:///Users/kirill/.colima/default/docker.sock"},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"mssql-odbc-drivers","dir":"","previous_headings":"Test databases","what":"mssql: ODBC drivers","title":"Contributing to dm","text":"Linux: https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing--microsoft-odbc-driver--sql-server?view=sql-server-ver16&tabs=ubuntu18-install%2Calpine17-install%2Cdebian8-install%2Credhat7-13-install%2Crhel7-offline macOS: https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/install-microsoft-odbc-driver-sql-server-macos?view=sql-server-ver16","code":""},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"start-new-database-containers","dir":"","previous_headings":"Test databases","what":"Start new database containers","title":"Contributing to dm","text":"","code":"make db-start # May take several minutes to pull the images"},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"start-database-containers-without-forcing-recreation","dir":"","previous_headings":"Test databases","what":"Start database containers without forcing recreation","title":"Contributing to dm","text":"","code":"make db-restart # May take several minutes to pull the images"},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"connectivity-test","dir":"","previous_headings":"Test databases","what":"Connectivity test","title":"Contributing to dm","text":"macOS: Linux: Controlled environment variables: DM_TEST_DOCKER_HOST: 127.0.0.1 localhost Linux, see output colima status macOS (Linux, using localhost instead 127.0.0.1 may cause problems MariaDB.) See also Makefile. recommended adapt .Renviron connectivity established. subsequent instructions omit setting environment variables explicitly.","code":"DM_TEST_DOCKER_HOST=192.168.64.2 make connect DM_TEST_DOCKER_HOST=127.0.0.1 make connect"},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"test-against-a-specific-database-backend","dir":"","previous_headings":"Test databases","what":"Test against a specific database backend","title":"Contributing to dm","text":"","code":"make test-postgres"},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"test-against-all-backends","dir":"","previous_headings":"Test databases","what":"Test against all backends","title":"Contributing to dm","text":"","code":"make -j1 test"},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"test-on-docker","dir":"","previous_headings":"Test databases","what":"Test on Docker","title":"Contributing to dm","text":"","code":"# make docker-build # not necessary, image available on ghcr.io make docker-test"},{"path":"https://dm.cynkra.com/CONTRIBUTING.html","id":"code-of-conduct","dir":"","previous_headings":"","what":"Code of Conduct","title":"Contributing to dm","text":"Please note dm project released Contributor Code Conduct. contributing project agree abide terms.","code":""},{"path":"https://dm.cynkra.com/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2022 cynkra GmbH. Permission hereby granted, free charge, person obtaining copy software associated documentation files (“Software”), deal Software without restriction, including without limitation rights use, copy, modify, merge, publish, distribute, sublicense, /sell copies Software, permit persons Software furnished , subject following conditions: copyright notice permission notice shall included copies substantial portions Software. SOFTWARE PROVIDED “”, WITHOUT WARRANTY KIND, EXPRESS IMPLIED, INCLUDING LIMITED WARRANTIES MERCHANTABILITY, FITNESS PARTICULAR PURPOSE NONINFRINGEMENT. EVENT SHALL AUTHORS COPYRIGHT HOLDERS LIABLE CLAIM, DAMAGES LIABILITY, WHETHER ACTION CONTRACT, TORT OTHERWISE, ARISING , CONNECTION SOFTWARE USE DEALINGS SOFTWARE.","code":""},{"path":"https://dm.cynkra.com/TODO.html","id":null,"dir":"","previous_headings":"","what":"FIXME NEXT","title":"FIXME NEXT","text":"un-skip tests","code":""},{"path":"https://dm.cynkra.com/TODO.html","id":"later","dir":"","previous_headings":"","what":"Later","title":"FIXME NEXT","text":"Store keys objects dm, much easier debugging Add “strict mode” GitHub Actions: validation dm_from_def() Named PK unique constraints: https://github.com/r-dbi/DBI/pull/351#issuecomment-833438890 dm_paste(): remove select argument documentation, via _impl() function takes dots argument, like dm_rm_pk() Use copy_to(temporary = FALSE) sqlite duckdb: use file can discarded Requires schema support databases","code":""},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"from-database-dm_from_con","dir":"Articles","previous_headings":"Create dm…","what":"from database: dm_from_con()","title":"Relational data with dm: Cheat sheet","text":"","code":"con <- DBI::dbConnect(...) dm_from_con(con)"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"from-data-frames-dmdf1-df2----","dir":"Articles","previous_headings":"Create dm…","what":"from data frames: dm(df1, df2, ...)","title":"Relational data with dm: Cheat sheet","text":"","code":"dm(df1, df2, df3)"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"from-dm-dmdm1-df1---","dir":"Articles","previous_headings":"Create dm…","what":"from dm: dm(dm1, df1...)","title":"Relational data with dm: Cheat sheet","text":"","code":"dm(dm1, df1) dm(dm1, dm2)"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"add-keys-dm_add_pk-dm_add_fk","dir":"Articles","previous_headings":"Create dm…","what":"Add keys: dm_add_pk(), dm_add_fk()","title":"Relational data with dm: Cheat sheet","text":"Automatic MariaDB, SQL Server, Postgres, others.","code":""},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"primary-keys","dir":"Articles","previous_headings":"Create dm… > Add keys: dm_add_pk(), dm_add_fk()","what":"Primary keys","title":"Relational data with dm: Cheat sheet","text":"Identify potential primary keys: dm_enum_pk_candidates(): columns, candidate, . Add primary keys: Identify potential foreign keys: dm_enum_fk_candidates(): columns, candidate, . Add foreign keys:","code":"dm1 |> dm_add_pk(table, columns) dm1 |> dm_add_fk(table, column)"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"dm-objects-relational-data-models","dir":"Articles","previous_headings":"","what":"dm objects: relational data models","title":"Relational data with dm: Cheat sheet","text":"dm package provides grammar relational data models. helps maintain referential integrity. dm behaves like list tables (data frames lazy tables) capturing relationships tables.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"select-tables-dm_select_tbldm1----","dir":"Articles","previous_headings":"Resize dm","what":"Select tables: dm_select_tbl(dm1, ...)","title":"Relational data with dm: Cheat sheet","text":"","code":"dm1 |> dm_select_tbl(-df3)"},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"select-columns-dm_selectdm1-table----","dir":"Articles","previous_headings":"Resize dm","what":"Select columns: dm_select(dm1, table, ...)","title":"Relational data with dm: Cheat sheet","text":"Automatic update dm meta-information table relations.","code":"dm1 |> dm_select(df3, -c3, -c4)"},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"filter-rows-dm_filterdm1-table-pred","dir":"Articles","previous_headings":"Resize dm","what":"Filter rows: dm_filter(dm1, table = (pred))","title":"Relational data with dm: Cheat sheet","text":"Filter rows table condition defined, also directly/indirectly connected tables.","code":"dm1 |> dm_filter(df3 = (x == \"val\"))"},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"control-diagram-level-of-detail-display","dir":"Articles","previous_headings":"Visualize dm: dm_draw()","what":"Control diagram level of detail: display…","title":"Relational data with dm: Cheat sheet","text":"keys (default): dm_draw(view_type = \"keys_only\"). variables: dm_draw(view_type = \"\"). table names: dm_draw(view_type = \"title_only\").","code":"dm |> dm_draw( view_type = \"title_only\", rankdir = \"TB\" )"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"control-diagram-scope","dir":"Articles","previous_headings":"Visualize dm: dm_draw()","what":"Control diagram scope","title":"Relational data with dm: Cheat sheet","text":"visualize fewer tables first use dm_select_tbl().","code":""},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"control-diagram-colors-dm_set_colors","dir":"Articles","previous_headings":"Visualize dm: dm_draw()","what":"Control diagram colors: dm_set_colors()","title":"Relational data with dm: Cheat sheet","text":"","code":"dm |> dm_set_colors( pink = flights, orange = starts_with(\"air\") ) |> dm_draw()"},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"dm_examine_constraints","dir":"Articles","previous_headings":"Data checks","what":"dm_examine_constraints()","title":"Relational data with dm: Cheat sheet","text":"tibble information key constraints met violated.","code":""},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"dm_examine_cardinalities","dir":"Articles","previous_headings":"Data checks","what":"dm_examine_cardinalities()","title":"Relational data with dm: Cheat sheet","text":"tibble information cardinality foreign keys constraints.","code":""},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"check_keydf-col1","dir":"Articles","previous_headings":"Data checks","what":"check_key(df, col1)","title":"Relational data with dm: Cheat sheet","text":"returns error unique key.","code":""},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"check_subsetdf1-df2","dir":"Articles","previous_headings":"Data checks","what":"check_subset(df1, df2)","title":"Relational data with dm: Cheat sheet","text":"returns error df1 subset df2.","code":""},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"check_set_equalitydf1-df2","dir":"Articles","previous_headings":"Data checks","what":"check_set_equality(df1, df2)","title":"Relational data with dm: Cheat sheet","text":"returns error df1 df2 sets.","code":""},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"fix-column-names-dm_disambiguate_cols","dir":"Articles","previous_headings":"Data checks","what":"Fix column names: dm_disambiguate_cols()","title":"Relational data with dm: Cheat sheet","text":"dm_disambiguate_cols(dm1) ensures columns dm unique names.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"wide-tibble-cascade-joins-with-dm_flatten_to_tbl","dir":"Articles","previous_headings":"Transform dm into tibble","what":"Wide tibble: Cascade joins with dm_flatten_to_tbl()","title":"Relational data with dm: Cheat sheet","text":"direct neighbours: dm_flatten_to_tbl() neighbours: dm_flatten_to_tbl(.recursive = TRUE)","code":"dm1 |> dm_flatten_to_tbl( .start = df1 ) dm1 |> dm_flatten_to_tbl( .start = df1, .recursive = TRUE )"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"single-tibble-dm-dm_wrap_tbl","dir":"Articles","previous_headings":"Transform dm into tibble","what":"Single tibble dm: dm_wrap_tbl()","title":"Relational data with dm: Cheat sheet","text":"Parent tables packed — dm_pack_tbl(). Child tables nested — dm_nest_tbl().","code":"dm1 |> dm_wrap_tbl( root = green_df )"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"retrieve-one-table-of-the-dm-pull_tbl","dir":"Articles","previous_headings":"Transform dm into tibble","what":"Retrieve one table of the dm: pull_tbl()","title":"Relational data with dm: Cheat sheet","text":"dm zoomed, retrieve zoomed table automatically.","code":"dm1 |> pull_tbl( dm1, green_df, keyed = TRUE ) dm1 |> dm_zoom_to(green_df) |> pull_tbl()"},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"method-1-deconstruct-and-reconstruct","dir":"Articles","previous_headings":"Mutate, create, analyze tables","what":"Method 1: deconstruct and reconstruct","title":"Relational data with dm: Cheat sheet","text":"dm_get_tables(keyed = TRUE): keep information primary foreign keys). tidyverse pipeline table interest. Optional: update dm object:","code":"dm_tbl <- dm1 |> dm_get_tables(keyed = TRUE) new_table1 <- dm_tbl$table1 |> mutate(...) dm1 |> dm_select_tbl(-table1) |> dm(table1 = new_table1)"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"method-2-zoom","dir":"Articles","previous_headings":"Mutate, create, analyze tables","what":"Method 2: zoom","title":"Relational data with dm: Cheat sheet","text":"dm_zoom_to(): Zoom table. tidyverse pipeline (mutate(), etc.). dm_update_zoomed() (replace) / dm_insert_zoomed()","code":"zoomed_dm1 <- dm1 |> dm_zoom_to(green_df) zoomed_dm2 <- zoomed_dm1 |> mutate(var = thing) dm3 <- zoomed_dm2 |> dm_update_zoomed()"},{"path":[]},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"export-dm-object-to-database-copy_dm_to","dir":"Articles","previous_headings":"Modify database source of a dm","what":"Export dm object to database: copy_dm_to()","title":"Relational data with dm: Cheat sheet","text":"Need database connection — DBI::dbConnect().","code":"con <- DBI::dbConnect(...) # Persistent tables: persistent_dm <- copy_dm_to( con, dm1, temporary = FALSE ) DBI::dbDisconnect(con)"},{"path":"https://dm.cynkra.com/articles/cheatsheet.html","id":"insert-update-or-remove-rows-in-a-dm","dir":"Articles","previous_headings":"","what":"Insert, update or remove rows in a dm","title":"Relational data with dm: Cheat sheet","text":"Methods: dm_rows_insert(dm1, dm2): adds new rows dm_rows_update(dm1, dm2): changes values rows dm_rows_patch(dm1, dm2): fills missing values dm_rows_upsert(dm1, dm2): adds new changes rows dm_rows_delete(dm1, dm2): deletes rows dm immutable, except functions mutable backend (database) in_place = TRUE.","code":"dm1 |> dm_rows_insert(dm2, in_place = FALSE) dm1 |> dm_rows_insert(dm2, in_place = TRUE)"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"creating-a-dm-object","dir":"Articles","previous_headings":"","what":"Creating a dm object","title":"Getting started with dm","text":"dm objects can created individual tables loaded directly relational data model RDBMS (relational database management system). demonstration, ’re going work model hosted public server. first thing need connection RDBMS hosting data. create dm object RDBMS using dm_from_con(), passing connection object just created first argument. dm object interrogates RDBMS table column information, primary foreign keys. Currently, primary foreign keys available SQL Server, Postgres MariaDB.","code":"library(RMariaDB) fin_db <- dbConnect( MariaDB(), username = \"guest\", password = \"relational\", dbname = \"Financial_ijs\", host = \"relational.fit.cvut.cz\" ) #> Error in `dm:::financial_db_con()`: #> ! Can't connect to relational.fit.cvut.cz or databases.pacha.dev: #> Failed to connect: Can't connect to MySQL server on 'relational.fit.cvut.cz:3306' (101) #> Failed to connect: Can't connect to MySQL server on 'databases.pacha.dev:3306' (110) library(dm) fin_dm <- dm_from_con(fin_db) #> Error in eval(expr, envir, enclos): object 'fin_db' not found fin_dm #> Error in eval(expr, envir, enclos): object 'fin_dm' not found"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"selecting-tables","dir":"Articles","previous_headings":"","what":"Selecting tables","title":"Getting started with dm","text":"dm object can accessed like named list tables: Additionally, dm functions pipe-friendly support tidy evaluation. can use [ dm_select_tbl() verb derive smaller dm loans, accounts, districts trans tables:","code":"names(fin_dm) #> Error in eval(expr, envir, enclos): object 'fin_dm' not found fin_dm$loans #> Error in eval(expr, envir, enclos): object 'fin_dm' not found dplyr::count(fin_dm$trans) #> Error in eval(expr, envir, enclos): object 'fin_dm' not found fin_dm_small <- fin_dm[c(\"loans\", \"accounts\", \"districts\", \"trans\")] #> Error in eval(expr, envir, enclos): object 'fin_dm' not found fin_dm_small <- fin_dm %>% dm_select_tbl(loans, accounts, districts, trans) #> Error in eval(expr, envir, enclos): object 'fin_dm' not found"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"linking-tables-by-adding-keys","dir":"Articles","previous_headings":"","what":"Linking tables by adding keys","title":"Getting started with dm","text":"many cases, dm_from_con() already returns dm keys set. , dm allows us define primary foreign keys . , use learn_keys = FALSE obtain dm object tables. data model, id columns uniquely identify records accounts loans tables, used primary key. primary key defined dm_add_pk(). loan linked one account via account_id column loans table, relationship established dm_add_fk().","code":"library(dm) fin_dm_small <- dm_from_con(fin_db, learn_keys = FALSE) %>% dm_select_tbl(loans, accounts, districts, trans) #> Error in eval(expr, envir, enclos): object 'fin_db' not found fin_dm_keys <- fin_dm_small %>% dm_add_pk(table = accounts, columns = id) %>% dm_add_pk(loans, id) %>% dm_add_fk(table = loans, columns = account_id, ref_table = accounts) %>% dm_add_pk(trans, id) %>% dm_add_fk(trans, account_id, accounts) %>% dm_add_pk(districts, id) %>% dm_add_fk(accounts, district_id, districts) #> Error in eval(expr, envir, enclos): object 'fin_dm_small' not found"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"visualizing-a-data-model","dir":"Articles","previous_headings":"","what":"Visualizing a data model","title":"Getting started with dm","text":"diagram data model quickest way verify ’re right track. can display visual summary dm time. default display table name, defined keys, links tables. Visualizing dm current state, can see keys created link tables together. Color guides eye.","code":"fin_dm_keys %>% dm_set_colors(darkgreen = c(loans, accounts), darkblue = trans, grey = districts) %>% dm_draw() #> Error in eval(expr, envir, enclos): object 'fin_dm_keys' not found"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"accessing-a-data-model-as-a-table","dir":"Articles","previous_headings":"","what":"Accessing a data model as a table","title":"Getting started with dm","text":"want perform modeling analysis relational model, need transform tabular format R functions can work . argument recursive = TRUE, dm_flatten_to_tbl() automatically follow foreign keys across tables gather available columns single table. Apart rows printed , data fetched database. Use select() reduce number columns fetched, collect() retrieve entire result local processing.","code":"fin_dm_keys %>% dm_flatten_to_tbl(loans, .recursive = TRUE) #> Error in eval(expr, envir, enclos): object 'fin_dm_keys' not found loans_df <- fin_dm_keys %>% dm_flatten_to_tbl(loans, .recursive = TRUE) %>% select(id, amount, duration, A3) %>% collect() #> Error in eval(expr, envir, enclos): object 'fin_dm_keys' not found model <- lm(amount ~ duration + A3, data = loans_df) #> Error in eval(mf, parent.frame()): object 'loans_df' not found model #> Error in eval(expr, envir, enclos): object 'model' not found"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"operations-on-table-data-within-a-dm","dir":"Articles","previous_headings":"","what":"Operations on table data within a dm","title":"Getting started with dm","text":"don’t need take extra step exporting data work . dm object, complete access dplyr’s data manipulation verbs. operate data within individual tables. work particular table use dm_zoom_to() set context chosen table. can perform dplyr operations want. Note , example, use dm_insert_zoomed() add results new table data model. table temporary deleted session ends. want make permanent changes data model RDBMS, please see “Persisting results” section vignette(\"howto-dm-db\").","code":"fin_dm_total <- fin_dm_keys %>% dm_zoom_to(loans) %>% group_by(account_id) %>% summarize(total_amount = sum(amount, na.rm = TRUE)) %>% ungroup() %>% dm_insert_zoomed(\"total_loans\") #> Error in eval(expr, envir, enclos): object 'fin_dm_keys' not found fin_dm_total$total_loans #> Error in eval(expr, envir, enclos): object 'fin_dm_total' not found"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"checking-constraints","dir":"Articles","previous_headings":"","what":"Checking constraints","title":"Getting started with dm","text":"’s always smart check data model follows specifications. building model changing existing models adding tables keys, even important new model validated. dm_examine_constraints() checks primary foreign keys reports violate expected constraints. constraint checking, including cardinality, finding candidate columns keys, normalization, see vignette(\"tech-dm-low-level\").","code":"fin_dm_total %>% dm_examine_constraints() #> Error in eval(expr, envir, enclos): object 'fin_dm_total' not found #> Error in h(simpleError(msg, call)): error in evaluating the argument 'conn' in selecting a method for function 'dbDisconnect': object 'fin_db' not found"},{"path":"https://dm.cynkra.com/articles/dm.html","id":"next-steps","dir":"Articles","previous_headings":"","what":"Next Steps","title":"Getting started with dm","text":"Now introduced basic operation dm, next step learn dm methods particular use case requires. data RDBMS? move vignette(\"howto-dm-db\") detailed look working existing relational data model. data data frames, want read vignette(\"howto-dm-df\") next. like know relational data models order get dm, check vignette(\"howto-dm-theory\"). ’re familiar relational data models, want know work dm, vignette(\"tech-dm-join\"), vignette(\"tech-dm-filter\"), vignette(\"tech-dm-zoom\") good next step.","code":""},{"path":"https://dm.cynkra.com/articles/dm.html","id":"standing-on-the-shoulders-of-giants","dir":"Articles","previous_headings":"","what":"Standing on the shoulders of giants","title":"Getting started with dm","text":"{dm} package follows tidyverse principles: dm objects immutable (data never overwritten place) functions used dm objects pipeable (.e., return new dm table objects) tidy evaluation used (unquoted function arguments supported) {dm} package builds heavily upon {datamodelr} package, upon tidyverse. ’re looking forward good collaboration! {polyply} package similar intent slightly different interface. {data.cube} package quite intent using array-like interface. Articles {rquery} package discuss join controllers join dependency sorting, intent move declaration table relationships code data. {tidygraph} package stores network two related tables nodes edges, compatible {dplyr} workflows. object-oriented programming languages, object-relational mapping similar concept attempts map set related tables class hierarchy.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-copy.html","id":"copy-models-or-copy-tables","dir":"Articles","previous_headings":"","what":"Copy models or copy tables?","title":"Copy tables to and from a database","text":"Using {dm} can persist entire relational data model single function call. copy_dm_to() move entire model destination RDBMS. may need deploy new model. may want add new tables existing model RDBMS. requirements can handled using compute() copy_to() methods. Calling compute() copy_to() requires write permission RDBMS; otherwise, error returned. Therefore, following examples, instantiate test dm object move local SQLite database full permissions. {dm} {dbplyr} designed treat code used manipulate local SQLite database remote RDBMS similarly. steps already introduced vignette(\"howto-dm-db\") discussed detail Copying relational model section.","code":"library(dm) library(dbplyr) fin_dm <- dm_financial() %>% dm_select_tbl(-trans) %>% collect() #> Error in `financial_db_con()` at dm/R/financial.R:18:3: #> ! Can't connect to relational.fit.cvut.cz or databases.pacha.dev: #> Failed to connect: Can't connect to MySQL server on 'relational.fit.cvut.cz:3306' (101) #> Failed to connect: Can't connect to MySQL server on 'databases.pacha.dev:3306' (110) local_db <- DBI::dbConnect(RSQLite::SQLite()) deployed_dm <- copy_dm_to(local_db, fin_dm, temporary = FALSE) #> Error in eval(expr, envir, enclos): object 'fin_dm' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-copy.html","id":"copying-tables","dir":"Articles","previous_headings":"","what":"Copying and persisting individual tables","title":"Copy tables to and from a database","text":"part data analysis, may combine tables multiple sources create links existing tables via foreign keys, create new tables holding data summaries. example , already discussed vignette(\"howto-dm-db\"), computes total amount loans account. derived table total_loans lazy table powered {dbplyr} package: results materialized, instead SQL query built executed time data requested. avoid recomputing query every time use total_loans, call compute() right inserting derived table dm_insert_tbl(). compute() forces computation query stores full results table RDBMS. Note differences queries returned sql_render(). my_dm_total$total_loans still lazily evaluated full query constructed chain operations generated still place needs run access . Contrast my_dm_total_computed$total_loans, query realized accessing rows requires simple SELECT * statement. table name, dbplyr_001, automatically generated name argument supplied compute(). default create temporary tables. want results persist across sessions permanent tables, compute() must called argument temporary = FALSE table name name argument. See ?compute details. called whole dm object (without zoom), compute() materializes tables new temporary tables executing associated SQL query storing full results. Depending size data, may take considerable time may even infeasible. may useful occasionally create snapshots data subject change.","code":"my_dm_total <- deployed_dm %>% dm_zoom_to(loans) %>% group_by(account_id) %>% summarize(total_amount = sum(amount, na.rm = TRUE)) %>% ungroup() %>% dm_insert_zoomed(\"total_loans\") #> Error in eval(expr, envir, enclos): object 'deployed_dm' not found my_dm_total$total_loans %>% sql_render() #> Error in eval(expr, envir, enclos): object 'my_dm_total' not found my_dm_total_computed <- deployed_dm %>% dm_zoom_to(loans) %>% group_by(account_id) %>% summarize(total_amount = sum(amount, na.rm = TRUE)) %>% ungroup() %>% compute() %>% dm_insert_zoomed(\"total_loans\") #> Error in eval(expr, envir, enclos): object 'deployed_dm' not found my_dm_total_computed$total_loans %>% sql_render() #> Error in eval(expr, envir, enclos): object 'my_dm_total_computed' not found #> Error in eval(expr, envir, enclos): object 'my_dm_total_computed' not found my_dm_total_snapshot <- my_dm_total %>% compute() #> Error in eval(expr, envir, enclos): object 'my_dm_total' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-copy.html","id":"data-frames","dir":"Articles","previous_headings":"","what":"Adding local data frames to an RDBMS","title":"Copy tables to and from a database","text":"need add local data frames existing dm object, use copy_to() method. takes arguments copy_dm_to(), except second argument takes data frame rather dm. result derived dm object contains new table. demonstrate use copy_to(), example use {dm} pull consolidated data several tables RDBMS, estimate linear model data, insert residuals back RDBMS link existing tables. done local SQLite database, process work unchanged supported RDBMS. Please note use recursive = TRUE dm_flatten_to_tbl(). method gathers linked information single wide table. follows foreign key relations starting table supplied argument gathers columns related tables, disambiguating column names goes. code, select() statement isolates columns need model. collect() works similarly compute() forcing execution underlying SQL query, returns results local tibble. , local tibble, loans_df, used estimate linear model residuals stored along original associated id new tibble, loans_residuals. id column necessary link new tibble tables dm collected . Adding loans_residuals dm done using copy_to(). call method includes argument temporary = FALSE want table persist beyond current session. pipeline create necessary primary foreign keys integrate table rest relational model. information key creation, see vignette(\"howto-dm-db\") vignette(\"howto-dm-theory\").","code":"loans_df <- deployed_dm %>% dm_flatten_to_tbl(loans, .recursive = TRUE) %>% select(id, amount, duration, A3) %>% collect() #> Error in eval(expr, envir, enclos): object 'deployed_dm' not found model <- lm(amount ~ duration + A3, data = loans_df) #> Error in eval(mf, parent.frame()): object 'loans_df' not found loans_residuals <- tibble::tibble( id = loans_df$id, resid = unname(residuals(model)) ) #> Error: object 'loans_df' not found loans_residuals #> Error in eval(expr, envir, enclos): object 'loans_residuals' not found my_dm_sqlite_resid <- copy_to(deployed_dm, loans_residuals, temporary = FALSE) %>% dm_add_pk(loans_residuals, id) %>% dm_add_fk(loans_residuals, id, loans) #> Error in eval(expr, envir, enclos): object 'deployed_dm' not found my_dm_sqlite_resid %>% dm_set_colors(violet = loans_residuals) %>% dm_draw() #> Error in eval(expr, envir, enclos): object 'my_dm_sqlite_resid' not found my_dm_sqlite_resid %>% dm_examine_constraints() #> Error in eval(expr, envir, enclos): object 'my_dm_sqlite_resid' not found my_dm_sqlite_resid$loans_residuals #> Error in eval(expr, envir, enclos): object 'my_dm_sqlite_resid' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-copy.html","id":"copy-model","dir":"Articles","previous_headings":"","what":"Persisting a relational model with copy_dm_to()","title":"Copy tables to and from a database","text":"Persistence, intended make permanent changes, requires write access source RDBMS. code repeat code opened Copying persisting individual tables section beginning tutorial. uses {dm} convenience function dm_financial() create dm object corresponding data model public dataset repository. dm object downloaded locally first, deploying local SQLite database. dm_select_tbl() used exclude transaction table trans due size, collect() method retrieves remaining tables returns local dm object. just simple move local relational model RDBMS. Note call copy_dm_to() argument temporary = FALSE supplied. Without argument, model still copied database, argument default temporary = TRUE data deleted session ends. output can observe src deployed_dm SQLite, fin_dm source indicated local data model. Copying relational model empty database simplest use case copy_dm_to(). want copy model RDBMS already populated, aware copy_dm_to() overwrite pre-existing tables. case need use table_names argument give tables unique names. table_names can named character vector, names matching table names dm object values containing desired names RDBMS, function one-sided formula. example , paste0() used add prefix table names provide uniqueness. Note different table names dup_dm$accounts deployed_dm$accounts. , table name accounts dm object, link different tables database. dup_dm, table backed table dup_accounts RDBMS. dm_deployed$accounts shows us table still backed accounts table copy_dm_to() operation performed preceding example. Managing tables RDBMS outside scope dm. find need remove tables perform operations directly RDBMS, see {DBI} package. done, forget disconnect:","code":"dm_financial() %>% dm_nrow() #> Error in `financial_db_con()` at dm/R/financial.R:18:3: #> ! Can't connect to relational.fit.cvut.cz or databases.pacha.dev: #> Failed to connect: Can't connect to MySQL server on 'relational.fit.cvut.cz:3306' (101) #> Failed to connect: Can't connect to MySQL server on 'databases.pacha.dev:3306' (110) fin_dm <- dm_financial() %>% dm_select_tbl(-trans) %>% collect() #> Error in `financial_db_con()` at dm/R/financial.R:18:3: #> ! Can't connect to relational.fit.cvut.cz or databases.pacha.dev: #> Failed to connect: Can't connect to MySQL server on 'relational.fit.cvut.cz:3306' (101) #> Failed to connect: Can't connect to MySQL server on 'databases.pacha.dev:3306' (110) fin_dm #> Error in eval(expr, envir, enclos): object 'fin_dm' not found destination_db <- DBI::dbConnect(RSQLite::SQLite()) deployed_dm <- copy_dm_to(destination_db, fin_dm, temporary = FALSE) #> Error in eval(expr, envir, enclos): object 'fin_dm' not found deployed_dm #> Error in eval(expr, envir, enclos): object 'deployed_dm' not found dup_dm <- copy_dm_to(destination_db, fin_dm, temporary = FALSE, table_names = ~ paste0(\"dup_\", .x)) #> Error in eval(expr, envir, enclos): object 'fin_dm' not found dup_dm #> Error in eval(expr, envir, enclos): object 'dup_dm' not found remote_name(dup_dm$accounts) #> Error in eval(expr, envir, enclos): object 'dup_dm' not found remote_name(deployed_dm$accounts) #> Error in eval(expr, envir, enclos): object 'deployed_dm' not found DBI::dbDisconnect(destination_db) DBI::dbDisconnect(local_db)"},{"path":"https://dm.cynkra.com/articles/howto-dm-copy.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"Copy tables to and from a database","text":"dm makes straightforward deploy complete relational model RDBMS using copy_dm_to() function. tables created relational model analysis development, compute() copy_to() can used persist (using argument temporary = FALSE) sessions copy local tables database dm. collect() method downloads entire dm object fits memory database.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-copy.html","id":"further-reading","dir":"Articles","previous_headings":"","what":"Further Reading","title":"Copy tables to and from a database","text":"need finer-grained control modifications relational model, see vignette(\"howto-dm-rows\") introduction row level operations, including updates, insertions, deletions patching. like know relational data models order get dm, check vignette(\"howto-dm-theory\"). ’re familiar relational data models want know work dm, vignette(\"tech-dm-join\"), vignette(\"tech-dm-filter\"), vignette(\"tech-dm-zoom\") good next step.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"building-a-dm-from-a-subset-of-tables","dir":"Articles","previous_headings":"","what":"Building a dm from a subset of tables","title":"Create a dm object from a database","text":"dm can also constructed individual tables views. useful want work subset database’s tables, perhaps different schemas. , use $ notation extract two tables financial database. create dm passing tables arguments. Note tables arguments source, case my_db.","code":"dbListTables(my_db) #> Error in h(simpleError(msg, call)): error in evaluating the argument 'conn' in selecting a method for function 'dbListTables': object 'my_db' not found library(dbplyr) loans <- tbl(my_db, \"loans\") #> Error in eval(expr, envir, enclos): object 'my_db' not found accounts <- tbl(my_db, \"accounts\") #> Error in eval(expr, envir, enclos): object 'my_db' not found my_manual_dm <- dm(loans, accounts) #> Error in `map()` at dm/R/dm.R:58:3: #> ℹ In index: 1. #> Caused by error: #> ! object 'loans' not found my_manual_dm #> Error in eval(expr, envir, enclos): object 'my_manual_dm' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"defining-primary-and-foreign-keys","dir":"Articles","previous_headings":"","what":"Defining Primary and Foreign Keys","title":"Create a dm object from a database","text":"Primary keys foreign keys relational database tables linked . primary key column column tuple unique value row within table. foreign key column column tuple containing primary key row another table. Foreign keys act cross references tables. specify relationships gives us relational database. information keys crash course databases, see vignette(\"howto-dm-theory\"). many cases, dm_from_con() already returns dm keys set. , dm allows us define primary foreign keys . , use learn_keys = FALSE obtain dm object tables. model diagram provided test database loosely illustrates intended relationships tables. diagram, can see loans table linked accounts table. , create links 3 steps: Add primary key id accounts table Add primary key id loans table Add foreign key account_id loans table referencing accounts table assign colors tables draw structure dm. Note foreign key created, primary key referenced table need specified, primary key must already defined. , mentioned , primary foreign key constraints database currently imported Postgres, SQL Server databases MariaDB, dm_from_con() used. process key definition needs done manually databases. instantiated dm object, can continue add tables . tables original source dm, use dm()","code":"library(dm) fin_dm <- dm_from_con(my_db, learn_keys = FALSE) #> Error in eval(expr, envir, enclos): object 'my_db' not found fin_dm #> Error in eval(expr, envir, enclos): object 'fin_dm' not found my_dm_keys <- my_manual_dm %>% dm_add_pk(accounts, id) %>% dm_add_pk(loans, id) %>% dm_add_fk(loans, account_id, accounts) %>% dm_set_colors(green = loans, orange = accounts) #> Error in eval(expr, envir, enclos): object 'my_manual_dm' not found my_dm_keys %>% dm_draw() #> Error in eval(expr, envir, enclos): object 'my_dm_keys' not found trans <- tbl(my_db, \"trans\") #> Error in eval(expr, envir, enclos): object 'my_db' not found my_dm_keys %>% dm(trans) #> Error in `map()` at dm/R/dm.R:58:3: #> ℹ In index: 1. #> Caused by error: #> ! object 'my_dm_keys' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"serializing-a-dm-object","dir":"Articles","previous_headings":"","what":"Serializing a dm object","title":"Create a dm object from a database","text":"dm object always linked database connection. connection lost dm object saved disk, e.g., saving workspace R Posit Workbench, using knitr chunks: connection tightly coupled tables dm object replaced. practical solution define, dm object project uses, function recreates using new database connection: avoid reconnecting /recreating every time need dm object, can use memoise::memoise() memoize connection /dm functions.","code":"unserialize(serialize(my_dm_keys, NULL)) #> Error in eval(expr, envir, enclos): object 'my_dm_keys' not found my_db_fun <- function() { dbConnect( MariaDB(), username = \"guest\", password = \"relational\", dbname = \"Financial_ijs\", host = \"relational.fit.cvut.cz\" ) } my_dm_fun <- function(my_db = my_db_fun()) { loans <- tbl(my_db, \"loans\") accounts <- tbl(my_db, \"accounts\") dm(loans, accounts) %>% dm_add_pk(accounts, id) %>% dm_add_pk(loans, id) %>% dm_add_fk(loans, account_id, accounts) %>% dm_set_colors(green = loans, orange = accounts) } #> Error in `dm:::financial_db_con()`: #> ! Can't connect to relational.fit.cvut.cz or databases.pacha.dev: #> Failed to connect: Can't connect to MySQL server on 'relational.fit.cvut.cz:3306' (101) #> Failed to connect: Can't connect to MySQL server on 'databases.pacha.dev:3306' (110)"},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"transient-nature-of-operations","dir":"Articles","previous_headings":"","what":"Transient nature of operations","title":"Create a dm object from a database","text":"Like R objects, dm immutable operations performed transient unless stored new variable. , like {dbplyr}, results never written database unless explicitly requested.","code":"my_dm_keys #> Error in eval(expr, envir, enclos): object 'my_dm_keys' not found my_dm_trans <- my_dm_keys %>% dm(trans) #> Error in `map()` at dm/R/dm.R:58:3: #> ℹ In index: 1. #> Caused by error: #> ! object 'my_dm_keys' not found my_dm_trans #> Error in eval(expr, envir, enclos): object 'my_dm_trans' not found my_dm_keys %>% dm_flatten_to_tbl(loans) #> Error in eval(expr, envir, enclos): object 'my_dm_keys' not found my_dm_keys %>% dm_flatten_to_tbl(loans) %>% sql_render() #> Error in eval(expr, envir, enclos): object 'my_dm_keys' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"performing-operations-on-tables-by-zooming","dir":"Articles","previous_headings":"","what":"Performing operations on tables by “zooming”","title":"Create a dm object from a database","text":"dm collection tables, wish perform operations individual table, set context operations using dm_zoom_to(). See vignette(\"tech-dm-zoom\") detail zooming. dm operations transient unless persistence explicitly requested. make chain manipulations selected table permanent, assign result dm_insert_zoomed() new object, my_dm_total. new dm object, derived my_dm_keys, new lazy table total_loans linked accounts table. Context set table “loans” using dm_zoom_to(loans). can learn zooming tutorial vignette(\"tech-dm-zoom\"). use {dplyr} functions zoomed table generate new summary table. summarize() returns temporary table one row group created preceding group_by() function. columns temporary table constrained columns passed arguments group_by() function column(s) created summarize() function. dm_insert_zoomed(\"total_loans\") adds temporary table created summarize() data model new name, total_loans. grouping variable account_id primary key, new derived table automatically linked accounts table. resulting table total_loans can accessed like table dm object. lazy table powered {dbplyr} package: results materialized; instead, SQL query built executed time data requested. Use compute() zoomed table materialize temporary table avoid recomputing. See vignette(\"howto-dm-copy\") details.","code":"my_dm_total <- my_dm_keys %>% dm_zoom_to(loans) %>% group_by(account_id) %>% summarize(total_amount = sum(amount, na.rm = TRUE)) %>% ungroup() %>% dm_insert_zoomed(\"total_loans\") #> Error in eval(expr, envir, enclos): object 'my_dm_keys' not found my_dm_total %>% dm_set_colors(violet = total_loans) %>% dm_draw() #> Error in eval(expr, envir, enclos): object 'my_dm_total' not found my_dm_total$total_loans #> Error in eval(expr, envir, enclos): object 'my_dm_total' not found my_dm_total$total_loans %>% sql_render() #> Error in eval(expr, envir, enclos): object 'my_dm_total' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"downloading-data","dir":"Articles","previous_headings":"","what":"Downloading data","title":"Create a dm object from a database","text":"becomes necessary move data locally analysis reporting, {dm} method collect() used. Operations dm objects databases limited report first ten results. collect() forces evaluation SQL queries generation complete set results. resulting tables transferred RDBMS stored local tibbles. Use method caution. sure size dataset downloading, can call dm_nrow() dm row count data model’s tables.","code":"my_dm_local <- my_dm_total %>% collect() #> Error in eval(expr, envir, enclos): object 'my_dm_total' not found my_dm_local$total_loans #> Error in eval(expr, envir, enclos): object 'my_dm_local' not found my_dm_total %>% dm_nrow() #> Error in eval(expr, envir, enclos): object 'my_dm_total' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"persist","dir":"Articles","previous_headings":"","what":"Persisting results","title":"Create a dm object from a database","text":"just simple move local relational model RDBMS using collect() download . method used copy_dm_to() takes arguments database connection dm object. example , local SQLite database used demonstrate , {dm} designed work RDBMS supported {DBI}. output, can observe src deployed_dm SQLite database, my_dm_local source local R environment. Persisting tables covered detail vignette(\"howto-dm-copy\"). done, forget disconnect:","code":"destination_db <- DBI::dbConnect(RSQLite::SQLite()) deployed_dm <- copy_dm_to(destination_db, my_dm_local) #> Error in eval(expr, envir, enclos): object 'my_dm_local' not found deployed_dm #> Error in eval(expr, envir, enclos): object 'deployed_dm' not found my_dm_local #> Error in eval(expr, envir, enclos): object 'my_dm_local' not found DBI::dbDisconnect(destination_db) DBI::dbDisconnect(my_db) #> Error in h(simpleError(msg, call)): error in evaluating the argument 'conn' in selecting a method for function 'dbDisconnect': object 'my_db' not found"},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"Create a dm object from a database","text":"tutorial, demonstrated simple load database dm object begin working . Currently, loading dm RDBMS requires manually set key relations, {dm} provides methods make straightforward. planned future versions dm support automatic key creation RDBMS. next step read vignette(\"howto-dm-copy\"), copying tables RDBMS covered. vignette(\"howto-dm-rows\") discusses manipulation individual rows database.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-db.html","id":"further-reading","dir":"Articles","previous_headings":"","what":"Further reading","title":"Create a dm object from a database","text":"vignette(\"howto-dm-df\") – data local data frames? article covers creating data model local data frames, including building relationships data model, verifying model, leveraging power dplyr operate data model. vignette(\"howto-dm-theory\") – know data frames little relational data models? quick introduction walk key similarities differences, show move individual data frames relational data model.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"creating-a-dm-object-from-data-frames","dir":"Articles","previous_headings":"","what":"Creating a dm object from data frames","title":"Create a dm object from data frames","text":"example data set using available nycflights13 package. five tables working contain information flights departed airports New York destinations United States 2013: flights represents trips taken planes names transport organizations (name) abbreviated codes (carrier) airports indicates ports departure (origin) destination (dest) weather contains meteorological information hour planes describes characteristics aircraft ’ve loaded {nycflights13}, aforementioned tables work environment, ready accessed. data probably available R package. Whatever format , need able load data frames R session. data large, consider using dm connect database instead. See vignette(\"howto-dm-db\") details using dm databases.","code":"library(nycflights13) airports #> # A tibble: 1,458 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 04G Lansdowne Airport 41.1 -80.6 1044 -5 A Amer… #> 2 06A Moton Field Municipal Airport 32.5 -85.7 264 -6 A Amer… #> 3 06C Schaumburg Regional 42.0 -88.1 801 -6 A Amer… #> 4 06N Randall Airport 41.4 -74.4 523 -5 A Amer… #> 5 09J Jekyll Island Airport 31.1 -81.4 11 -5 A Amer… #> 6 0A9 Elizabethton Municipal Airpo… 36.4 -82.2 1593 -5 A Amer… #> 7 0G6 Williams County Airport 41.5 -84.5 730 -5 A Amer… #> 8 0G7 Finger Lakes Regional Airport 42.9 -76.8 492 -5 A Amer… #> 9 0P2 Shoestring Aviation Airfield 39.8 -76.6 1000 -5 U Amer… #> 10 0S9 Jefferson County Intl 48.1 -123. 108 -8 A Amer… #> # ℹ 1,448 more rows"},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"adding-tables","dir":"Articles","previous_headings":"","what":"Adding Tables","title":"Create a dm object from data frames","text":"first step tell dm tables want work connected. can use dm(), passing table names arguments. as_dm() function alternative works already list tables.","code":"library(dm) flights_dm_no_keys <- dm(airlines, airports, flights, planes, weather) flights_dm_no_keys #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 0 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"a-dm-is-a-list","dir":"Articles","previous_headings":"","what":"A dm is a list","title":"Create a dm object from data frames","text":"dm objects behave like lists user- console-friendly print format. fact, using dm nicer list organizing data frames environment easy first step towards using dm data modeling functionality. Subsetting syntax dm object (either subscript name) similar syntax lists, don’t need learn additional syntax work dm objects.","code":"names(flights_dm_no_keys) #> [1] \"airlines\" \"airports\" \"flights\" \"planes\" \"weather\" flights_dm_no_keys$airports #> # A tibble: 1,458 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 04G Lansdowne Airport 41.1 -80.6 1044 -5 A Amer… #> 2 06A Moton Field Municipal Airport 32.5 -85.7 264 -6 A Amer… #> 3 06C Schaumburg Regional 42.0 -88.1 801 -6 A Amer… #> 4 06N Randall Airport 41.4 -74.4 523 -5 A Amer… #> 5 09J Jekyll Island Airport 31.1 -81.4 11 -5 A Amer… #> 6 0A9 Elizabethton Municipal Airpo… 36.4 -82.2 1593 -5 A Amer… #> 7 0G6 Williams County Airport 41.5 -84.5 730 -5 A Amer… #> 8 0G7 Finger Lakes Regional Airport 42.9 -76.8 492 -5 A Amer… #> 9 0P2 Shoestring Aviation Airfield 39.8 -76.6 1000 -5 U Amer… #> 10 0S9 Jefferson County Intl 48.1 -123. 108 -8 A Amer… #> # ℹ 1,448 more rows flights_dm_no_keys[c(\"airports\", \"flights\")] #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airports`, `flights` #> Columns: 27 #> Primary keys: 0 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"defining-keys","dir":"Articles","previous_headings":"","what":"Defining Keys","title":"Create a dm object from data frames","text":"Even though now dm object contains data, specified five tables connected. , need define primary keys foreign keys tables. Primary keys foreign keys relational database tables linked . primary key column column tuple unique value row within table. foreign key column column tuple containing primary key row another table. Foreign keys act cross references tables. specify relationships gives us relational database. information keys crash course databases, see vignette(\"howto-dm-theory\").","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"primary-keys","dir":"Articles","previous_headings":"","what":"Primary Keys","title":"Create a dm object from data frames","text":"dm offers dm_enum_pk_candidates() identify viable primary keys table dm object, dm_add_pk() add . Now, can add identified primary keys: Note {dm} functions work named positional argument specification, compound keys can specified using vector argument.","code":"dm_enum_pk_candidates( dm = flights_dm_no_keys, table = planes ) #> # A tibble: 9 × 3 #> columns candidate why #> #> 1 tailnum TRUE \"\" #> 2 year FALSE \"has duplicate values: 2001 (284), 2000 (244), 20… #> 3 type FALSE \"has duplicate values: Fixed wing multi engine (3… #> 4 manufacturer FALSE \"has duplicate values: BOEING (1630), AIRBUS INDU… #> 5 model FALSE \"has duplicate values: 737-7H4 (361), A320-232 (2… #> 6 engines FALSE \"has duplicate values: 2 (3288), 1 (27), 4 (4), 3… #> 7 seats FALSE \"has duplicate values: 149 (452), 140 (411), 55 (… #> 8 speed FALSE \"has 3299 missing values, and duplicate values: 4… #> 9 engine FALSE \"has duplicate values: Turbo-fan (2750), Turbo-je… flights_dm_only_pks <- flights_dm_no_keys %>% dm_add_pk(table = airlines, columns = carrier) %>% dm_add_pk(airports, faa) %>% dm_add_pk(planes, tailnum) %>% dm_add_pk(weather, c(origin, time_hour)) flights_dm_only_pks #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"foreign-keys","dir":"Articles","previous_headings":"","what":"Foreign Keys","title":"Create a dm object from data frames","text":"define tables related, use dm_add_fk() add foreign keys. Naturally, function deal two tables: table looking reference, table providing reference. Accordingly, calling dm_add_fk(), table argument specifies table needs foreign key link second table, ref_table argument specifies table linked , needs primary key already defined . chosen column successful candidates provided dm_enum_fk_candidates(), use dm_add_fk() function establish foreign key linking tables. second call dm_add_fk() complete process flights airlines tables started . carrier column airlines table added foreign key flights. created required primary foreign keys link tables together, now relational data model can work .","code":"dm_enum_fk_candidates( dm = flights_dm_only_pks, table = flights, ref_table = airlines ) #> # A tibble: 19 × 3 #> columns candidate why #> #> 1 carrier TRUE \"\" #> 2 year FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 3 month FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 4 day FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 5 dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 6 sched_dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 7 dep_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 8 arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 9 sched_arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 10 arr_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 11 flight FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 12 tailnum FALSE \"values of `flights$tailnum` not in `airlines$… #> 13 origin FALSE \"values of `flights$origin` not in `airlines$c… #> 14 dest FALSE \"values of `flights$dest` not in `airlines$car… #> 15 air_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 16 distance FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 17 hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 18 minute FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 19 time_hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… flights_dm_all_keys <- flights_dm_only_pks %>% dm_add_fk(table = flights, columns = tailnum, ref_table = planes) %>% dm_add_fk(flights, carrier, airlines) %>% dm_add_fk(flights, origin, airports) %>% dm_add_fk(flights, c(origin, time_hour), weather) flights_dm_all_keys #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"visualization","dir":"Articles","previous_headings":"","what":"Visualization","title":"Create a dm object from data frames","text":"Visualizing data model quick easy way verify successfully created model aiming . can use dm_draw() stage process generate visual representation tables links :","code":"flights_dm_no_keys %>% dm_draw(rankdir = \"TB\", view_type = \"all\") flights_dm_no_keys %>% dm_add_pk(airlines, carrier) %>% dm_draw() flights_dm_only_pks %>% dm_add_fk(flights, tailnum, planes) %>% dm_draw() flights_dm_all_keys %>% dm_draw()"},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"integrity-checks","dir":"Articles","previous_headings":"","what":"Integrity Checks","title":"Create a dm object from data frames","text":"well checking data model visually, dm can examine constraints created addition keys verify sensible. results presented human-readable form, available tibble programmatic inspection.","code":"flights_dm_no_keys %>% dm_examine_constraints() #> ℹ No constraints defined. flights_dm_only_pks %>% dm_examine_constraints() #> ℹ All constraints satisfied. flights_dm_all_keys %>% dm_examine_constraints() #> ! Unsatisfied constraints: #> • Table `flights`: foreign key `tailnum` into table `planes`: values of `flights$tailnum` not in `planes$tailnum`: N725MQ (575), N722MQ (513), N723MQ (507), N713MQ (483), N735MQ (396), … #> • Table `flights`: foreign key `origin`, `time_hour` into table `weather`: values of `flights$origin`, `flights$time_hour` not in `weather$origin`, `weather$time_hour`: EWR, 2013-10-23 06:00:00 (34), EWR, 2013-08-19 17:00:00 (26), EWR, 2013-12-31 06:00:00 (26), EWR, 2013-12-31 07:00:00 (26), JFK, 2013-08-19 17:00:00 (26), …"},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"programming","dir":"Articles","previous_headings":"","what":"Programming","title":"Create a dm object from data frames","text":"Helper functions available access details keys check results. data frame primary keys retrieved dm_get_all_pks(): Similarly, data frame foreign keys retrieved dm_get_all_fks(): can use tibble::as_tibble() result dm_examine_constraints() programmatically inspect constraints satisfied:","code":"flights_dm_only_pks %>% dm_get_all_pks() #> # A tibble: 4 × 3 #> table pk_col autoincrement #> #> 1 airlines carrier FALSE #> 2 airports faa FALSE #> 3 planes tailnum FALSE #> 4 weather origin, time_hour FALSE flights_dm_all_keys %>% dm_get_all_fks() #> # A tibble: 4 × 5 #> child_table child_fk_cols parent_table parent_key_cols on_delete #> #> 1 flights carrier airlines carrier no_action #> 2 flights origin airports faa no_action #> 3 flights tailnum planes tailnum no_action #> 4 flights origin, time_hour weather origin, time_hour no_action flights_dm_all_keys %>% dm_examine_constraints() %>% tibble::as_tibble() #> # A tibble: 8 × 6 #> table kind columns ref_table is_key problem #> #> 1 flights FK tailnum planes FALSE \"values of `flights$ta… #> 2 flights FK origin, time_hour weather FALSE \"values of `flights$or… #> 3 airlines PK carrier NA TRUE \"\" #> 4 airports PK faa NA TRUE \"\" #> 5 planes PK tailnum NA TRUE \"\" #> 6 weather PK origin, time_hour NA TRUE \"\" #> 7 flights FK carrier airlines TRUE \"\" #> 8 flights FK origin airports TRUE \"\""},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"Create a dm object from data frames","text":"tutorial, demonstrated simple create relational data models local data frames using {dm}, including setting primary foreign keys visualizing resulting relational model.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-df.html","id":"further-reading","dir":"Articles","previous_headings":"","what":"Further reading","title":"Create a dm object from data frames","text":"vignette(\"howto-dm-db\") – article covers accessing working RDBMSs within R session, including manipulating data, filling missing relationships tables, getting data RDBMS model, deploying data model RDBMS. vignette(\"howto-dm-theory\") – know data frames little relational data models? quick introduction walk key similarities differences, show move individual data frames relational data model.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"the-dm_rows_-process","dir":"Articles","previous_headings":"","what":"The dm_rows_* process","title":"Insert, update, or remove rows in a database","text":"six methods take arguments using follows process: Create temporary changeset dm object defines intended changes RDBMS desired, simulate changes in_place = FALSE double-check Apply changes in_place = TRUE. start, dm object created containing tables rows want change. changeset dm copied source dm want modify. dm RDBMS destination dm, call appropriate method, dm_rows_insert(), make planned changes, along argument in_place = FALSE can confirm achieve changes want. verification can done visually, looking row counts like, using {dm}’s constraint checking method, dm_examine_constraints(). biggest danger damaging key relations data spread across multiple tables deleting duplicating rows keys. dm_examine_constraints() catch errors primary keys duplicated foreign keys matching primary key (unless foreign key value NA). changes confirmed, execute method , time argument in_place = TRUE make changes permanent. Note in_place = FALSE default: must opt actually change data database. method requirements order maintain database consistency. involve constraints primary key values uniquely identify rows. ensure integrity relations process, methods automatically determine correct processing order tables involved. operations create records, parent tables (hold primary keys) processed child tables (hold foreign keys). dm_rows_delete(), child tables processed parent tables. Note user still responsible setting transactions ensure integrity operations across multiple tables. details see vignette(\"howto-dm-theory\") vignette(\"howto-dm-db\").","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"usage","dir":"Articles","previous_headings":"","what":"Usage","title":"Insert, update, or remove rows in a database","text":"demonstrate use table modifying methods, create simple dm object two tables linked foreign key. Note child table foreign key missing (NA). {dm} doesn’t check key values create dm, add check:1 copy demo_dm SQLite database. Note: default method used, copy_dm_to(), create temporary tables automatically deleted session ends. demo_sql destination dm examples, argument temporary = FALSE used make distinction apparent. {dm}’s table modification methods can piped together create repeatable sequence operations returns dm incorporating changes required. common use case {dm} – manually building sequence operations using temporary results complete correct, committing result.","code":"library(dm) parent <- tibble(value = c(\"A\", \"B\", \"C\"), pk = 1:3) parent #> # A tibble: 3 × 2 #> value pk #> #> 1 A 1 #> 2 B 2 #> 3 C 3 child <- tibble(value = c(\"a\", \"b\", \"c\"), pk = 1:3, fk = c(1, 1, NA)) child #> # A tibble: 3 × 3 #> value pk fk #> #> 1 a 1 1 #> 2 b 2 1 #> 3 c 3 NA demo_dm <- dm(parent = parent, child = child) %>% dm_add_pk(parent, pk) %>% dm_add_pk(child, pk) %>% dm_add_fk(child, fk, parent) demo_dm %>% dm_draw(view_type = \"all\") dm_examine_constraints(demo_dm) #> ℹ All constraints satisfied. library(DBI) sqlite_db <- DBI::dbConnect(RSQLite::SQLite()) demo_sql <- copy_dm_to(sqlite_db, demo_dm, temporary = FALSE) demo_sql #> ── Table source ─────────────────────────────────────────────────────────── #> src: sqlite 3.44.2 [] #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `parent`, `child` #> Columns: 5 #> Primary keys: 2 #> Foreign keys: 1"},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"insert","dir":"Articles","previous_headings":"","what":"dm_rows_insert()","title":"Insert, update, or remove rows in a database","text":"demonstrate dm_rows_insert(), create dm tables containing rows insert copy sqlite_db, source demo_sql. dm_rows_...() methods, source destination dm objects must RDBMS. get error message case. code adds parent child table entries letter “D”. First, changeset dm created temporarily copied database: changeset dm used argument dm_rows_insert(). gives us warning changes persist (.e., temporary). Inspecting child table resulting dm_insert_out demo_sql, can see ’s exactly happened. {dm} returned us dm object inserted rows place, underlying database changed. repeat operation, time argument in_place = TRUE changes now persist demo_sql.","code":"new_parent <- tibble(value = \"D\", pk = 4) new_parent #> # A tibble: 1 × 2 #> value pk #> #> 1 D 4 new_child <- tibble(value = \"d\", pk = 4, fk = 4) new_child #> # A tibble: 1 × 3 #> value pk fk #> #> 1 d 4 4 dm_insert_in <- dm(parent = new_parent, child = new_child) %>% copy_dm_to(sqlite_db, ., temporary = TRUE) dm_insert_out <- demo_sql %>% dm_rows_insert(dm_insert_in) #> Result is returned as a dm object with lazy tables. Use `in_place = FALSE` #> to mute this message, or `in_place = TRUE` to write to the underlying #> tables. dm_insert_out$child #> # Source: SQL [4 x 3] #> # Database: sqlite 3.44.2 [] #> value pk fk #> #> 1 a 1 1 #> 2 b 2 1 #> 3 c 3 NA #> 4 d 4 4 demo_sql$child #> # Source: table [3 x 3] #> # Database: sqlite 3.44.2 [] #> value pk fk #> #> 1 a 1 1 #> 2 b 2 1 #> 3 c 3 NA dm_insert_out <- demo_sql %>% dm_rows_insert(dm_insert_in, in_place = TRUE) demo_sql$child #> # Source: table [4 x 3] #> # Database: sqlite 3.44.2 [] #> value pk fk #> #> 1 a 1 1 #> 2 b 2 1 #> 3 c 3 NA #> 4 d 4 4"},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"update","dir":"Articles","previous_headings":"","what":"dm_rows_update()","title":"Insert, update, or remove rows in a database","text":"dm_rows_update() works dm_rows_insert(). create dm object copy source destination. change foreign key row child containing “b” point correct row parent. persist changes.","code":"updated_child <- tibble(value = \"b\", pk = 2, fk = 2) updated_child #> # A tibble: 1 × 3 #> value pk fk #> #> 1 b 2 2 dm_update_in <- dm(child = updated_child) %>% copy_dm_to(sqlite_db, ., temporary = TRUE) dm_update_out <- demo_sql %>% dm_rows_update(dm_update_in, in_place = TRUE) demo_sql$child #> # Source: table [4 x 3] #> # Database: sqlite 3.44.2 [] #> value pk fk #> #> 1 a 1 1 #> 2 b 2 2 #> 3 c 3 NA #> 4 d 4 4"},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"delete","dir":"Articles","previous_headings":"","what":"dm_rows_delete()","title":"Insert, update, or remove rows in a database","text":"dm_rows_delete() currently implemented work RDBMS, shift demonstrations back local R environment. ’ve made changes demo_sql, use collect() copy current tables SQLite. Note persistence concern local dm objects. Every operation returns new dm object containing changes made.","code":"local_dm <- collect(demo_sql) local_dm$parent #> # A tibble: 4 × 2 #> value pk #> #> 1 A 1 #> 2 B 2 #> 3 C 3 #> 4 D 4 local_dm$child #> # A tibble: 4 × 3 #> value pk fk #> #> 1 a 1 1 #> 2 b 2 2 #> 3 c 3 NA #> 4 d 4 4 dm_deleted <- dm(parent = new_parent, child = new_child) %>% dm_rows_delete(local_dm, .) #> Result is returned as a dm object with lazy tables. Use `in_place = FALSE` to mute this message, or `in_place = TRUE` to write to the underlying tables. #> Ignoring extra `y` columns: value, fk #> Ignoring extra `y` columns: value dm_deleted$child #> # A tibble: 3 × 3 #> value pk fk #> #> 1 a 1 1 #> 2 b 2 2 #> 3 c 3 NA"},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"patch","dir":"Articles","previous_headings":"","what":"dm_rows_patch()","title":"Insert, update, or remove rows in a database","text":"dm_rows_patch() updates missing values existing records. use fix missing foreign key child table.","code":"patched_child <- tibble(value = \"c\", pk = 3, fk = 3) patched_child #> # A tibble: 1 × 3 #> value pk fk #> #> 1 c 3 3 dm_patched <- dm(child = patched_child) %>% dm_rows_patch(dm_deleted, .) #> Result is returned as a dm object with lazy tables. Use `in_place = FALSE` #> to mute this message, or `in_place = TRUE` to write to the underlying #> tables. dm_patched$child #> # A tibble: 3 × 3 #> value pk fk #> #> 1 a 1 1 #> 2 b 2 2 #> 3 c 3 3"},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"upsert","dir":"Articles","previous_headings":"","what":"dm_rows_upsert()","title":"Insert, update, or remove rows in a database","text":"dm_rows_upsert() updates rows supplied values exist inserts supplied values new rows don’t. example add letter “D” back dm, update foreign key “b”. done, forget disconnect:","code":"upserted_parent <- tibble(value = \"D\", pk = 4) upserted_parent #> # A tibble: 1 × 2 #> value pk #> #> 1 D 4 upserted_child <- tibble(value = c(\"b\", \"d\"), pk = c(2, 4), fk = c(3, 4)) upserted_child #> # A tibble: 2 × 3 #> value pk fk #> #> 1 b 2 3 #> 2 d 4 4 dm_upserted <- dm(parent = upserted_parent, child = upserted_child) %>% dm_rows_upsert(dm_patched, .) #> Result is returned as a dm object with lazy tables. Use `in_place = FALSE` #> to mute this message, or `in_place = TRUE` to write to the underlying #> tables. dm_upserted$parent #> # A tibble: 4 × 2 #> value pk #> #> 1 A 1 #> 2 B 2 #> 3 C 3 #> 4 D 4 dm_upserted$child #> # A tibble: 4 × 3 #> value pk fk #> #> 1 a 1 1 #> 2 b 2 3 #> 3 c 3 3 #> 4 d 4 4 DBI::dbDisconnect(sqlite_db)"},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"Insert, update, or remove rows in a database","text":"dm_rows_...() methods give row-level granularity modifications need make relational model. Using common in_place argument, can construct verify modifications committing . limitations, mentioned tutorial, addressed future updates {dm}.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-rows.html","id":"further-reading","dir":"Articles","previous_headings":"","what":"Further Reading","title":"Insert, update, or remove rows in a database","text":"tutorial answered questions, opened others, resources might assistance. data RDBMS? vignette(\"howto-dm-db\") offers detailed look working existing relational data model. data data frames, may want read vignette(\"howto-dm-df\") next. like know relational data models order get dm, check vignette(\"howto-dm-theory\"). ’re familiar relational data models want know work dm, vignette(\"tech-dm-join\"), vignette(\"tech-dm-filter\"), vignette(\"tech-dm-zoom\") good next step.","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"data-frames-and-tables","dir":"Articles","previous_headings":"","what":"1. Data Frames and Tables","title":"Introduction to relational data models","text":"data frame fundamental data structure R. Columns represent variables, rows represent observations. technical terms, data frame list variables identical length unique row names. imagine visually, result typical table structure. working data spreadsheets convenient users popular {dplyr} package data wrangling mainly rely data frames. downside data frames flat file systems like spreadsheets can result bloated tables hold many repetitive values. worst case, data frame can contain multiple columns single value different row. calls better data organization utilizing resemblance data frames database tables, also consist columns rows. elements just named differently: Additionally, number rows columns data frame , respectively, analogous cardinality degree table. Relational databases, unlike data frames, keep data one large table instead split multiple smaller tables. separation sub-tables several advantages: information stored , avoiding redundancy conserving memory information needs updated one place, improving consistency avoiding errors may result updating (forgetting update) value multiple locations information organized topic segmented smaller tables easier handle reasons separation data helps data quality, explain popularity relational databases production-level data management. downside approach harder merge together information different data sources identify entities refer object, common task modeling plotting data. Thus, take full advantage relational database approach, associated data model needed overcome challenges arise working multiple tables. Let’s illustrate challenge data nycflights13 dataset contains detailed information 336,776 flights departed New York City 2013. information stored five tables. Details like full name airport available immediately; can obtained joining merging constituent tables, can result long inflated pipe chains full left_join(), anti_join() forms data merging. classical {dplyr} notation, need four left_join() calls gradually merge flights table airlines, planes, airports, weather tables create one wide data frame. {dm} offers elegant shorter way combine tables augmenting {dplyr}/{dbplyr} workflows. possible best worlds: manage data {dm} linked tables, , necessary, flatten multiple tables single data frame analysis {dplyr}. next step create data model based multiple tables:","code":"library(dm) library(nycflights13) nycflights13_df <- flights %>% left_join(airlines, by = \"carrier\") %>% left_join(planes, by = \"tailnum\") %>% left_join(airports, by = c(\"origin\" = \"faa\")) %>% left_join(weather, by = c(\"origin\", \"time_hour\")) nycflights13_df #> # A tibble: 336,776 × 48 #> year.x month.x day.x dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 1 1 517 515 2 830 #> 2 2013 1 1 533 529 4 850 #> 3 2013 1 1 542 540 2 923 #> 4 2013 1 1 544 545 -1 1004 #> 5 2013 1 1 554 600 -6 812 #> 6 2013 1 1 554 558 -4 740 #> 7 2013 1 1 555 600 -5 913 #> 8 2013 1 1 557 600 -3 709 #> 9 2013 1 1 557 600 -3 838 #> 10 2013 1 1 558 600 -2 753 #> # ℹ 336,766 more rows #> # ℹ 41 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour.x , minute , #> # time_hour , name.x , year.y , type , #> # manufacturer , model , engines , seats , #> # speed , engine , name.y , lat , lon , …"},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"model","dir":"Articles","previous_headings":"","what":"2. Data Model","title":"Introduction to relational data models","text":"data model shows structure multiple tables linked together. nycflights13 relations can transferred following graphical representation: flights table linked four tables: airlines, planes, weather, airports. using directed arrows, visualization shows explicitly connection different columns (called attributes relational data sphere). example: column carrier flights can joined column carrier airlines table. links tables established primary keys foreign keys. aside, can also now see avoiding redundant data building data models multiple tables can save memory compared storing data single data frame: Reading: {dm} methods visualizing data models.","code":"dm <- dm_nycflights13(cycle = TRUE) dm %>% dm_draw() object.size(dm) #> 476256 bytes object.size(nycflights13_df) #> 108020824 bytes"},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"pk","dir":"Articles","previous_headings":"","what":"3. Primary Keys","title":"Introduction to relational data models","text":"relational data model, table one several columns uniquely identify row. columns define primary key (abbreviated “pk”). key consists single column, called simple key. key consisting one column called compound key. Example: airlines table nycflights13 column carrier primary key, simple key. weather table combination origin time_hour primary key, compound key. can get primary keys dm calling dm_get_all_pks(): dm_enum_pk_candidates() checks suitability column serve simple primary key: Reading: {dm} package offers several functions dealing primary keys.","code":"dm %>% dm_get_all_pks() #> # A tibble: 4 × 3 #> table pk_col autoincrement #> #> 1 airlines carrier FALSE #> 2 airports faa FALSE #> 3 planes tailnum FALSE #> 4 weather origin, time_hour FALSE dm %>% dm_enum_pk_candidates(airports) #> # A tibble: 8 × 3 #> columns candidate why #> #> 1 faa TRUE \"\" #> 2 name TRUE \"\" #> 3 lat TRUE \"\" #> 4 lon TRUE \"\" #> 5 alt FALSE \"has duplicate values: 30 (4), 13 (3), 9 (2), 19 (2), … #> 6 tz FALSE \"has duplicate values: -5 (48), -6 (21), -8 (12), -7 (… #> 7 dst FALSE \"has duplicate values: A (84), N (2)\" #> 8 tzone FALSE \"has duplicate values: America/New_York (48), America/…"},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"fk","dir":"Articles","previous_headings":"","what":"4. Foreign Keys","title":"Introduction to relational data models","text":"counterpart primary key one table foreign key another table. order join two tables, primary key first table needs referenced second table. column columns called foreign key (abbreviated “fk”). example, want link airlines table flights table, primary key airlines needs match foreign key flights. condition satisfied column carrier present primary key airlines table well foreign key flights table. case compound keys, origin time_hour columns (form primary key weather table) also present flights table. can find foreign key candidates simple keys function dm_enum_fk_candidates(); marked TRUE candidate column. Additionally, can also extract summary foreign key relations present dm object using dm_get_all_fks(): Reading: {dm} functions working foreign keys.","code":"dm %>% dm_enum_fk_candidates(flights, airlines) #> # A tibble: 19 × 3 #> columns candidate why #> #> 1 carrier TRUE \"\" #> 2 year FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 3 month FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 4 day FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 5 dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 6 sched_dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 7 dep_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 8 arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 9 sched_arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 10 arr_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 11 flight FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 12 tailnum FALSE \"values of `flights$tailnum` not in `airlines$… #> 13 origin FALSE \"values of `flights$origin` not in `airlines$c… #> 14 dest FALSE \"values of `flights$dest` not in `airlines$car… #> 15 air_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 16 distance FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 17 hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 18 minute FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… #> 19 time_hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with… dm %>% dm_get_all_fks() #> # A tibble: 5 × 5 #> child_table child_fk_cols parent_table parent_key_cols on_delete #> #> 1 flights carrier airlines carrier no_action #> 2 flights origin airports faa no_action #> 3 flights dest airports faa no_action #> 4 flights tailnum planes tailnum no_action #> 5 flights origin, time_hour weather origin, time_hour no_action"},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"referential-integrity","dir":"Articles","previous_headings":"","what":"5. Referential Integrity","title":"Introduction to relational data models","text":"data set referential integrity relations tables valid. , every foreign key holds primary key present parent table. foreign key contains reference corresponding row parent table available, row orphan row database longer referential integrity. {dm} allows checking referential integrity dm_examine_constraints() function. following conditions checked: primary key values must unique missing (.e., NAs allowed). foreign key value must corresponding primary key value. example data model, substantial share flights, detailed information corresponding airplane available: Establishing referential integrity important providing clean data analysis downstream users. See vignette(\"howto-dm-rows\") information adding, deleting, updating individual rows, vignette(\"tech-dm-zoom\") operations data data model.","code":"dm %>% dm_examine_constraints() #> ! Unsatisfied constraints: #> • Table `flights`: foreign key `dest` into table `airports`: values of `flights$dest` not in `airports$faa`: SJU (30), BQN (6), STT (4), PSE (2) #> • Table `flights`: foreign key `tailnum` into table `planes`: values of `flights$tailnum` not in `planes$tailnum`: N725MQ (6), N537MQ (5), N722MQ (5), N730MQ (5), N736MQ (5), …"},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"normalization","dir":"Articles","previous_headings":"","what":"6. Normalization","title":"Introduction to relational data models","text":"Normalization technical term describes central design principle relational data model: splitting data multiple tables. normalized data schema consists several relations (tables) linked attributes (columns). relations can joined together means primary foreign keys. main goal normalization keep data organization clean simple possible avoiding redundant data entries. example, want change name one airport nycflights13 dataset, need update single data value. principle sometimes called single point truth. Another way demonstrate normalization splitting table two parts. Let’s look planes table, consists 3322 individual tail numbers corresponding information specific airplane, like year manufactured average cruising speed. function decompose_table() extracts two new tables creates new key model_id, links tables. results parent_table child_table differ massively number rows: child_table contains 3322 unique tailnum rows therefore consists 3322 rows, just like original planes table, parent_table shrunk just 147 rows, enough store relevant combinations avoid storing redundant information. Reading: See Simple English Wikipedia article database normalization details.","code":"# Update in one single location... airlines[airlines$carrier == \"UA\", \"name\"] <- \"United broke my guitar\" airlines %>% filter(carrier == \"UA\") #> # A tibble: 1 × 2 #> carrier name #> #> 1 UA United broke my guitar # ...propagates to all related records flights %>% left_join(airlines) %>% select(flight, name) #> Joining with `by = join_by(carrier)` #> # A tibble: 336,776 × 2 #> flight name #> #> 1 1545 United broke my guitar #> 2 1714 United broke my guitar #> 3 1141 American Airlines Inc. #> 4 725 JetBlue Airways #> 5 461 Delta Air Lines Inc. #> 6 1696 United broke my guitar #> 7 507 JetBlue Airways #> 8 5708 ExpressJet Airlines Inc. #> 9 79 JetBlue Airways #> 10 301 American Airlines Inc. #> # ℹ 336,766 more rows planes %>% decompose_table(model_id, model, manufacturer, type, engines, seats, speed) #> $child_table #> # A tibble: 3,322 × 4 #> tailnum year engine model_id #> #> 1 N10156 2004 Turbo-fan 120 #> 2 N102UW 1998 Turbo-fan 93 #> 3 N103US 1999 Turbo-fan 93 #> 4 N104UW 1999 Turbo-fan 93 #> 5 N10575 2002 Turbo-fan 119 #> 6 N105UW 1999 Turbo-fan 93 #> 7 N107US 1999 Turbo-fan 93 #> 8 N108UW 1999 Turbo-fan 93 #> 9 N109UW 1999 Turbo-fan 93 #> 10 N110UW 1999 Turbo-fan 93 #> # ℹ 3,312 more rows #> #> $parent_table #> # A tibble: 147 × 7 #> model_id model manufacturer type engines seats speed #> #> 1 120 EMB-145XR EMBRAER Fixed wing mu… 2 55 NA #> 2 93 A320-214 AIRBUS INDUSTRIE Fixed wing mu… 2 182 NA #> 3 119 EMB-145LR EMBRAER Fixed wing mu… 2 55 NA #> 4 39 737-824 BOEING Fixed wing mu… 2 149 NA #> 5 68 767-332 BOEING Fixed wing mu… 2 330 NA #> 6 52 757-224 BOEING Fixed wing mu… 2 178 NA #> 7 94 A320-214 AIRBUS Fixed wing mu… 2 182 NA #> 8 112 CL-600-2D24 BOMBARDIER INC Fixed wing mu… 2 95 NA #> 9 30 737-724 BOEING Fixed wing mu… 2 149 NA #> 10 27 737-524 BOEING Fixed wing mu… 2 149 NA #> # ℹ 137 more rows"},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"relational-databases","dir":"Articles","previous_headings":"","what":"7. Relational Databases","title":"Introduction to relational data models","text":"{dm} built upon relational data models database . Databases systems data management many constructed relational databases (e.g., SQLite, MySQL, MSSQL, Postgres, etc.). can guess names databases, SQL, short Structured Querying Language, plays important role: invented purpose querying relational databases. production, data stored relational database {dm} used work data. Therefore, {dm} can copy data databases, works transparently -memory data relational database systems. example, let’s create local SQLite database copy dm object : opposite direction, dm can also populated data database. Unfortunately, keys currently can learned Microsoft SQL Server Postgres, SQLite. Therefore, dm contains tables keys: Remember terminate database connection:","code":"con_sqlite <- DBI::dbConnect(RSQLite::SQLite()) con_sqlite #> #> Path: #> Extensions: TRUE DBI::dbListTables(con_sqlite) #> character(0) copy_dm_to(con_sqlite, dm) DBI::dbListTables(con_sqlite) #> [1] \"airlines_1_20200828_071303_12345\" \"airports_1_20200828_071303_12345\" #> [3] \"flights_1_20200828_071303_12345\" \"planes_1_20200828_071303_12345\" #> [5] \"weather_1_20200828_071303_12345\" dm_from_con(con_sqlite) #> ! unable to fetch autoincrement metadata for src 'src_SQLiteConnection' #> Keys could not be queried. #> ── Table source ─────────────────────────────────────────────────────────── #> src: sqlite 3.44.2 [] #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines_1_20200828_071303_12345`, `airports_1_20200828_071303_12345`, `flights_1_20200828_071303_12345`, `planes_1_20200828_071303_12345`, `weather_1_20200828_071303_12345` #> Columns: 53 #> Primary keys: 0 #> Foreign keys: 0 DBI::dbDisconnect(con_sqlite)"},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"Introduction to relational data models","text":"article, learned fundamental concepts data structures associated relational database management system (RDBMS).","code":""},{"path":"https://dm.cynkra.com/articles/howto-dm-theory.html","id":"further-reading","dir":"Articles","previous_headings":"","what":"Further reading","title":"Introduction to relational data models","text":"vignette(\"howto-dm-db\") – article covers accessing working RDBMSs within R session, including manipulating data, filling missing relationships tables, getting data RDBMS model, deploying data model RDBMS. vignette(\"howto-dm-df\") – data local data frames? article covers creating data model local data frames, including building relationships data model, verifying model, leveraging power dplyr operate data model.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/articles/tech-dm-cdm.html","id":"replace-cdm-with-dm","dir":"Articles","previous_headings":"Changes required when updating from version 0.0.5 to 0.0.6","what":"Replace cdm with dm","title":"Migration guide: 'cdm' -> 'dm'","text":"update prevalent prefix cdm discarded favor dm. old prefix still job, warning message issued time function beginning cdm used, informing function soft-deprecated suggesting use newer version. script based older {dm} version, still work newer version, albeit complaining time outdated function used. can repaired : either going script step step, testing output line code use new function names provided generated warnings update function calls. just replacing occurrences cdm dm script. can e.g. done RStudio using “Find” terminal using sed -e 's/cdm/dm/g' path--file Windows sed -'' -e 's/cdm/dm/g' path--file Mac. script errors step, need check exactly error happens manually repair damage.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-cdm.html","id":"be-careful-with-methods-for-dm-tbl","dir":"Articles","previous_headings":"Changes required when updating from version 0.0.5 to 0.0.6","what":"Be careful with methods for dm: tbl, [[, $","title":"Migration guide: 'cdm' -> 'dm'","text":"Furthermore, need pay attention used one tbl.dm(), [[.dm(), $.dm(). update implementation methods changed well, don’t get convenient warning messages. change , update, mentioned methods return table “filtering” just contain rows values relate via foreign key relations tables filtered earlier. update just table returned. want retain former behavior, need replace methods function dm_apply_filters_to_tbl(), made available update. methods course avoided general, filters set anyway result change update. short example different cases: Formerly access “filtered” tables using following syntax: update result achieved type function call:","code":"library(dm) flights_dm <- dm_nycflights13() tbl(flights_dm, \"airports\") #> Warning: `tbl.dm()` was deprecated in dm 0.2.0. #> ℹ Use `dm[[table_name]]` instead to access a specific table. #> This warning is displayed once every 8 hours. #> Call `lifecycle::last_lifecycle_warnings()` to see where this warning was #> generated. #> # A tibble: 86 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta I… 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Loga… 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows flights_dm$planes #> # A tibble: 945 × 9 #> tailnum year type manufacturer model engines seats speed engine #> #> 1 N10156 2004 Fixed wing … EMBRAER EMB-… 2 55 NA Turbo… #> 2 N104UW 1999 Fixed wing … AIRBUS INDU… A320… 2 182 NA Turbo… #> 3 N10575 2002 Fixed wing … EMBRAER EMB-… 2 55 NA Turbo… #> 4 N105UW 1999 Fixed wing … AIRBUS INDU… A320… 2 182 NA Turbo… #> 5 N110UW 1999 Fixed wing … AIRBUS INDU… A320… 2 182 NA Turbo… #> 6 N11106 2002 Fixed wing … EMBRAER EMB-… 2 55 NA Turbo… #> 7 N11107 2002 Fixed wing … EMBRAER EMB-… 2 55 NA Turbo… #> 8 N11109 2002 Fixed wing … EMBRAER EMB-… 2 55 NA Turbo… #> 9 N11121 2003 Fixed wing … EMBRAER EMB-… 2 55 NA Turbo… #> 10 N11137 2003 Fixed wing … EMBRAER EMB-… 2 55 NA Turbo… #> # ℹ 935 more rows flights_dm[[\"weather\"]] #> # A tibble: 144 × 15 #> origin year month day hour temp dewp humid wind_dir wind_speed #> #> 1 EWR 2013 1 10 0 41 32 70.1 230 8.06 #> 2 EWR 2013 1 10 1 39.0 30.0 69.9 210 9.21 #> 3 EWR 2013 1 10 2 39.0 28.9 66.8 230 6.90 #> 4 EWR 2013 1 10 3 39.9 27.0 59.5 270 5.75 #> 5 EWR 2013 1 10 4 41 26.1 55.0 320 6.90 #> 6 EWR 2013 1 10 5 41 26.1 55.0 300 12.7 #> 7 EWR 2013 1 10 6 39.9 25.0 54.8 280 6.90 #> 8 EWR 2013 1 10 7 41 25.0 52.6 330 6.90 #> 9 EWR 2013 1 10 8 43.0 25.0 48.7 330 8.06 #> 10 EWR 2013 1 10 9 45.0 23 41.6 320 17.3 #> # ℹ 134 more rows #> # ℹ 5 more variables: wind_gust , precip , pressure , #> # visib , time_hour dm_apply_filters_to_tbl(flights_dm, airlines) #> Warning: `dm_apply_filters_to_tbl()` was deprecated in dm 1.0.0. #> ℹ Access tables directly after `dm_filter()`. #> This warning is displayed once every 8 hours. #> Call `lifecycle::last_lifecycle_warnings()` to see where this warning was #> generated. #> # A tibble: 15 × 2 #> carrier name #> #> 1 9E Endeavor Air Inc. #> 2 AA American Airlines Inc. #> 3 AS Alaska Airlines Inc. #> 4 B6 JetBlue Airways #> 5 DL Delta Air Lines Inc. #> 6 EV ExpressJet Airlines Inc. #> 7 F9 Frontier Airlines Inc. #> 8 FL AirTran Airways Corporation #> 9 HA Hawaiian Airlines Inc. #> 10 MQ Envoy Air #> 11 UA United Air Lines Inc. #> 12 US US Airways Inc. #> 13 VX Virgin America #> 14 WN Southwest Airlines Co. #> 15 YV Mesa Airlines Inc."},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"class-dm","dir":"Articles","previous_headings":"","what":"Class dm","title":"Class dm and basic operations","text":"dm class consists collection tables metadata tables, names tables names columns tables primary foreign keys tables link tables together data (either data frames references database tables) tables dm must obtained data source; csv files spreadsheets need imported data frames R.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"ex_dm","dir":"Articles","previous_headings":"","what":"Examples of dm objects","title":"Class dm and basic operations","text":"currently three options available creating dm object. relevant functions creating dm objects : dm() as_dm() new_dm() dm_from_con() illustrate options, now create dm several different ways. can use tables well-known {nycflights13} package.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"pass-the-tables-directly","dir":"Articles","previous_headings":"Examples of dm objects","what":"Pass the tables directly","title":"Class dm and basic operations","text":"Create dm object directly providing data frames dm():","code":"library(nycflights13) library(dm) dm(airlines, airports, flights, planes, weather) #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 0 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"start-with-an-empty-dm","dir":"Articles","previous_headings":"Examples of dm objects","what":"Start with an empty dm","title":"Class dm and basic operations","text":"Start empty dm object created dm() new_dm(), add tables object:","code":"library(nycflights13) library(dm) empty_dm <- dm() empty_dm #> dm() dm(empty_dm, airlines, airports, flights, planes, weather) #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 0 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"coerce-a-list-of-tables","dir":"Articles","previous_headings":"Examples of dm objects","what":"Coerce a list of tables","title":"Class dm and basic operations","text":"Turn named list tables dm as_dm():","code":"as_dm(list( airlines = airlines, airports = airports, flights = flights, planes = planes, weather = weather )) #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 0 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"turn-tables-from-a-src-into-a-dm","dir":"Articles","previous_headings":"Examples of dm objects","what":"Turn tables from a src into a dm","title":"Class dm and basic operations","text":"Squeeze (subset ) tables belonging src object dm using dm_from_con(): function dm_from_con(con, table_names = NULL) includes available tables source dm object. means can use , example, postgres database access via DBI::dbConnect(RPostgres::Postgres()) (appropriate arguments dbname, host, port, …), produce dm object tables database.","code":"sqlite_con <- dbplyr::nycflights13_sqlite() flights_dm <- dm_from_con(sqlite_con) flights_dm #> ── Table source ─────────────────────────────────────────────────────────── #> src: sqlite 3.44.2 [/tmp/RtmpFjvJH1/nycflights13.sqlite] #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `sqlite_stat1`, … (7 total) #> Columns: 62 #> Primary keys: 0 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"low-level-construction","dir":"Articles","previous_headings":"Examples of dm objects","what":"Low-level construction","title":"Class dm and basic operations","text":"Another way creating dm object calling new_dm() list tbl objects: constructor optimized speed perform integrity checks. Use caution, validate using dm_validate() necessary.","code":"base_dm <- new_dm(list( airlines = airlines, airports = airports, flights = flights, planes = planes, weather = weather )) base_dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 0 #> Foreign keys: 0 dm_validate(base_dm)"},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"access-tables","dir":"Articles","previous_headings":"","what":"Access tables","title":"Class dm and basic operations","text":"can get list tables dm_get_tables() src object dm_get_con(). order pull specific table dm, use: can use {dm}-functions manage primary keys tables dm object?","code":"flights_dm[[\"airports\"]] #> # Source: table [?? x 8] #> # Database: sqlite 3.44.2 [/tmp/RtmpFjvJH1/nycflights13.sqlite] #> faa name lat lon alt tz dst tzone #> #> 1 04G Lansdowne Airport 41.1 -80.6 1044 -5 A Amer… #> 2 06A Moton Field Municipal Airport 32.5 -85.7 264 -6 A Amer… #> 3 06C Schaumburg Regional 42.0 -88.1 801 -6 A Amer… #> 4 06N Randall Airport 41.4 -74.4 523 -5 A Amer… #> 5 09J Jekyll Island Airport 31.1 -81.4 11 -5 A Amer… #> 6 0A9 Elizabethton Municipal Airpo… 36.4 -82.2 1593 -5 A Amer… #> 7 0G6 Williams County Airport 41.5 -84.5 730 -5 A Amer… #> 8 0G7 Finger Lakes Regional Airport 42.9 -76.8 492 -5 A Amer… #> 9 0P2 Shoestring Aviation Airfield 39.8 -76.6 1000 -5 U Amer… #> 10 0S9 Jefferson County Intl 48.1 -123. 108 -8 A Amer… #> # ℹ more rows"},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"pk","dir":"Articles","previous_headings":"","what":"Primary keys of dm objects","title":"Class dm and basic operations","text":"useful functions managing primary key settings : dm_add_pk() dm_get_all_pks() dm_rm_pk() dm_enum_pk_candidates() created dm object according examples “Examples dm objects”, object yet primary keys set. let’s add one. use nycflights13 tables, .e. flights_dm . dm now primary key: get overview tables primary keys, use dm_get_all_pks(): Remove primary key: still need get know data better, already available form dm object, can use dm_enum_pk_candidates() function order get information columns table unique keys: flights table one-column primary key candidates: dm_add_pk() check argument. set TRUE, function checks column table given user unique. performance reasons, default check = FALSE. See also [dm_examine_constraints()] checking constraints dm.","code":"dm_has_pk(flights_dm, airports) #> [1] FALSE flights_dm_with_key <- dm_add_pk(flights_dm, airports, faa) flights_dm_with_key #> ── Table source ─────────────────────────────────────────────────────────── #> src: sqlite 3.44.2 [/tmp/RtmpFjvJH1/nycflights13.sqlite] #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `sqlite_stat1`, … (7 total) #> Columns: 62 #> Primary keys: 1 #> Foreign keys: 0 dm_has_pk(flights_dm_with_key, airports) #> [1] TRUE dm_get_all_pks(flights_dm_with_key) #> # A tibble: 1 × 3 #> table pk_col autoincrement #> #> 1 airports faa FALSE dm_rm_pk(flights_dm_with_key, airports) %>% dm_has_pk(airports) #> [1] FALSE dm_enum_pk_candidates(flights_dm_with_key, airports) #> # A tibble: 8 × 3 #> columns candidate why #> #> 1 faa TRUE \"\" #> 2 lon TRUE \"\" #> 3 name FALSE \"has duplicate values: Municipal Airport (5), All Airp… #> 4 lat FALSE \"has duplicate values: 38.88944 (2), 40.63975 (2)\" #> 5 alt FALSE \"has duplicate values: 0 (51), 13 (13), 14 (12), 15 (1… #> 6 tz FALSE \"has duplicate values: -5 (521), -6 (342), -9 (240), -… #> 7 dst FALSE \"has duplicate values: A (1388), U (47), N (23)\" #> 8 tzone FALSE \"has duplicate values: America/New_York (519), America… dm_enum_pk_candidates(flights_dm_with_key, flights) %>% dplyr::count(candidate) #> # A tibble: 1 × 2 #> candidate n #> #> 1 FALSE 19 try( dm_add_pk(flights_dm, airports, tzone, check = TRUE) ) #> Error in abort_not_unique_key(x_label, orig_names) : #> (`tzone`) not a unique key of `airports`."},{"path":"https://dm.cynkra.com/articles/tech-dm-class.html","id":"foreign-keys","dir":"Articles","previous_headings":"","what":"Foreign keys","title":"Class dm and basic operations","text":"Useful functions managing foreign key relations include: dm_add_fk() dm_get_all_fks() dm_rm_fk() dm_enum_fk_candidates() Now gets (even ) interesting: want define relations different tables. dm_add_fk() function can define column table points another table’s column. done choosing foreign key one table point primary key another table. primary key referred table must set dm_add_pk(). dm_add_fk() find primary key column referenced table make indicated column child table point . throw error: Let’s create dm object foreign key relation work later : tried add another foreign key relation flights airports object? Column dest might work, since also contains airport codes: Checks opt-executed check = TRUE. can still add foreign key default check = FALSE. See also dm_examine_constraints() checking constraints dm. Get overview foreign key relations withdm_get_all_fks(): Remove foreign key relations dm_rm_fk() (parameter columns = NULL means relations removed, message): Since primary keys defined dm object, usually need provide referenced column name ref_table. Another function getting know data better (cf. dm_enum_pk_candidates() “Primary keys dm objects”) dm_enum_fk_candidates(). Use get overview foreign key candidates point one table another:","code":"flights_dm_with_key %>% dm_add_fk(flights, origin, airports) #> ── Table source ─────────────────────────────────────────────────────────── #> src: sqlite 3.44.2 [/tmp/RtmpFjvJH1/nycflights13.sqlite] #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `sqlite_stat1`, … (7 total) #> Columns: 62 #> Primary keys: 1 #> Foreign keys: 1 try( flights_dm %>% dm_add_fk(flights, origin, airports) ) #> Error in abort_ref_tbl_has_no_pk(ref_table_name) : #> ref_table `airports` needs a primary key first. Use `dm_enum_pk_candidates()` to find appropriate columns and `dm_add_pk()` to define a primary key. flights_dm_with_fk <- dm_add_fk(flights_dm_with_key, flights, origin, airports) try( flights_dm_with_fk %>% dm_add_fk(flights, dest, airports, check = TRUE) ) #> Error in abort_not_subset_of(table_name, col_name, ref_table_name, ref_col_name) : #> Column (`dest`) of table `flights` contains values (see examples above) that are not present in column (`faa`) of table `airports`. dm_get_all_fks(dm_nycflights13(cycle = TRUE)) #> # A tibble: 5 × 5 #> child_table child_fk_cols parent_table parent_key_cols on_delete #> #> 1 flights carrier airlines carrier no_action #> 2 flights origin airports faa no_action #> 3 flights dest airports faa no_action #> 4 flights tailnum planes tailnum no_action #> 5 flights origin, time_hour weather origin, time_hour no_action try( flights_dm_with_fk %>% dm_rm_fk(table = flights, column = dest, ref_table = airports) %>% dm_get_all_fks(c(flights, airports)) ) #> Error in abort_is_not_fkc() : No foreign keys to remove. flights_dm_with_fk %>% dm_rm_fk(flights, origin, airports) %>% dm_get_all_fks(c(flights, airports)) #> # A tibble: 0 × 5 #> # ℹ 5 variables: child_table , child_fk_cols , #> # parent_table , parent_key_cols , on_delete flights_dm_with_fk %>% dm_rm_fk(flights, columns = NULL, airports) %>% dm_get_all_fks(c(flights, airports)) #> Removing foreign keys: %>% #> dm_rm_fk(flights, origin, airports) #> # A tibble: 0 × 5 #> # ℹ 5 variables: child_table , child_fk_cols , #> # parent_table , parent_key_cols , on_delete dm_enum_fk_candidates(flights_dm_with_key, weather, airports) #> # A tibble: 15 × 3 #> columns candidate why #> #> 1 origin TRUE \"\" #> 2 year FALSE \"values of `weather$year` not in `airports$faa`: 2… #> 3 month FALSE \"values of `weather$month` not in `airports$faa`: … #> 4 day FALSE \"values of `weather$day` not in `airports$faa`: 3 … #> 5 hour FALSE \"values of `weather$hour` not in `airports$faa`: 1… #> 6 temp FALSE \"values of `weather$temp` not in `airports$faa`: 3… #> 7 dewp FALSE \"values of `weather$dewp` not in `airports$faa`: 2… #> 8 humid FALSE \"values of `weather$humid` not in `airports$faa`: … #> 9 wind_dir FALSE \"values of `weather$wind_dir` not in `airports$faa… #> 10 wind_speed FALSE \"values of `weather$wind_speed` not in `airports$f… #> 11 wind_gust FALSE \"values of `weather$wind_gust` not in `airports$fa… #> 12 precip FALSE \"values of `weather$precip` not in `airports$faa`:… #> 13 pressure FALSE \"values of `weather$pressure` not in `airports$faa… #> 14 visib FALSE \"values of `weather$visib` not in `airports$faa`: … #> 15 time_hour FALSE \"values of `weather$time_hour` not in `airports$fa…"},{"path":"https://dm.cynkra.com/articles/tech-dm-filter.html","id":"data-nycflights13","dir":"Articles","previous_headings":"","what":"Data: nycflights13","title":"Filtering in relational data models","text":"explore filtering {dm}, ’ll use {nycflights13} data flights, planes, airlines, airports weather tables. dataset contains information 336 776 flights departed New York City 2013, 3322 different planes 1458 airports involved. data comes US Bureau Transportation Statistics, documented ?nycflights13::flights. start exploration, create dm object {nycflights13} data. built-dm::dm_nycflights13() function takes care . default uses subset complete data though: flights 10th month considered, reducing number rows flights table 11 227. data model object contains data source tables, metadata tables. like create dm object tables example data, can use new_dm(), dm() as_dm() functions. See vignette(\"howto-dm-df\") details. console output ’dm` object shows data metadata, colored clarity: Now know five tables dm object. connected? relations best displayed visualization entity-relationship model: can look single table tbl. print airports table, call","code":"dm <- dm_nycflights13() dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4 dm_draw(dm) tbl(dm, \"airports\") #> Warning: `tbl.dm()` was deprecated in dm 0.2.0. #> ℹ Use `dm[[table_name]]` instead to access a specific table. #> This warning is displayed once every 8 hours. #> Call `lifecycle::last_lifecycle_warnings()` to see where this warning was #> generated. #> # A tibble: 86 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta I… 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Loga… 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows"},{"path":"https://dm.cynkra.com/articles/tech-dm-filter.html","id":"filter","dir":"Articles","previous_headings":"","what":"Filtering a dm object","title":"Filtering in relational data models","text":"dm_filter() allows select subset dm object.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-filter.html","id":"how-it-works","dir":"Articles","previous_headings":"Filtering a dm object","what":"How it works","title":"Filtering in relational data models","text":"Filtering dm object different filtering dataframe tibble dplyr::filter(). corresponding {dm} function dm::dm_filter(). function one filtering conditions can set one tables dm object. conditions immediately evaluated respective tables related tables. resulting table, related tables (directly indirectly) filter condition taken account following way: - filtering semi-joins successively performed along paths filtered tables requested table, join reducing left-hand side tables joins rows key values corresponding values key columns right-hand side tables join. - eventually requested table returned, containing remaining rows filtering joins Currently, works graph induced foreign key relations cycle free. Fortunately, default dm_nycflights13().","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-filter.html","id":"filtering-examples","dir":"Articles","previous_headings":"Filtering a dm object","what":"Filtering Examples","title":"Filtering in relational data models","text":"Let’s see filtering action: want data related John F. Kennedy International Airport. can get numbers rows table dm_nrow(). total number rows dm drops 2 951 987 (unaffected table disconnected weather table). Next example: Get dm object containing data flights New York Dulles International Airport Washington D.C., abbreviated IAD. Applying multiple filters different tables also supported. example: Get January 2013 flights Delta Air Lines didn’t depart John F. Kennedy International Airport. can inspect filtered tables subsetting . airlines table, Delta remaining carrier: planes used service flights? indeed, included flights departed January (month == 1): comparison, let’s review equivalent manual query flights dplyr syntax: {dm} code leaner foreign key information encoded object.","code":"filtered_dm <- dm %>% dm_filter(airports = (name == \"John F Kennedy Intl\")) filtered_dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4 rows_per_table <- filtered_dm %>% dm_nrow() rows_per_table #> airlines airports flights planes weather #> 10 1 602 336 38 sum(rows_per_table) #> [1] 987 sum_nrow <- sum(dm_nrow(dm)) sum_nrow_filtered <- sum(dm_nrow(dm_apply_filters(filtered_dm))) #> Warning: `dm_apply_filters()` was deprecated in dm 1.0.0. #> ℹ Calling `dm_apply_filters()` after `dm_filter()` is no longer necessary. #> This warning is displayed once every 8 hours. #> Call `lifecycle::last_lifecycle_warnings()` to see where this warning was #> generated. dm %>% dm_filter(flights = (dest == \"IAD\")) %>% dm_nrow() #> airlines airports flights planes weather #> 4 3 32 28 30 dm_delta_may <- dm %>% dm_filter( airlines = (name == \"Delta Air Lines Inc.\"), airports = (name != \"John F Kennedy Intl\"), flights = (month == 1) ) dm_delta_may #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4 dm_delta_may %>% dm_nrow() #> airlines airports flights planes weather #> 1 2 75 58 25 dm_delta_may$airlines #> # A tibble: 1 × 2 #> carrier name #> #> 1 DL Delta Air Lines Inc. dm_delta_may$planes #> # A tibble: 58 × 9 #> tailnum year type manufacturer model engines seats speed engine #> #> 1 N302NB 1999 Fixed wing … AIRBUS INDU… A319… 2 145 NA Turbo… #> 2 N304DQ 2008 Fixed wing … BOEING 737-… 2 149 NA Turbo… #> 3 N306DQ 2009 Fixed wing … BOEING 737-… 2 149 NA Turbo… #> 4 N307DQ 2009 Fixed wing … BOEING 737-… 2 149 NA Turbo… #> 5 N309US 1990 Fixed wing … AIRBUS INDU… A320… 2 182 NA Turbo… #> 6 N316US 1991 Fixed wing … AIRBUS INDU… A320… 2 182 NA Turbo… #> 7 N317NB 2000 Fixed wing … AIRBUS INDU… A319… 2 145 NA Turbo… #> 8 N318NB 2000 Fixed wing … AIRBUS INDU… A319… 2 145 NA Turbo… #> 9 N318US 1991 Fixed wing … AIRBUS INDU… A320… 2 182 NA Turbo… #> 10 N322NB 2001 Fixed wing … AIRBUS INDU… A319… 2 145 NA Turbo… #> # ℹ 48 more rows dm_delta_may$flights %>% dplyr::count(month) #> # A tibble: 1 × 2 #> month n #> #> 1 1 75 airlines_filtered <- filter(airlines, name == \"Delta Air Lines Inc.\") airports_filtered <- filter(airports, name != \"John F Kennedy Intl\") flights %>% semi_join(airlines_filtered, by = \"carrier\") %>% semi_join(airports_filtered, by = c(\"origin\" = \"faa\")) %>% filter(month == 5) #> # A tibble: 2,340 × 19 #> year month day dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 5 1 554 600 -6 731 #> 2 2013 5 1 555 600 -5 819 #> 3 2013 5 1 603 610 -7 754 #> 4 2013 5 1 622 630 -8 848 #> 5 2013 5 1 654 700 -6 931 #> 6 2013 5 1 655 700 -5 944 #> 7 2013 5 1 656 705 -9 1005 #> 8 2013 5 1 658 700 -2 925 #> 9 2013 5 1 743 745 -2 1014 #> 10 2013 5 1 755 800 -5 929 #> # ℹ 2,330 more rows #> # ℹ 12 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour "},{"path":"https://dm.cynkra.com/articles/tech-dm-filter.html","id":"sql-statements-behind-filtering-a-dm-object-on-a-database","dir":"Articles","previous_headings":"","what":"SQL statements behind filtering a dm object on a database","title":"Filtering in relational data models","text":"{dm} meant work relational data models, locally well databases. project, data probably stored locally remote relational database can queried SQL statements. can check queries using sql_render() {dbplyr} package. Example: Print SQL statements getting January 2013 flights Delta Air Lines, depart John F. Kennedy International Airport, data stored sqlite database. show SQL query behind dm_filter(), copy flights, airlines airports tables nyflights13 dataset temporary -memory database using built-function copy_dm_to() dbplyr::src_memdb. filter data, print corresponding SQL statement dbplyr::sql_render(). reading: {dm}’s function copying data databases.","code":"dm %>% dm_select_tbl(flights, airlines, airports) %>% copy_dm_to(dbplyr::src_memdb(), .) %>% dm_filter( airlines = (name == \"Delta Air Lines Inc.\"), airports = (name != \"John F Kennedy Intl\"), flights = (month == 1) ) %>% dm_get_tables() %>% purrr::map(dbplyr::sql_render) #> $flights #> SELECT `LHS`.* #> FROM ( #> SELECT `LHS`.* #> FROM ( #> SELECT `flights_1_20200828_071303_12345`.* #> FROM `flights_1_20200828_071303_12345` #> WHERE ((`month` = 1.0)) #> ) AS `LHS` #> WHERE EXISTS ( #> SELECT 1 FROM `airlines_1_20200828_071303_12345` #> WHERE #> (`LHS`.`carrier` = `airlines_1_20200828_071303_12345`.`carrier`) AND #> ((`airlines_1_20200828_071303_12345`.`name` = 'Delta Air Lines Inc.')) #> ) #> ) AS `LHS` #> WHERE EXISTS ( #> SELECT 1 FROM `airports_1_20200828_071303_12345` #> WHERE #> (`LHS`.`origin` = `airports_1_20200828_071303_12345`.`faa`) AND #> ((`airports_1_20200828_071303_12345`.`name` != 'John F Kennedy Intl')) #> ) #> #> $airlines #> SELECT `LHS`.* #> FROM ( #> SELECT `airlines_1_20200828_071303_12345`.* #> FROM `airlines_1_20200828_071303_12345` #> WHERE ((`name` = 'Delta Air Lines Inc.')) #> ) AS `LHS` #> WHERE EXISTS ( #> SELECT 1 FROM ( #> SELECT `LHS`.* #> FROM ( #> SELECT `flights_1_20200828_071303_12345`.* #> FROM `flights_1_20200828_071303_12345` #> WHERE ((`month` = 1.0)) #> ) AS `LHS` #> WHERE EXISTS ( #> SELECT 1 FROM `airports_1_20200828_071303_12345` #> WHERE #> (`LHS`.`origin` = `airports_1_20200828_071303_12345`.`faa`) AND #> ((`airports_1_20200828_071303_12345`.`name` != 'John F Kennedy Intl')) #> ) #> ) AS `RHS` #> WHERE (`LHS`.`carrier` = `RHS`.`carrier`) #> ) #> #> $airports #> SELECT `LHS`.* #> FROM ( #> SELECT `airports_1_20200828_071303_12345`.* #> FROM `airports_1_20200828_071303_12345` #> WHERE ((`name` != 'John F Kennedy Intl')) #> ) AS `LHS` #> WHERE EXISTS ( #> SELECT 1 FROM ( #> SELECT `LHS`.* #> FROM ( #> SELECT `flights_1_20200828_071303_12345`.* #> FROM `flights_1_20200828_071303_12345` #> WHERE ((`month` = 1.0)) #> ) AS `LHS` #> WHERE EXISTS ( #> SELECT 1 FROM `airlines_1_20200828_071303_12345` #> WHERE #> (`LHS`.`carrier` = `airlines_1_20200828_071303_12345`.`carrier`) AND #> ((`airlines_1_20200828_071303_12345`.`name` = 'Delta Air Lines Inc.')) #> ) #> ) AS `RHS` #> WHERE (`LHS`.`faa` = `RHS`.`origin`) #> )"},{"path":"https://dm.cynkra.com/articles/tech-dm-join.html","id":"data-nycflights13","dir":"Articles","previous_headings":"","what":"Data: nycflights13","title":"Joining in relational data models","text":"explore filtering {dm}, ’ll use {nycflights13} data tables flights, planes, airlines airports. dataset contains information 336,776 flights departed New York City 2013, 3,322 different planes 1,458 airports involved. data comes US Bureau Transportation Statistics, documented ?nycflights13. First, create dm object {nycflights13} data. implemented dm_nycflights13(). data model object contains data well metadata. like create dm tables, please look ?dm function new_dm().","code":"dm <- dm_nycflights13()"},{"path":"https://dm.cynkra.com/articles/tech-dm-join.html","id":"join","dir":"Articles","previous_headings":"","what":"Joining a dm object","title":"Joining in relational data models","text":"{dm} allows join two tables dm object based shared column. can use join functions know {dplyr} package. Currently {dplyr} supports four types mutating joins, two types filtering joins, nesting join. See ?dplyr::join details.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-join.html","id":"how-it-works","dir":"Articles","previous_headings":"Joining a dm object","what":"How it works","title":"Joining in relational data models","text":"join combination two tables based shared information. technical terms, merge tables need directly connected foreign key relation. existing links can inspected two ways: Visually, drawing data model dm_draw() directed arrows show explicitly relation different columns. Printed console calling dm_get_all_fks()","code":"dm %>% dm_draw() dm %>% dm_get_all_fks() #> # A tibble: 4 × 5 #> child_table child_fk_cols parent_table parent_key_cols on_delete #> #> 1 flights carrier airlines carrier no_action #> 2 flights origin airports faa no_action #> 3 flights tailnum planes tailnum no_action #> 4 flights origin, time_hour weather origin, time_hour no_action"},{"path":"https://dm.cynkra.com/articles/tech-dm-join.html","id":"joining-examples","dir":"Articles","previous_headings":"Joining a dm object","what":"Joining Examples","title":"Joining in relational data models","text":"Let’s look examples: Add column airline names airlines table flights table. can see , dm_joined data frame one column flights table. difference name column airlines table. result dm object anymore, (tibble) data frame: Another example: Get flights can’t matched airlines names. expect flights data {nycflights13} package clean well organized, flights remain. can check anti_join: example filtering dm merging: Get May 2013 flights Delta Air Lines didn’t depart John F. Kennedy International Airport - join airports data flights table. See vignette(\"tech-dm-filter\") details filtering. last example: Merge tables one big table. Sometimes need everything one place. case, can use dm_flatten_to_tbl() function. joins tables dm object together one wide table. specify starting table. following joins determined foreign key links. precise, dm_flatten_to_tbl() join tables one level hierarchy (.e., direct neighbors table .start). want cover tables levels hierarchy, use argument recursive = TRUE dm_flatten_to_tbl() instead. Also, aware column names need unique. dm_flatten_to_tbl() takes care automatically renaming relevant columns informs user names changed, e.g. dm_rename(airlines, airlines.name = name). want merge tables, get nested table return, use dm_wrap_tbl() pull_tbl() instead:","code":"dm_joined <- dm %>% dm_flatten_to_tbl(flights, airlines, .join = left_join) dm_joined #> # A tibble: 1,761 × 20 #> year month day dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 2359 4 426 #> 2 2013 1 10 16 2359 17 447 #> 3 2013 1 10 450 500 -10 634 #> 4 2013 1 10 520 525 -5 813 #> 5 2013 1 10 530 530 0 824 #> 6 2013 1 10 531 540 -9 832 #> 7 2013 1 10 535 540 -5 1015 #> 8 2013 1 10 546 600 -14 645 #> 9 2013 1 10 549 600 -11 652 #> 10 2013 1 10 550 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 13 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour , name dm$flights %>% names() #> [1] \"year\" \"month\" \"day\" \"dep_time\" #> [5] \"sched_dep_time\" \"dep_delay\" \"arr_time\" \"sched_arr_time\" #> [9] \"arr_delay\" \"carrier\" \"flight\" \"tailnum\" #> [13] \"origin\" \"dest\" \"air_time\" \"distance\" #> [17] \"hour\" \"minute\" \"time_hour\" dm$airlines %>% names() #> [1] \"carrier\" \"name\" dm_joined %>% names() #> [1] \"year\" \"month\" \"day\" \"dep_time\" #> [5] \"sched_dep_time\" \"dep_delay\" \"arr_time\" \"sched_arr_time\" #> [9] \"arr_delay\" \"carrier\" \"flight\" \"tailnum\" #> [13] \"origin\" \"dest\" \"air_time\" \"distance\" #> [17] \"hour\" \"minute\" \"time_hour\" \"name\" dm_joined %>% class() #> [1] \"tbl_df\" \"tbl\" \"data.frame\" dm %>% dm_flatten_to_tbl(flights, airlines, .join = anti_join) #> # A tibble: 0 × 19 #> # ℹ 19 variables: year , month , day , dep_time , #> # sched_dep_time , dep_delay , arr_time , #> # sched_arr_time , arr_delay , carrier , flight , #> # tailnum , origin , dest , air_time , #> # distance , hour , minute , time_hour dm_nycflights13(subset = FALSE) %>% dm_filter( airlines = (name == \"Delta Air Lines Inc.\"), airports = (name != \"John F Kennedy Intl\"), flights = (month == 5) ) %>% dm_flatten_to_tbl(flights, airports, .join = left_join) #> # A tibble: 2,340 × 26 #> year month day dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 5 1 554 600 -6 731 #> 2 2013 5 1 555 600 -5 819 #> 3 2013 5 1 603 610 -7 754 #> 4 2013 5 1 622 630 -8 848 #> 5 2013 5 1 654 700 -6 931 #> 6 2013 5 1 655 700 -5 944 #> 7 2013 5 1 656 705 -9 1005 #> 8 2013 5 1 658 700 -2 925 #> 9 2013 5 1 743 745 -2 1014 #> 10 2013 5 1 755 800 -5 929 #> # ℹ 2,330 more rows #> # ℹ 19 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour , name , lat , lon , alt , #> # tz , dst , tzone dm_nycflights13() %>% dm_select_tbl(-weather) %>% dm_flatten_to_tbl(.start = flights) #> Renaming ambiguous columns: %>% #> dm_rename(flights, year.flights = year) %>% #> dm_rename(airlines, name.airlines = name) %>% #> dm_rename(airports, name.airports = name) %>% #> dm_rename(planes, year.planes = year) #> # A tibble: 1,761 × 35 #> year.flights month day dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 2359 4 426 #> 2 2013 1 10 16 2359 17 447 #> 3 2013 1 10 450 500 -10 634 #> 4 2013 1 10 520 525 -5 813 #> 5 2013 1 10 530 530 0 824 #> 6 2013 1 10 531 540 -9 832 #> 7 2013 1 10 535 540 -5 1015 #> 8 2013 1 10 546 600 -14 645 #> 9 2013 1 10 549 600 -11 652 #> 10 2013 1 10 550 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 28 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour , name.airlines , name.airports , lat , #> # lon , alt , tz , dst , tzone , #> # year.planes , type , manufacturer , model , … dm_nycflights13() %>% dm_wrap_tbl(root = flights) %>% pull_tbl(flights) #> # A tibble: 1,761 × 23 #> year month day dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 2359 4 426 #> 2 2013 1 10 16 2359 17 447 #> 3 2013 1 10 450 500 -10 634 #> 4 2013 1 10 520 525 -5 813 #> 5 2013 1 10 530 530 0 824 #> 6 2013 1 10 531 540 -9 832 #> 7 2013 1 10 535 540 -5 1015 #> 8 2013 1 10 546 600 -14 645 #> 9 2013 1 10 549 600 -11 652 #> 10 2013 1 10 550 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 16 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour , airlines , airports , #> # planes , weather "},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"enabling-dplyr-workflow-within-a-dm","dir":"Articles","previous_headings":"","what":"Enabling {dplyr}-workflow within a dm","title":"Manipulating individual tables","text":"dm_get_tables() pull_tbl() functions new experimental argument keyed, defaults FALSE. set TRUE, list objects class dm_keyed_tbl returned instead. dm_keyed_tbl inherits tbl tbl_lazy, many {dplyr} {tidyr} verbs work unchanged. objects also attempt track primary foreign keys, available joins recombining tables later dm object. finished transforming data, can use dm() new_dm() recombine tables dm object. resulting tables dm primary foreign keys available tracked original table. Reconstructing dm object strictly necessary ’re primarily interested deriving one multiple separate tables analysis. workflow proves useful seems, subsetting tables via $, [[ default keyed = TRUE forthcoming major release {dm}.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"Manipulating individual tables","text":"much theory, look feel? explore , make use trusted {nycflights13} data.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"use-case-1-add-a-new-column-to-an-existing-table","dir":"Articles","previous_headings":"Examples","what":"Use case 1: Add a new column to an existing table","title":"Manipulating individual tables","text":"Imagine want column flights, specifying flight left noon . Just like {dplyr}, can tackle mutate(). Let us step step: update original dm new flights table use dm(). bang-bang-bang (!!!) technical necessity become superfluous forthcoming release.","code":"library(dm) library(dplyr) flights_dm <- dm_nycflights13(cycle = TRUE) flights_dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 5 flights_keyed <- flights_dm %>% dm_get_tables(keyed = TRUE) # The print output for a `dm_keyed_tbl` looks very much like that from a normal # `tibble`, with additional details about keys. flights_keyed$flights #> # A tibble: 1,761 × 19 #> # Keys: — | 0 | 5 #> year month day dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 2359 4 426 #> 2 2013 1 10 16 2359 17 447 #> 3 2013 1 10 450 500 -10 634 #> 4 2013 1 10 520 525 -5 813 #> 5 2013 1 10 530 530 0 824 #> 6 2013 1 10 531 540 -9 832 #> 7 2013 1 10 535 540 -5 1015 #> 8 2013 1 10 546 600 -14 645 #> 9 2013 1 10 549 600 -11 652 #> 10 2013 1 10 550 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 12 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour flights_tbl_mutate <- flights_keyed$flights %>% mutate(am_pm_dep = if_else(dep_time < 1200, \"am\", \"pm\"), .after = dep_time) flights_tbl_mutate #> # A tibble: 1,761 × 20 #> # Keys: — | 0 | 5 #> year month day dep_time am_pm_dep sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 am 2359 4 426 #> 2 2013 1 10 16 am 2359 17 447 #> 3 2013 1 10 450 am 500 -10 634 #> 4 2013 1 10 520 am 525 -5 813 #> 5 2013 1 10 530 am 530 0 824 #> 6 2013 1 10 531 am 540 -9 832 #> 7 2013 1 10 535 am 540 -5 1015 #> 8 2013 1 10 546 am 600 -14 645 #> 9 2013 1 10 549 am 600 -11 652 #> 10 2013 1 10 550 am 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 12 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour updated_flights_dm <- dm( flights = flights_tbl_mutate, !!!flights_keyed[c(\"airlines\", \"airports\", \"planes\", \"weather\")] ) # The only difference in the `dm` print output is the increased number of # columns updated_flights_dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `flights`, `airlines`, `airports`, `planes`, `weather` #> Columns: 54 #> Primary keys: 4 #> Foreign keys: 5 # The schematic view of the data model remains unchanged dm_draw(updated_flights_dm)"},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"use-case-2-creation-of-a-surrogate-key","dir":"Articles","previous_headings":"Examples","what":"Use case 2: Creation of a surrogate key","title":"Manipulating individual tables","text":"course action , example, employed create surrogate key table, synthetic simple key replaces compound key. can weather table.","code":"library(tidyr) flights_keyed$weather #> # A tibble: 144 × 15 #> # Keys: `origin`, `time_hour` | 1 | 0 #> origin year month day hour temp dewp humid wind_dir wind_speed #> #> 1 EWR 2013 1 10 0 41 32 70.1 230 8.06 #> 2 EWR 2013 1 10 1 39.0 30.0 69.9 210 9.21 #> 3 EWR 2013 1 10 2 39.0 28.9 66.8 230 6.90 #> 4 EWR 2013 1 10 3 39.9 27.0 59.5 270 5.75 #> 5 EWR 2013 1 10 4 41 26.1 55.0 320 6.90 #> 6 EWR 2013 1 10 5 41 26.1 55.0 300 12.7 #> 7 EWR 2013 1 10 6 39.9 25.0 54.8 280 6.90 #> 8 EWR 2013 1 10 7 41 25.0 52.6 330 6.90 #> 9 EWR 2013 1 10 8 43.0 25.0 48.7 330 8.06 #> 10 EWR 2013 1 10 9 45.0 23 41.6 320 17.3 #> # ℹ 134 more rows #> # ℹ 5 more variables: wind_gust , precip , pressure , #> # visib , time_hour # Maybe there is some hidden candidate for a primary key that we overlooked? enum_pk_candidates(flights_keyed$weather) #> # A tibble: 15 × 3 #> columns candidate why #> #> 1 origin FALSE has duplicate values: EWR (48), JFK (48), LGA (48) #> 2 year FALSE has duplicate values: 2013 (144) #> 3 month FALSE has duplicate values: 1 (72), 2 (72) #> 4 day FALSE has duplicate values: 10 (144) #> 5 hour FALSE has duplicate values: 0 (6), 1 (6), 2 (6), 3 (6), … #> 6 temp FALSE has duplicate values: 44.06 (12), 41.00 (8), 44.96… #> 7 dewp FALSE has duplicate values: 21.92 (16), 24.98 (16), 6.98… #> 8 humid FALSE has duplicate values: 53.71 (4), 56.56 (4), 32.53 … #> 9 wind_dir FALSE has duplicate values: 320 (25), 330 (17), 310 (15)… #> 10 wind_speed FALSE has duplicate values: 6.90468 (20), 8.05546 (19), … #> 11 wind_gust FALSE has 123 missing values, and duplicate values: 23.0… #> 12 precip FALSE has duplicate values: 0 (144) #> 13 pressure FALSE has duplicate values: 1028.9 (6), 1029.0 (5), 1032… #> 14 visib FALSE has duplicate values: 10 (144) #> 15 time_hour FALSE has duplicate values: 2013-01-10 00:00:00 (3), 201… # Seems we have to construct a column with unique values # This can be done by combining column `origin` with `time_hour`, if the latter # is converted to a single time zone first; all within the `dm`: weather_tbl_mutate <- flights_keyed$weather %>% # first convert all times to the same time zone: mutate(time_hour_fmt = format(time_hour, tz = \"UTC\")) %>% # paste together as character the airport code and the time unite(\"origin_slot_id\", origin, time_hour_fmt) %>% select(origin_slot_id, everything()) # check if we the result is as expected: weather_tbl_mutate %>% enum_pk_candidates() %>% filter(candidate) #> # A tibble: 1 × 3 #> columns candidate why #> #> 1 origin_slot_id TRUE \"\" # We apply the same transformation to create # the foreign key in the flights table: flights_tbl_mutate <- flights_keyed$flights %>% mutate(time_hour_fmt = format(time_hour, tz = \"UTC\")) %>% unite(\"origin_slot_id\", origin, time_hour_fmt) %>% select(origin_slot_id, everything()) surrogate_flights_dm <- dm( weather = weather_tbl_mutate, flights = flights_tbl_mutate, !!!flights_keyed[c(\"airlines\", \"airports\", \"planes\")] ) %>% dm_add_pk(weather, origin_slot_id) %>% dm_add_fk(flights, origin_slot_id, weather) surrogate_flights_dm %>% dm_draw()"},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"use-case-3-disentangle-dm","dir":"Articles","previous_headings":"Examples","what":"Use case 3: Disentangle dm","title":"Manipulating individual tables","text":"look dm created dm_nycflights13(cycle = TRUE), see two columns flights relate table, airports. One column stands departure airport arrival airport. generates cycle leads failures many operations work cycle-free data models, dm_flatten_to_tbl(), dm_filter() dm_wrap_tbl(). cases, can beneficial “disentangle” dm duplicating referred table. One way {dm}-framework follows:","code":"disentangled_flights_dm <- dm( destination = flights_keyed$airports, origin = flights_keyed$airports, !!!flights_keyed[c(\"flights\", \"airlines\", \"planes\", \"weather\")] ) %>% # Key relations are also duplicated, so the wrong ones need to be removed dm_rm_fk(flights, dest, origin) %>% dm_rm_fk(flights, origin, destination) disentangled_flights_dm %>% dm_draw()"},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"use-case-4-add-summary-table-to-dm","dir":"Articles","previous_headings":"Examples","what":"Use case 4: Add summary table to dm","title":"Manipulating individual tables","text":"example adding summary table new table dm. Foreign-key relations taken care automatically. example shows alternative approach deconstruction reconstruction using pull_tbl().","code":"flights_derived <- flights_dm %>% pull_tbl(flights, keyed = TRUE) %>% dplyr::count(origin, carrier) derived_flights_dm <- dm(flights_derived, !!!flights_keyed) derived_flights_dm %>% dm_draw()"},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"use-case-5-joining-tables","dir":"Articles","previous_headings":"Examples","what":"Use case 5: Joining tables","title":"Manipulating individual tables","text":"like join columns one table another, can make use one ..._join() methods dm_keyed_tbl. many cases, using keyed tables derived dm object allows omitting argument without triggering message, safely inferred foreign keys stored dm_keyed_tbl objects. syntax, please see example .","code":"planes_for_join <- flights_keyed$planes %>% select(tailnum, plane_type = type) joined_flights_tbl <- flights_keyed$flights %>% # let's first reduce the number of columns of flights select(-dep_delay:-arr_delay, -air_time:-minute, -starts_with(\"sched_\")) %>% # in the {dm}-method for the joins you can specify which columns you want to # add to the subsetted table left_join(planes_for_join) joined_flights_dm <- dm( flights_plane_type = joined_flights_tbl, !!!flights_keyed[c(\"airlines\", \"airports\", \"weather\")] ) # this is how the table looks now joined_flights_dm$flights_plane_type #> # A tibble: 1,761 × 11 #> year month day dep_time carrier flight tailnum origin dest #> #> 1 2013 1 10 3 B6 727 N571JB JFK BQN #> 2 2013 1 10 16 B6 739 N564JB JFK PSE #> 3 2013 1 10 450 US 1117 N171US EWR CLT #> 4 2013 1 10 520 UA 1018 N35204 EWR IAH #> 5 2013 1 10 530 UA 404 N815UA LGA IAH #> 6 2013 1 10 531 AA 1141 N5EAAA JFK MIA #> 7 2013 1 10 535 B6 725 N784JB JFK BQN #> 8 2013 1 10 546 B6 380 N337JB EWR BOS #> 9 2013 1 10 549 EV 6055 N19554 LGA IAD #> 10 2013 1 10 550 US 2114 N740UW LGA BOS #> # ℹ 1,751 more rows #> # ℹ 2 more variables: time_hour , plane_type # also here, the FK-relations are transferred to the new table joined_flights_dm %>% dm_draw()"},{"path":"https://dm.cynkra.com/articles/tech-dm-keyed.html","id":"use-case-6-retrieve-all-tables","dir":"Articles","previous_headings":"Examples","what":"Use case 6: Retrieve all tables","title":"Manipulating individual tables","text":"Retrieving tables dm object requires lot boilerplate code. dm_deconstruct() function helps creating boilerplate. dm object, prints code necessary create local variables tables. code can copy-pasted script function.","code":"dm <- dm_nycflights13() dm_deconstruct(dm) #> airlines <- pull_tbl(dm, \"airlines\", keyed = TRUE) #> airports <- pull_tbl(dm, \"airports\", keyed = TRUE) #> flights <- pull_tbl(dm, \"flights\", keyed = TRUE) #> planes <- pull_tbl(dm, \"planes\", keyed = TRUE) #> weather <- pull_tbl(dm, \"weather\", keyed = TRUE)"},{"path":"https://dm.cynkra.com/articles/tech-dm-low-level.html","id":"testing-key-constraints","dir":"Articles","previous_headings":"","what":"Testing key constraints","title":"Model verification - keys, constraints and normalization","text":"section contains information examples following functions: check_key(.data, ...) check_subset(t1, c1, t2, c2) check_set_equality(t1, c1, t2, c2) tables (data frames) connected key relations, {dm} can help verify assumed key relations /determine existing key relations tables. example, tables: want know primary key data_1, can use check_key() function: Mind error message test passed. data_2, column key: see column one table contains values also present another column another table, check_subset() function can used: function important determining column foreign key table. inverse relation? kept mind check_subset() test column c2 unique key table t2. order find (child) table t1 contains column c1 foreign key (parent) table t2 corresponding column c2, following method used: check directions , find unique values c_1 t_1 c_2 t_2, {dm} provides function check_set_equality(): Introducing one table enables us show looks test passed: test passed, return value function first table parameter (invisibly). ensures functions can conveniently used pipe configuration.","code":"data_1 <- tibble(a = c(1, 2, 1), b = c(1, 4, 1), c = c(5, 6, 7)) data_2 <- tibble(a = c(1, 2, 3), b = c(4, 5, 6), c = c(7, 8, 9)) check_key(data_1, a) #> Error in `abort_not_unique_key()` at dm/R/key-helpers.R:64:5: #> ! (`a`) not a unique key of `data_1`. check_key(data_2, a) check_subset(data_1, a, data_2, a) check_subset(data_2, a, data_1, a) #> # A tibble: 1 × 1 #> a #> #> 1 3 #> Error in `abort_not_subset_of()` at dm/R/key-helpers.R:240:3: #> ! Column (`a`) of table `data_2` contains values (see examples above) that are not present in column (`a`) of table `data_1`. check_key(t2, c2) check_subset(t1, c1, t2, c2) check_set_equality(data_1, a, data_2, a) #> # A tibble: 1 × 1 #> a #> #> 1 3 #> Error in `abort_sets_not_equal()` at dm/R/key-helpers.R:190:5: #> ! Column (`a`) of table `data_2` contains values (see examples above) that are not present in column (`a`) of table `data_1`. data_3 <- tibble(a = c(2, 1, 2), b = c(4, 5, 6), c = c(7, 8, 9)) check_set_equality(data_1, a, data_3, a)"},{"path":"https://dm.cynkra.com/articles/tech-dm-low-level.html","id":"testing-cardinalities-between-two-tables","dir":"Articles","previous_headings":"","what":"Testing cardinalities between two tables","title":"Model verification - keys, constraints and normalization","text":"section contains information examples functions check_cardinality_0_n(parent_table, primary_key_column, child_table, foreign_key_column) check_cardinality_1_n(parent_table, primary_key_column, child_table, foreign_key_column) check_cardinality_0_1(parent_table, primary_key_column, child_table, foreign_key_column) check_cardinality_1_1(parent_table, primary_key_column, child_table, foreign_key_column) examine_cardinality(parent_table, primary_key_column, child_table, foreign_key_column) four functions testing specific kind cardinality relation require parent table child table inputs. functions first test requirement fulfilled checking : primary_key_column unique key parent_table set values foreign_key_column subset set values primary_key_column cardinality specifications 0_n, 1_n, 0_1, 1_1 refer expected relation child table parent table. numbers ‘0’, ‘1’ ‘n’ refer number values child table’s column (foreign_key_column) correspond value parent table’s column (primary_key_column). ‘n’ means one context, upper limit. 0_n means, value parent_key_column, number corresponding records child table unrestricted. 1_n means, value parent_key_column least one corresponding record child table. means “surjective” relation child table parent table w.r.t. specified columns, .e. parent table column value exists least one equal child table column value. 0_1 means, value parent_key_column, least zero one value correspond column child table. means “injective” relation child table parent table w.r.t. specified columns, .e. parent table column value addressed multiple times. parent table column values referred . 1_1 means, value parent_key_column, exactly one value correspond child table’s column. means “bijective” (“injective” “surjective”) relation child table parent table w.r.t. specified columns, .e. set values two columns equal duplicates either . Also examine_cardinality() first performs mentioned tests figure , parent-child table relationship criteria met. Subsequently, two checks made determine nature relation (surjective, injective, bijective, none ) two columns.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-low-level.html","id":"examples","dir":"Articles","previous_headings":"Testing cardinalities between two tables","what":"Examples","title":"Model verification - keys, constraints and normalization","text":"Given following three data frames: examples cardinality testing functions can used: examine_cardinality() returns type relation, e.g.: Just like underlying cardinality functions, also inform restrictions cardinality violated:","code":"d1 <- tibble(a = 1:5) d2 <- tibble(c = c(1:5, 5)) d3 <- tibble(c = 1:4) d4 <- tibble(a = c(2:5, 5)) # This does not pass, `c` is not unique key of d2: check_cardinality_0_n(d2, c, d1, a) #> Error in `abort_not_unique_key()` at dm/R/key-helpers.R:64:5: #> ! (`c`) not a unique key of `d2`. # This passes, multiple values in d2$c are allowed: check_cardinality_0_n(d1, a, d2, c) # This does not pass, injectivity is violated: check_cardinality_1_1(d1, a, d2, c) #> Error in `abort_not_bijective()` at dm/R/check-cardinalities.R:155:3: #> ! 1..1 cardinality (bijectivity) is not given: Column (`c`) in table `d2` contains duplicate values. # This passes: check_cardinality_0_1(d1, a, d3, c) examine_cardinality(d1, a, d3, c) #> [1] \"injective mapping (child: 0 or 1 -> parent: 1)\" examine_cardinality(d1, a, d2, c) #> [1] \"surjective mapping (child: 1 to n -> parent: 1)\" examine_cardinality(d1, a, d1, a) #> [1] \"bijective mapping (child: 1 -> parent: 1)\" examine_cardinality(d1, a, d4, a) #> [1] \"generic mapping (child: 0 to n -> parent: 1)\" examine_cardinality(d2, c, d1, a) #> Column (`c`) not a unique key of `d2`."},{"path":"https://dm.cynkra.com/articles/tech-dm-low-level.html","id":"table-surgery","dir":"Articles","previous_headings":"","what":"Table surgery","title":"Model verification - keys, constraints and normalization","text":"relevant functions : decompose_table(.data, new_id_column, ...) reunite_parent_child(child_table, parent_table, id_column) reunite_parent_child_from_list(list_of_parent_child_tables, id_column) first function implements table normalization. existing table split parent table (.e. lookup table) child table (containing observations), linked key column (: new_id_column). Basically, foreign key relation created, pointing new_id_column child table parent table’s corresponding column, can seen parent table’s primary key column. function decompose_table() , can seen following example: new column created, two tables can joined , essentially creating original table. functions inverse operation, .e. join parent child table subsequently drop new_id_column, reunite_parent_child() reunite_parent_child_from_list(). former takes arguments two tables unquoted name ID column, latter takes arguments list two tables plus unquoted name ID column: Currently, functions exist low-level operation tables. plan extend operation dm objects future.","code":"mtcars_tibble <- tibble::as_tibble(mtcars) mtcars_tibble #> # A tibble: 32 × 11 #> mpg cyl disp hp drat wt qsec vs am gear carb #> #> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4 #> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4 #> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1 #> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1 #> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2 #> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1 #> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4 #> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2 #> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2 #> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4 #> # ℹ 22 more rows decomposed_table <- decompose_table(mtcars_tibble, am_gear_carb_id, am, gear, carb) decomposed_table #> $child_table #> # A tibble: 32 × 9 #> mpg cyl disp hp drat wt qsec vs am_gear_carb_id #> #> 1 21 6 160 110 3.9 2.62 16.5 0 7 #> 2 21 6 160 110 3.9 2.88 17.0 0 7 #> 3 22.8 4 108 93 3.85 2.32 18.6 1 8 #> 4 21.4 6 258 110 3.08 3.22 19.4 1 1 #> 5 18.7 8 360 175 3.15 3.44 17.0 0 2 #> 6 18.1 6 225 105 2.76 3.46 20.2 1 1 #> 7 14.3 8 360 245 3.21 3.57 15.8 0 3 #> 8 24.4 4 147. 62 3.69 3.19 20 1 4 #> 9 22.8 4 141. 95 3.92 3.15 22.9 1 4 #> 10 19.2 6 168. 123 3.92 3.44 18.3 1 5 #> # ℹ 22 more rows #> #> $parent_table #> # A tibble: 13 × 4 #> am_gear_carb_id am gear carb #> #> 1 7 1 4 4 #> 2 8 1 4 1 #> 3 1 0 3 1 #> 4 2 0 3 2 #> 5 3 0 3 4 #> 6 4 0 4 2 #> 7 5 0 4 4 #> 8 6 0 3 3 #> 9 9 1 4 2 #> 10 10 1 5 2 #> 11 11 1 5 4 #> 12 12 1 5 6 #> 13 13 1 5 8 parent_table <- decomposed_table$parent_table child_table <- decomposed_table$child_table reunite_parent_child(child_table, parent_table, id_column = am_gear_carb_id) #> # A tibble: 32 × 11 #> mpg cyl disp hp drat wt qsec vs am gear carb #> #> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4 #> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4 #> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1 #> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1 #> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2 #> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1 #> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4 #> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2 #> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2 #> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4 #> # ℹ 22 more rows # Shortcut: reunite_parent_child_from_list(decomposed_table, id_column = am_gear_carb_id)"},{"path":"https://dm.cynkra.com/articles/tech-dm-naming.html","id":"prefixes","dir":"Articles","previous_headings":"","what":"Prefixes","title":"Function naming logic","text":"function takes dm object first argument function constructs dm object objects check_: Certain tests arguments performed error thrown case passed. tests passed, first argument returned invisibly. examine_: function executes checks returns object containing overview results checks. important extended prefixes dm_..._: dm_examine_: function examines several aspects dm object dm_add_: Adds either key constraints new tables dm dm_get_: Retrieves specific piece information dm (often part constituents) dm_rm_: Removes either key constraints tables dm","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-naming.html","id":"suffixes","dir":"Articles","previous_headings":"","what":"Suffixes","title":"Function naming logic","text":"_dm: Validators, checkers, coercers _to_tbl: Data dm processed way tibble produced _candidates: key-candidates calculated presented tibble-form _pk(s): Relates primary key(s) _fk(s): Relates foreign key(s) _tbl: Add/remove/select/rename tibble //within dm object _colors: Relates colors visualization dm object _zoomed: Insert, update, discard zoomed table. combination prefix dm_, indicates first argument dm_zoomed rather dm.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"enabling-dplyr-workflow-within-a-dm","dir":"Articles","previous_headings":"","what":"Enabling {dplyr}-workflow within a dm","title":"Zooming and manipulating tables","text":"“Zooming” table dm means: information stored original dm kept, including originally zoomed table object class dm_zoomed produced, presenting view table transformations need specify table calling select(), mutate() table manipulation functions {dm} provides methods many {dplyr}-verbs dm_zoomed behave way used , affecting zoomed table leaving rest dm untouched. finished transforming table, three options proceed: use dm_update_zoomed() want replace originally zoomed table new table use dm_insert_zoomed() creating new table dm use dm_discard_zoomed() need result want discard employing one first two options, resulting table dm primary foreign keys available tracked originally zoomed table.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"Zooming and manipulating tables","text":"much theory, look feel? explore , make use trusted {nycflights13} data.","code":""},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"use-case-1-add-a-new-column-to-an-existing-table","dir":"Articles","previous_headings":"Examples","what":"Use case 1: Add a new column to an existing table","title":"Zooming and manipulating tables","text":"Imagine want column flights, specifying flight left noon . Just like {dplyr}, can tackle mutate(). Let us step step:","code":"library(dm) library(dplyr) flights_dm <- dm_nycflights13() flights_dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4 flights_zoomed <- flights_dm %>% dm_zoom_to(flights) # The print output for a `dm_zoomed` looks very much like that from a normal `tibble`. flights_zoomed #> # Zoomed table: flights #> # A tibble: 1,761 × 19 #> year month day dep_time sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 2359 4 426 #> 2 2013 1 10 16 2359 17 447 #> 3 2013 1 10 450 500 -10 634 #> 4 2013 1 10 520 525 -5 813 #> 5 2013 1 10 530 530 0 824 #> 6 2013 1 10 531 540 -9 832 #> 7 2013 1 10 535 540 -5 1015 #> 8 2013 1 10 546 600 -14 645 #> 9 2013 1 10 549 600 -11 652 #> 10 2013 1 10 550 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 12 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour flights_zoomed_mutate <- flights_zoomed %>% mutate(am_pm_dep = if_else(dep_time < 1200, \"am\", \"pm\")) %>% # in order to see our changes in the output we use `select()` for reordering the columns select(year:dep_time, am_pm_dep, everything()) flights_zoomed_mutate #> # Zoomed table: flights #> # A tibble: 1,761 × 20 #> year month day dep_time am_pm_dep sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 am 2359 4 426 #> 2 2013 1 10 16 am 2359 17 447 #> 3 2013 1 10 450 am 500 -10 634 #> 4 2013 1 10 520 am 525 -5 813 #> 5 2013 1 10 530 am 530 0 824 #> 6 2013 1 10 531 am 540 -9 832 #> 7 2013 1 10 535 am 540 -5 1015 #> 8 2013 1 10 546 am 600 -14 645 #> 9 2013 1 10 549 am 600 -11 652 #> 10 2013 1 10 550 am 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 12 more variables: sched_arr_time , arr_delay , #> # carrier , flight , tailnum , origin , dest , #> # air_time , distance , hour , minute , #> # time_hour # To update the original `dm` with a new `flights` table we use `dm_update_zoomed()`: updated_flights_dm <- flights_zoomed_mutate %>% dm_update_zoomed() # The only difference in the `dm` print output is the increased number of columns updated_flights_dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 54 #> Primary keys: 4 #> Foreign keys: 4 # The schematic view of the data model remains unchanged dm_draw(updated_flights_dm)"},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"use-case-2-creation-of-a-surrogate-key","dir":"Articles","previous_headings":"Examples","what":"Use case 2: Creation of a surrogate key","title":"Zooming and manipulating tables","text":"course action , example, employed create surrogate key table, synthetic simple key replaces compound key. can weather table.","code":"library(tidyr) weather_zoomed <- flights_dm %>% dm_zoom_to(weather) weather_zoomed #> # Zoomed table: weather #> # A tibble: 144 × 15 #> origin year month day hour temp dewp humid wind_dir wind_speed #> #> 1 EWR 2013 1 10 0 41 32 70.1 230 8.06 #> 2 EWR 2013 1 10 1 39.0 30.0 69.9 210 9.21 #> 3 EWR 2013 1 10 2 39.0 28.9 66.8 230 6.90 #> 4 EWR 2013 1 10 3 39.9 27.0 59.5 270 5.75 #> 5 EWR 2013 1 10 4 41 26.1 55.0 320 6.90 #> 6 EWR 2013 1 10 5 41 26.1 55.0 300 12.7 #> 7 EWR 2013 1 10 6 39.9 25.0 54.8 280 6.90 #> 8 EWR 2013 1 10 7 41 25.0 52.6 330 6.90 #> 9 EWR 2013 1 10 8 43.0 25.0 48.7 330 8.06 #> 10 EWR 2013 1 10 9 45.0 23 41.6 320 17.3 #> # ℹ 134 more rows #> # ℹ 5 more variables: wind_gust , precip , pressure , #> # visib , time_hour # Maybe there is some hidden candidate for a primary key that we overlooked enum_pk_candidates(weather_zoomed) #> # A tibble: 15 × 3 #> columns candidate why #> #> 1 origin FALSE has duplicate values: EWR (48), JFK (48), LGA (48) #> 2 year FALSE has duplicate values: 2013 (144) #> 3 month FALSE has duplicate values: 1 (72), 2 (72) #> 4 day FALSE has duplicate values: 10 (144) #> 5 hour FALSE has duplicate values: 0 (6), 1 (6), 2 (6), 3 (6), … #> 6 temp FALSE has duplicate values: 44.06 (12), 41.00 (8), 44.96… #> 7 dewp FALSE has duplicate values: 21.92 (16), 24.98 (16), 6.98… #> 8 humid FALSE has duplicate values: 53.71 (4), 56.56 (4), 32.53 … #> 9 wind_dir FALSE has duplicate values: 320 (25), 330 (17), 310 (15)… #> 10 wind_speed FALSE has duplicate values: 6.90468 (20), 8.05546 (19), … #> 11 wind_gust FALSE has 123 missing values, and duplicate values: 23.0… #> 12 precip FALSE has duplicate values: 0 (144) #> 13 pressure FALSE has duplicate values: 1028.9 (6), 1029.0 (5), 1032… #> 14 visib FALSE has duplicate values: 10 (144) #> 15 time_hour FALSE has duplicate values: 2013-01-10 00:00:00 (3), 201… # Seems we have to construct a column with unique values # This can be done by combining column `origin` with `time_hour`, if the latter # is converted to a single time zone first; all within the `dm`: weather_zoomed_mutate <- weather_zoomed %>% # first convert all times to the same time zone: mutate(time_hour_fmt = format(time_hour, tz = \"UTC\")) %>% # paste together as character the airport code and the time unite(\"origin_slot_id\", origin, time_hour_fmt) %>% select(origin_slot_id, everything()) # check if we the result is as expected: enum_pk_candidates(weather_zoomed_mutate) %>% filter(candidate) #> # A tibble: 1 × 3 #> columns candidate why #> #> 1 origin_slot_id TRUE \"\" flights_upd_weather_dm <- weather_zoomed_mutate %>% dm_update_zoomed() %>% dm_add_pk(weather, origin_slot_id) flights_upd_weather_dm #> ── Metadata ─────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 3 # creating the coveted FK relation between `flights` and `weather` extended_flights_dm <- flights_upd_weather_dm %>% dm_zoom_to(flights) %>% mutate(time_hour_fmt = format(time_hour, tz = \"UTC\")) %>% # need to keep `origin` as FK to airports, so `remove = FALSE` unite(\"origin_slot_id\", origin, time_hour_fmt, remove = FALSE) %>% dm_update_zoomed() %>% dm_add_fk(flights, origin_slot_id, weather) extended_flights_dm %>% dm_draw()"},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"use-case-3-disentangle-dm","dir":"Articles","previous_headings":"Examples","what":"Use case 3: Disentangle dm","title":"Zooming and manipulating tables","text":"look dm created dm_nycflights13(cycle = TRUE), see two columns flights relate one table, airports. One column stands departure airport arrival airport. generates cycle leads failures many operations work cycle-free data models, dm_flatten_to_tbl(), dm_filter() dm_wrap_to_tbl(). cases, can beneficial “disentangle” dm duplicating referred table. One way {dm}-framework follows: future update, provide convenient way “disentangle” dm objects, individual steps done automatically.","code":"dm_draw(dm_nycflights13(cycle = TRUE)) disentangled_flights_dm <- dm_nycflights13(cycle = TRUE) %>% # zooming and immediately inserting essentially creates a copy of the original table dm_zoom_to(airports) %>% # reinserting the `airports` table under the name `destination` dm_insert_zoomed(\"destination\") %>% # renaming the originally zoomed table dm_rename_tbl(origin = airports) %>% # Key relations are also duplicated, so the wrong ones need to be removed dm_rm_fk(flights, dest, origin) %>% dm_rm_fk(flights, origin, destination) dm_draw(disentangled_flights_dm)"},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"use-case-4-add-summary-table-to-dm","dir":"Articles","previous_headings":"Examples","what":"Use case 4: Add summary table to dm","title":"Zooming and manipulating tables","text":"example adding summary table new table dm (FK-relations taken care automatically):","code":"dm_with_summary <- flights_dm %>% dm_zoom_to(flights) %>% dplyr::count(origin, carrier) %>% dm_insert_zoomed(\"dep_carrier_count\") dm_draw(dm_with_summary)"},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"use-case-5-joining-tables","dir":"Articles","previous_headings":"Examples","what":"Use case 5: Joining tables","title":"Zooming and manipulating tables","text":"like join columns one table another, can make use one join-methods dm_zoomed. addition usual arguments {dplyr}-joins, supplying select argument can specify columns RHS-table want included join. syntax please see example . LHS-table join always zoomed table.","code":"joined_flights_dm <- flights_dm %>% dm_zoom_to(flights) %>% # let's first reduce the number of columns of flights select(-dep_delay:-arr_delay, -air_time:-time_hour) %>% # in the {dm}-method for the joins you can specify which columns you want to add to the zoomed table left_join(planes, select = c(tailnum, plane_type = type)) %>% dm_insert_zoomed(\"flights_plane_type\") # this is how the table looks now joined_flights_dm$flights_plane_type #> # A tibble: 1,761 × 11 #> year month day dep_time sched_dep_time carrier flight tailnum origin #> #> 1 2013 1 10 3 2359 B6 727 N571JB JFK #> 2 2013 1 10 16 2359 B6 739 N564JB JFK #> 3 2013 1 10 450 500 US 1117 N171US EWR #> 4 2013 1 10 520 525 UA 1018 N35204 EWR #> 5 2013 1 10 530 530 UA 404 N815UA LGA #> 6 2013 1 10 531 540 AA 1141 N5EAAA JFK #> 7 2013 1 10 535 540 B6 725 N784JB JFK #> 8 2013 1 10 546 600 B6 380 N337JB EWR #> 9 2013 1 10 549 600 EV 6055 N19554 LGA #> 10 2013 1 10 550 600 US 2114 N740UW LGA #> # ℹ 1,751 more rows #> # ℹ 2 more variables: dest , plane_type # also here, the FK-relations are transferred to the new table dm_draw(joined_flights_dm)"},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"tip-accessing-the-zoomed-table","dir":"Articles","previous_headings":"Examples","what":"Tip: Accessing the zoomed table","title":"Zooming and manipulating tables","text":"point, can retrieve zoomed table calling pull_tbl() dm_zoomed. use last example :","code":"flights_dm %>% dm_zoom_to(flights) %>% select(-dep_delay:-arr_delay, -air_time:-time_hour) %>% left_join(planes, select = c(tailnum, plane_type = type)) %>% pull_tbl() #> # A tibble: 1,761 × 11 #> year month day dep_time sched_dep_time carrier flight tailnum origin #> #> 1 2013 1 10 3 2359 B6 727 N571JB JFK #> 2 2013 1 10 16 2359 B6 739 N564JB JFK #> 3 2013 1 10 450 500 US 1117 N171US EWR #> 4 2013 1 10 520 525 UA 1018 N35204 EWR #> 5 2013 1 10 530 530 UA 404 N815UA LGA #> 6 2013 1 10 531 540 AA 1141 N5EAAA JFK #> 7 2013 1 10 535 540 B6 725 N784JB JFK #> 8 2013 1 10 546 600 B6 380 N337JB EWR #> 9 2013 1 10 549 600 EV 6055 N19554 LGA #> 10 2013 1 10 550 600 US 2114 N740UW LGA #> # ℹ 1,751 more rows #> # ℹ 2 more variables: dest , plane_type "},{"path":"https://dm.cynkra.com/articles/tech-dm-zoom.html","id":"possible-pitfalls-and-caveats","dir":"Articles","previous_headings":"Examples","what":"Possible pitfalls and caveats","title":"Zooming and manipulating tables","text":"Currently, {dplyr}-verbs method dm_zoomed object, aware cases still necessary resort extracting one tables dm reinserting transformed version back dm object. supported functions : group_by(), ungroup(), summarise(), mutate(), transmute(), filter(), select(), relocate(), rename(), distinct(), arrange(), slice(), left_join(), inner_join(), full_join(), right_join(), semi_join(), anti_join(). true {tidyr}-functions. Methods provided : unite() separate(). might situations like key relations remain intact, dropped nevertheless. rigid logic implemented, drop key associated column acted upon e.g. mutate() call. cases, key relations need re-established finishing manipulations. implemented {dplyr}-verb, logic tracking key relations tables. {dm} version 0.2.4 tried track columns detailed manner. become increasingly difficult, especially dplyr::across(). {dm} 0.2.5, give responsibility {dm} user: Now columns tracked whose names remain resulting table. Affected changes methods : mutate(), transmute(), distinct(). using one functions, aware want replace key column column different content name, column automatically become key column.","code":""},{"path":"https://dm.cynkra.com/articles/wip/dm-insert.html","id":"tables","dir":"Articles > Wip","previous_headings":"","what":"Tables","title":"Updating tables and dm objects","text":"dplyr, operations tables dplyr generally transient ephemeral. Resulting table objects must stored new object, otherwise lost. operations default return new table object disconnected original.","code":""},{"path":"https://dm.cynkra.com/articles/wip/dm-insert.html","id":"operations","dir":"Articles > Wip","previous_headings":"Tables","what":"Operations","title":"Updating tables and dm objects","text":"operations modeled existing database statements, exception new “patch”. insert new rows — error keys already exist, similar tibble::add_row(). update values — overrides existing values. (Similar https://github.com/tidyverse/tidyr/issues/183) patch values — like update, replaces missing values (Also similar https://github.com/tidyverse/tidyr/issues/183) upsert — update insert depending presence/absence keys operations either take multiple named inputs single unnamed data frame. Additional restrictions options may apply backends, specified arguments start dot. extensibility, named inputs start dot silently discarded. operations require specification .key argument. Unlike joins, .key argument mandatory, RHS column names must subset LHS column names. Keys must name target input. table container knows keys (e.g., grouped data frames data.table), .key may omitted. target table source columns/table must compatible: Source extra tables columns. Key columns must present source.","code":""},{"path":"https://dm.cynkra.com/articles/wip/dm-insert.html","id":"mutable-backends","dir":"Articles > Wip","previous_headings":"Tables","what":"Mutable backends","title":"Updating tables and dm objects","text":"mutable backends, notably databases, Google sheets data.table, permit -place update source data. Update operations mutable backends optionally allow updating source data. potentially destructive exception dplyr guarantees, -place updates must “opt ”. default result always “lazy” table. allows previewing results update operation materializing. backends, following additional operations useful: delete — remove rows match keys, variant anti_join() truncate — remove rows Databases require data already database ask user supply copy argument. mutable backends, update operations return input, invisibly, update carried -place. Challenges: make compatible sql_render()?","code":""},{"path":"https://dm.cynkra.com/articles/wip/dm-insert.html","id":"dm","dir":"Articles > Wip","previous_headings":"","what":"dm","title":"Updating tables and dm objects","text":"Operations dm object generally transient ephemeral. Resulting dm table objects must stored new object, otherwise lost.","code":""},{"path":"https://dm.cynkra.com/articles/wip/dm-insert.html","id":"design","dir":"Articles > Wip","previous_headings":"dm","what":"Design","title":"Updating tables and dm objects","text":"records tables source dm appended/updated/upserted/removed/replaced/… target dm source source subset target tables check integrity constraints still valid running compare -state transactions scope, caller can use DBI::withTransaction() fixed set operations, op knows “direction”","code":""},{"path":"https://dm.cynkra.com/articles/wip/dm-insert.html","id":"logic-of-operation","dir":"Articles > Wip","previous_headings":"dm","what":"Logic of operation","title":"Updating tables and dm objects","text":"check compatibility persist tables one one, topologically sorted put back dm necessary","code":""},{"path":"https://dm.cynkra.com/articles/wip/dm-insert.html","id":"api-draft","dir":"Articles > Wip","previous_headings":"dm","what":"API draft","title":"Updating tables and dm objects","text":"","code":"dm_insert <- function(target_dm, dm, ..., dry_run = FALSE) { check_dots_empty() dm_persist(target_dm, dm, operation = tbl_insert, top_down = TRUE, dry_run = dry_run) } dm_update <- function(target_dm, dm, ..., dry_run = FALSE) { check_dots_empty() dm_persist(target_dm, dm, operation = tbl_update, top_down = TRUE, dry_run = dry_run) } dm_upsert <- function(target_dm, dm, ..., dry_run = FALSE) { check_dots_empty() dm_persist(target_dm, dm, operation = tbl_upsert, top_down = TRUE, dry_run = dry_run) } dm_delete <- function(target_dm, dm, ..., dry_run = FALSE) { check_dots_empty() dm_persist(target_dm, dm, operation = tbl_delete, top_down = FALSE, dry_run = dry_run) } dm_truncate <- function(target_dm, dm, ..., dry_run = FALSE) { check_dots_empty() dm_persist(target_dm, dm, operation = tbl_truncate, top_down = FALSE, dry_run = dry_run) } dm_persist <- function(target_dm, dm, operation, top_down, dry_run = FALSE) { dm_check_persist(target_dm, dm) dm_run_persist(target_dm, dm, operation, top_down, dry_run) } dm_check_persist <- function(target_dm, dm) { check_not_zoomed(target_dm) check_not_zoomed(dm) check_same_src(target_dm, dm) walk2(dm_get_tables(target_dm), dm_get_tables(dm), check_columns_superset) check_keys_compatible(target_dm, dm) } dm_run_persist <- function(target_dm, dm, operation, top_down, dry_run) { # topologically sort tables # run operation(target_tbl, source_tbl, dry_run = dry_run) for each table # operation() always returns tbl, only need to patch if not the same tbl # new_tables is list of non-NULL operation() values target_dm %>% dm_patch_tbl(!!!new_tables) } dm_patch_tbl <- function(dm, ...) { check_not_zoomed(dm) new_tables <- list2(...) # FIXME: Better error message for unknown tables def <- dm_get_def(dm) idx <- match(names(new_tables), def$table) def[idx, \"data\"] <- unname(new_tables) dm_from_def(def) }"},{"path":"https://dm.cynkra.com/articles/wip/dm-readme-old.html","id":"background","dir":"Articles > Wip","previous_headings":"","what":"Background","title":"","text":"Relational databases flat tables, like data frames spreadsheets, present data fundamentally different ways. data frames spreadsheets, data presented together one large table many rows columns. means data accessible one location disadvantage values may repeated multiple times, resulting bloated tables redundant data. worst case scenario, data frame may many rows columns single value different row. Relational databases, hand, keep data together split multiple smaller tables. separation sub-tables several advantages: information stored , avoiding repetition conserving memory information updated one place, improving consistency avoiding errors may result updating value multiple locations information organized topic segmented smaller tables easier handle Separation data, thus, helps data quality, explains continuing popularity relational databases production-level data management. downside approach harder merge together information different data sources identify entities refer object, common task modeling plotting data. mapped uniquely, entities need designated keys, separate tables collated together process called joining. R, already exist packages support handling inter-linked tables code complex requires multiple command sequences. goal {dm} package simplify data management processes R keeping advantages relational data models core concept splitting one table multiple tables. way, can best worlds: manage data collection linked tables, flatten multiple tables one analysis {dplyr} packages, -needed basis. Although {dm} built upon relational data models, database . can work transparently relational database systems -memory data, copy data databases.","code":""},{"path":"https://dm.cynkra.com/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Tobias Schieferdecker. Author. Kirill Müller. Author, maintainer. Antoine Fabri. Contributor. Darko Bergant. Author. Katharina Brunner. Contributor. James Wondrasek. Contributor. Indrajeet Patil. Contributor. Maëlle Salmon. Contributor. . Funder. . Funder, copyright holder.","code":""},{"path":"https://dm.cynkra.com/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Schieferdecker T, Müller K, Bergant D (2024). dm: Relational Data Models. R package version 1.0.10, https://github.com/cynkra/dm, https://dm.cynkra.com/.","code":"@Manual{, title = {dm: Relational Data Models}, author = {Tobias Schieferdecker and Kirill Müller and Darko Bergant}, year = {2024}, note = {R package version 1.0.10, https://github.com/cynkra/dm}, url = {https://dm.cynkra.com/}, }"},{"path":"https://dm.cynkra.com/index.html","id":"dm","dir":"","previous_headings":"","what":"Relational Data Models","title":"Relational Data Models","text":"using multiple data frames database tables R? Organize dm. Use data analysis today. Build data models tomorrow. Deploy data models organization’s Relational Database Management System (RDBMS) day .","code":""},{"path":"https://dm.cynkra.com/index.html","id":"overview","dir":"","previous_headings":"","what":"Overview","title":"Relational Data Models","text":"dm bridges gap data pipeline individual data frames relational databases. ’s grammar joined tables provides consistent set verbs consuming, creating, deploying relational data models. individual researchers, broadens scope datasets can work work . organizations, enables teams quickly efficiently create share large, complex datasets. dm objects encapsulate relational data models constructed local data frames lazy tables connected RDBMS. dm objects support full suite dplyr data manipulation verbs along additional methods constructing verifying relational data models, including key selection, key creation, rigorous constraint checking. data model complete, dm provides methods deploying RDBMS. allows scale datasets fit memory databases billions rows.","code":""},{"path":"https://dm.cynkra.com/index.html","id":"features","dir":"","previous_headings":"","what":"Features","title":"Relational Data Models","text":"dm makes easy bring existing relational data model R session. dm object behaves like named list tables requires little change incorporate within existing workflows. dm interface behavior modeled dplyr, may already familiar many verbs. dm also offers: visualization help understand relationships entities represented tables simpler joins “know” tables related, including “flatten” operation automatically follows keys performs column name disambiguation consistency constraint checks help understand (fix) limitations data ’s just tip iceberg. See Getting started hit ground running explore features.","code":""},{"path":"https://dm.cynkra.com/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Relational Data Models","text":"latest stable version {dm} package can obtained CRAN command latest development version {dm} can installed R-universe: GitHub:","code":"install.packages(\"dm\") # Enable repository from cynkra options( repos = c( cynkra = \"https://cynkra.r-universe.dev\", CRAN = \"https://cloud.r-project.org\" ) ) # Download and install dm in R install.packages('dm') # install.packages(\"devtools\") devtools::install_github(\"cynkra/dm\")"},{"path":"https://dm.cynkra.com/index.html","id":"usage","dir":"","previous_headings":"","what":"Usage","title":"Relational Data Models","text":"Create dm object (see Getting started details). dm named list tables: Visualize relationships time: Simple joins: Check consistency: Learn Getting started article.","code":"library(dm) dm <- dm_nycflights13(table_description = TRUE) dm #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4 names(dm) #> [1] \"airlines\" \"airports\" \"flights\" \"planes\" \"weather\" nrow(dm$airports) #> [1] 86 dm$flights %>% count(origin) #> # A tibble: 3 × 2 #> origin n #> #> 1 EWR 641 #> 2 JFK 602 #> 3 LGA 518 dm %>% dm_draw() dm %>% dm_flatten_to_tbl(flights) #> Renaming ambiguous columns: %>% #> dm_rename(flights, year.flights = year) %>% #> dm_rename(flights, month.flights = month) %>% #> dm_rename(flights, day.flights = day) %>% #> dm_rename(flights, hour.flights = hour) %>% #> dm_rename(airlines, name.airlines = name) %>% #> dm_rename(airports, name.airports = name) %>% #> dm_rename(planes, year.planes = year) %>% #> dm_rename(weather, year.weather = year) %>% #> dm_rename(weather, month.weather = month) %>% #> dm_rename(weather, day.weather = day) %>% #> dm_rename(weather, hour.weather = hour) #> # A tibble: 1,761 × 48 #> year.flights month.…¹ day.f…² dep_t…³ sched…⁴ dep_d…⁵ arr_t…⁶ sched…⁷ arr_d…⁸ #> #> 1 2013 1 10 3 2359 4 426 437 -11 #> 2 2013 1 10 16 2359 17 447 444 3 #> 3 2013 1 10 450 500 -10 634 648 -14 #> 4 2013 1 10 520 525 -5 813 820 -7 #> 5 2013 1 10 530 530 0 824 829 -5 #> 6 2013 1 10 531 540 -9 832 850 -18 #> 7 2013 1 10 535 540 -5 1015 1017 -2 #> 8 2013 1 10 546 600 -14 645 709 -24 #> 9 2013 1 10 549 600 -11 652 724 -32 #> 10 2013 1 10 550 600 -10 649 703 -14 #> # ℹ 1,751 more rows #> # ℹ abbreviated names: ¹​month.flights, ²​day.flights, ³​dep_time, #> # ⁴​sched_dep_time, ⁵​dep_delay, ⁶​arr_time, ⁷​sched_arr_time, ⁸​arr_delay #> # ℹ 39 more variables: carrier , flight , tailnum , #> # origin , dest , air_time , distance , #> # hour.flights , minute , time_hour , name.airlines , #> # name.airports , lat , lon , alt , tz , dst , #> # tzone , year.planes , type , manufacturer , #> # model , engines , seats , speed , engine , #> # year.weather , month.weather , day.weather , #> # hour.weather , temp , dewp , humid , wind_dir , #> # wind_speed , wind_gust , precip , pressure , … dm %>% dm_examine_constraints() #> ! Unsatisfied constraints: #> • Table `flights`: foreign key `tailnum` into table `planes`: values of `flights$tailnum` not in `planes$tailnum`: N725MQ (6), N537MQ (5), N722MQ (5), N730MQ (5), N736MQ (5), …"},{"path":"https://dm.cynkra.com/index.html","id":"getting-help","dir":"","previous_headings":"","what":"Getting help","title":"Relational Data Models","text":"encounter clear bug, please file issue minimal reproducible example GitHub. questions discussion, please use community.rstudio.com. License: MIT © cynkra GmbH. Funded : Please note ‘dm’ project released Contributor Code Conduct. contributing project, agree abide terms.","code":""},{"path":"https://dm.cynkra.com/reference/check_key.html","id":null,"dir":"Reference","previous_headings":"","what":"Check if column(s) can be used as keys — check_key","title":"Check if column(s) can be used as keys — check_key","text":"check_key() accepts data frame , optionally, columns. throws error specified columns unique key data frame. columns given ellipsis key, data frame returned silently, can used piping.","code":""},{"path":"https://dm.cynkra.com/reference/check_key.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check if column(s) can be used as keys — check_key","text":"","code":"check_key(x, ..., .data = deprecated())"},{"path":"https://dm.cynkra.com/reference/check_key.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check if column(s) can be used as keys — check_key","text":"x data frame whose columns tested key properties. ... names columns checked, processed dplyr::select(). omitted, columns checked. .data Deprecated.","code":""},{"path":"https://dm.cynkra.com/reference/check_key.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check if column(s) can be used as keys — check_key","text":"Returns x, invisibly, check passed. Otherwise error thrown reason explained.","code":""},{"path":"https://dm.cynkra.com/reference/check_key.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check if column(s) can be used as keys — check_key","text":"","code":"data <- tibble::tibble(a = c(1, 2, 1), b = c(1, 4, 1), c = c(5, 6, 7)) # this is failing: try(check_key(data, a, b)) #> Error in abort_not_unique_key(x_label, orig_names) : #> (`a`, `b`) not a unique key of `data`. # this is passing: check_key(data, a, c) check_key(data)"},{"path":"https://dm.cynkra.com/reference/check_set_equality.html","id":null,"dir":"Reference","previous_headings":"","what":"Check column values for set equality — check_set_equality","title":"Check column values for set equality — check_set_equality","text":"check_set_equality() wrapper check_subset(). tests one table subset another vice versa, .e., sets . , throws error.","code":""},{"path":"https://dm.cynkra.com/reference/check_set_equality.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check column values for set equality — check_set_equality","text":"","code":"check_set_equality( x, y, ..., x_select = NULL, y_select = NULL, by_position = NULL )"},{"path":"https://dm.cynkra.com/reference/check_set_equality.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check column values for set equality — check_set_equality","text":"x, y data frame lazy table. ... dots future extensions must empty. x_select, y_select Key columns restrict check, processed dplyr::select(). by_position Set TRUE ignore column names match position instead. default means matching name, use x_select /y_select align names.","code":""},{"path":"https://dm.cynkra.com/reference/check_set_equality.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check column values for set equality — check_set_equality","text":"Returns x, invisibly, check passed. Otherwise error thrown reason explained.","code":""},{"path":"https://dm.cynkra.com/reference/check_set_equality.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check column values for set equality — check_set_equality","text":"","code":"data_1 <- tibble::tibble(a = c(1, 2, 1), b = c(1, 4, 1), c = c(5, 6, 7)) data_2 <- tibble::tibble(a = c(1, 2, 3), b = c(4, 5, 6), c = c(7, 8, 9)) # this is failing: try(check_set_equality(data_1, data_2, x_select = a, y_select = a)) #> # A tibble: 1 × 1 #> a #> #> 1 3 #> Error in abort_sets_not_equal(map_chr(catchers, conditionMessage)) : #> Column (`a`) of table `data_2` contains values (see examples above) that are not present in column (`a`) of table `data_1`. data_3 <- tibble::tibble(a = c(2, 1, 2), b = c(4, 5, 6), c = c(7, 8, 9)) # this is passing: check_set_equality(data_1, data_3, x_select = a, y_select = a) # this is still failing: try(check_set_equality(data_2, data_3)) #> # A tibble: 3 × 3 #> a b c #> #> 1 1 4 7 #> 2 2 5 8 #> 3 3 6 9 #> # A tibble: 3 × 3 #> a b c #> #> 1 2 4 7 #> 2 1 5 8 #> 3 2 6 9 #> Error in abort_sets_not_equal(map_chr(catchers, conditionMessage)) : #> Columns (`a`, `b`, `c`) of table `data_2` contain values (see examples above) that are not present in columns (`a`, `b`, `c`) of table `data_3`. #> Columns (`a`, `b`, `c`) of table `data_3` contain values (see examples above) that are not present in columns (`a`, `b`, `c`) of table `data_2`."},{"path":"https://dm.cynkra.com/reference/check_subset.html","id":null,"dir":"Reference","previous_headings":"","what":"Check column values for subset — check_subset","title":"Check column values for subset — check_subset","text":"check_subset() tests x subset y. convenience, x_select y_select arguments allow restricting check set key columns without affecting return value.","code":""},{"path":"https://dm.cynkra.com/reference/check_subset.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check column values for subset — check_subset","text":"","code":"check_subset(x, y, ..., x_select = NULL, y_select = NULL, by_position = NULL)"},{"path":"https://dm.cynkra.com/reference/check_subset.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check column values for subset — check_subset","text":"x, y data frame lazy table. ... dots future extensions must empty. x_select, y_select Key columns restrict check, processed dplyr::select(). by_position Set TRUE ignore column names match position instead. default means matching name, use x_select /y_select align names.","code":""},{"path":"https://dm.cynkra.com/reference/check_subset.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check column values for subset — check_subset","text":"Returns x, invisibly, check passed. Otherwise error thrown reason explained.","code":""},{"path":"https://dm.cynkra.com/reference/check_subset.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check column values for subset — check_subset","text":"","code":"data_1 <- tibble::tibble(a = c(1, 2, 1), b = c(1, 4, 1), c = c(5, 6, 7)) data_2 <- tibble::tibble(a = c(1, 2, 3), b = c(4, 5, 6), c = c(7, 8, 9)) # this is passing: check_subset(data_1, data_2, x_select = a, y_select = a) # this is failing: try(check_subset(data_2, data_1)) #> # A tibble: 3 × 3 #> a b c #> #> 1 1 4 7 #> 2 2 5 8 #> 3 3 6 9 #> Error in abort_not_subset_of(x_label, colnames(x), y_label, colnames(y)) : #> Columns (`a`, `b`, `c`) of table `data_2` contain values (see examples above) that are not present in columns (`a`, `b`, `c`) of table `data_1`."},{"path":"https://dm.cynkra.com/reference/copy_dm_to.html","id":null,"dir":"Reference","previous_headings":"","what":"Copy data model to data source — copy_dm_to","title":"Copy data model to data source — copy_dm_to","text":"copy_dm_to() takes dplyr::src_dbi object DBI::DBIConnection object first argument dm object second argument. latter copied former. default create temporary tables, set temporary = FALSE create permanent tables. Unless set_key_constraints FALSE, primary key constraints set databases, addition foreign key constraints set MSSQL Postgres databases.","code":""},{"path":"https://dm.cynkra.com/reference/copy_dm_to.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Copy data model to data source — copy_dm_to","text":"","code":"copy_dm_to( dest, dm, ..., set_key_constraints = TRUE, table_names = NULL, temporary = TRUE, schema = NULL, progress = NA, unique_table_names = NULL, copy_to = NULL )"},{"path":"https://dm.cynkra.com/reference/copy_dm_to.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Copy data model to data source — copy_dm_to","text":"dest object class \"src\" \"DBIConnection\". dm dm object. ... dots future extensions must empty. set_key_constraints TRUE mirror dm primary foreign key constraints database create indexes foreign key constraints. Set FALSE data model currently satisfy primary foreign key constraints. table_names Desired names tables dest; names within dm remain unchanged. Can NULL, named character vector, vector DBI::Id objects. left NULL (default), names determined automatically depending temporary argument: temporary = TRUE (default): unique table names based names tables dm created. temporary = FALSE: table names dm used names tables dest. function one-sided formula, table_names converted function using rlang::as_function(). function called unquoted table names dm object argument. output function processed DBI::dbQuoteIdentifier(), result vector identifiers length original table names. Use variant table_names = ~ DBI::SQL(paste0(\"schema_name\", \".\", .x)) specify schema tables. Use table_names = identity temporary = TRUE avoid giving temporary tables unique names. named character vector, names vector need correspond table names dm, values desired names dest. value processed DBI::dbQuoteIdentifier(), result vector identifiers length original table names. Use qualified names corresponding database's syntax specify e.g. database schema tables. temporary TRUE, temporary tables created. tables vanish disconnecting database. schema Name schema copy dm . schema provided, error thrown temporary = FALSE table_names NULL. DBMS supported. progress Whether display progress bar, NA (default) hide non-interactive mode, show interactive mode. Requires 'progress' package. unique_table_names, copy_to Must NULL.","code":""},{"path":"https://dm.cynkra.com/reference/copy_dm_to.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Copy data model to data source — copy_dm_to","text":"dm object given src table names input dm.","code":""},{"path":"https://dm.cynkra.com/reference/copy_dm_to.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Copy data model to data source — copy_dm_to","text":"","code":"con <- DBI::dbConnect(RSQLite::SQLite()) # Copy to temporary tables, unique table names by default: temp_dm <- copy_dm_to( con, dm_nycflights13(), set_key_constraints = FALSE ) # Persist, explicitly specify table names: persistent_dm <- copy_dm_to( con, dm_nycflights13(), temporary = FALSE, table_names = ~ paste0(\"flights_\", .x) ) dbplyr::remote_name(persistent_dm$planes) #> [1] \"flights_planes\" DBI::dbDisconnect(con)"},{"path":"https://dm.cynkra.com/reference/db_schema_create.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a schema on a database — db_schema_create","title":"Create a schema on a database — db_schema_create","text":"db_schema_create() creates schema database.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_create.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a schema on a database — db_schema_create","text":"","code":"db_schema_create(con, schema, ...)"},{"path":"https://dm.cynkra.com/reference/db_schema_create.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a schema on a database — db_schema_create","text":"con object class \"src\" \"DBIConnection\". schema Class character SQL (cf. Details), name schema ... Passed individual methods.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_create.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a schema on a database — db_schema_create","text":"NULL invisibly.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_create.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Create a schema on a database — db_schema_create","text":"Methods available DBMS. error thrown schema name already exists. argument schema (dbname MSSQL) can provided SQL objects. Keep mind, case assumed already correctly quoted identifiers using DBI::dbQuoteIdentifier(). Additional arguments : dbname: supported MSSQL. Create schema different database connected MSSQL-server; default: database addressed con.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/db_schema_drop.html","id":null,"dir":"Reference","previous_headings":"","what":"Remove a schema from a database — db_schema_drop","title":"Remove a schema from a database — db_schema_drop","text":"db_schema_drop() deletes schema database. certain DBMS possible force removal non-empty schema, see .","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_drop.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Remove a schema from a database — db_schema_drop","text":"","code":"db_schema_drop(con, schema, force = FALSE, ...)"},{"path":"https://dm.cynkra.com/reference/db_schema_drop.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Remove a schema from a database — db_schema_drop","text":"con object class \"src\" \"DBIConnection\". schema Class character SQL (cf. Details), name schema force Boolean, default FALSE. Set TRUE drop schema objects contains . Currently supported Postgres. ... Passed individual methods.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_drop.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Remove a schema from a database — db_schema_drop","text":"NULL invisibly.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_drop.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Remove a schema from a database — db_schema_drop","text":"Methods available DBMS. error thrown schema name exists. argument schema (dbname MSSQL) can provided SQL objects. Keep mind, case assumed already correctly quoted identifiers. Additional arguments : dbname: supported MSSQL. Remove schema different database connected MSSQL-server; default: database addressed con.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/db_schema_exists.html","id":null,"dir":"Reference","previous_headings":"","what":"Check for existence of a schema on a database — db_schema_exists","title":"Check for existence of a schema on a database — db_schema_exists","text":"db_schema_exists() checks, schema exists database.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_exists.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check for existence of a schema on a database — db_schema_exists","text":"","code":"db_schema_exists(con, schema, ...)"},{"path":"https://dm.cynkra.com/reference/db_schema_exists.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check for existence of a schema on a database — db_schema_exists","text":"con object class \"src\" \"DBIConnection\". schema Class character SQL, name schema ... Passed individual methods.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_exists.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check for existence of a schema on a database — db_schema_exists","text":"boolean: TRUE schema exists, FALSE otherwise.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_exists.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Check for existence of a schema on a database — db_schema_exists","text":"Methods available DBMS. Additional arguments : dbname: supported MSSQL. Check schema exists different database connected MSSQL-server; default: database addressed con.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/db_schema_list.html","id":null,"dir":"Reference","previous_headings":"","what":"List schemas on a database — db_schema_list","title":"List schemas on a database — db_schema_list","text":"db_schema_list() lists available schemas database.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_list.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"List schemas on a database — db_schema_list","text":"","code":"db_schema_list(con, include_default = TRUE, ...)"},{"path":"https://dm.cynkra.com/reference/db_schema_list.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"List schemas on a database — db_schema_list","text":"con object class \"src\" \"DBIConnection\". include_default Boolean, TRUE (default), also default schema database included result ... Passed individual methods.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_list.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"List schemas on a database — db_schema_list","text":"tibble following columns: schema_name names schemas, schema_owner schema owner names.","code":""},{"path":"https://dm.cynkra.com/reference/db_schema_list.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"List schemas on a database — db_schema_list","text":"Methods available DBMS. Additional arguments : dbname: supported MSSQL. List schemas different database connected MSSQL-server; default: database addressed con.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/decompose_table.html","id":null,"dir":"Reference","previous_headings":"","what":"Decompose a table into two linked tables — decompose_table","title":"Decompose a table into two linked tables — decompose_table","text":"Perform table surgery extracting 'parent table' table, linking original table new table key, returning tables. decompose_table() accepts data frame, name 'ID column' newly created, names columns extracted new data frame. creates 'parent table', consists columns specified ellipsis, new 'ID column'. removes columns original table, now called 'child table, adds 'ID column'.","code":""},{"path":"https://dm.cynkra.com/reference/decompose_table.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Decompose a table into two linked tables — decompose_table","text":"","code":"decompose_table(.data, new_id_column, ...)"},{"path":"https://dm.cynkra.com/reference/decompose_table.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Decompose a table into two linked tables — decompose_table","text":".data Data frame columns ... extracted. new_id_column Name identifier column (primary key column) parent table. column name also added 'child table'. ... columns extracted .data. One unquoted expressions separated commas. can treat variable names positions, can use expressions like x:y select ranges variables. arguments ... automatically quoted evaluated context column names represent column positions. also support unquoting splicing. See vignette(\"programming\") introduction concepts. See select helpers details, examples tidyselect helpers, starts_with(), everything(), ...","code":""},{"path":"https://dm.cynkra.com/reference/decompose_table.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Decompose a table into two linked tables — decompose_table","text":"named list length two: entry \"child_table\": child table column new_id_column referring column parent_table, entry \"parent_table\": \"lookup table\" child_table.","code":""},{"path":"https://dm.cynkra.com/reference/decompose_table.html","id":"life-cycle","dir":"Reference","previous_headings":"","what":"Life cycle","title":"Decompose a table into two linked tables — decompose_table","text":"function marked \"experimental\" seems useful applied table dm object. Changing interface later seems harmless functions likely used interactively.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/decompose_table.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Decompose a table into two linked tables — decompose_table","text":"","code":"decomposed_table <- decompose_table(mtcars, new_id, am, gear, carb) decomposed_table$child_table #> mpg cyl disp hp drat wt qsec vs new_id #> 1 21.0 6 160.0 110 3.90 2.620 16.46 0 7 #> 2 21.0 6 160.0 110 3.90 2.875 17.02 0 7 #> 3 22.8 4 108.0 93 3.85 2.320 18.61 1 8 #> 4 21.4 6 258.0 110 3.08 3.215 19.44 1 1 #> 5 18.7 8 360.0 175 3.15 3.440 17.02 0 2 #> 6 18.1 6 225.0 105 2.76 3.460 20.22 1 1 #> 7 14.3 8 360.0 245 3.21 3.570 15.84 0 3 #> 8 24.4 4 146.7 62 3.69 3.190 20.00 1 4 #> 9 22.8 4 140.8 95 3.92 3.150 22.90 1 4 #> 10 19.2 6 167.6 123 3.92 3.440 18.30 1 5 #> 11 17.8 6 167.6 123 3.92 3.440 18.90 1 5 #> 12 16.4 8 275.8 180 3.07 4.070 17.40 0 6 #> 13 17.3 8 275.8 180 3.07 3.730 17.60 0 6 #> 14 15.2 8 275.8 180 3.07 3.780 18.00 0 6 #> 15 10.4 8 472.0 205 2.93 5.250 17.98 0 3 #> 16 10.4 8 460.0 215 3.00 5.424 17.82 0 3 #> 17 14.7 8 440.0 230 3.23 5.345 17.42 0 3 #> 18 32.4 4 78.7 66 4.08 2.200 19.47 1 8 #> 19 30.4 4 75.7 52 4.93 1.615 18.52 1 9 #> 20 33.9 4 71.1 65 4.22 1.835 19.90 1 8 #> 21 21.5 4 120.1 97 3.70 2.465 20.01 1 1 #> 22 15.5 8 318.0 150 2.76 3.520 16.87 0 2 #> 23 15.2 8 304.0 150 3.15 3.435 17.30 0 2 #> 24 13.3 8 350.0 245 3.73 3.840 15.41 0 3 #> 25 19.2 8 400.0 175 3.08 3.845 17.05 0 2 #> 26 27.3 4 79.0 66 4.08 1.935 18.90 1 8 #> 27 26.0 4 120.3 91 4.43 2.140 16.70 0 10 #> 28 30.4 4 95.1 113 3.77 1.513 16.90 1 10 #> 29 15.8 8 351.0 264 4.22 3.170 14.50 0 11 #> 30 19.7 6 145.0 175 3.62 2.770 15.50 0 12 #> 31 15.0 8 301.0 335 3.54 3.570 14.60 0 13 #> 32 21.4 4 121.0 109 4.11 2.780 18.60 1 9 decomposed_table$parent_table #> new_id am gear carb #> Mazda RX4 7 1 4 4 #> Datsun 710 8 1 4 1 #> Hornet 4 Drive 1 0 3 1 #> Hornet Sportabout 2 0 3 2 #> Duster 360 3 0 3 4 #> Merc 240D 4 0 4 2 #> Merc 280 5 0 4 4 #> Merc 450SE 6 0 3 3 #> Honda Civic 9 1 4 2 #> Porsche 914-2 10 1 5 2 #> Ford Pantera L 11 1 5 4 #> Ferrari Dino 12 1 5 6 #> Maserati Bora 13 1 5 8"},{"path":"https://dm.cynkra.com/reference/deprecated.html","id":null,"dir":"Reference","previous_headings":"","what":"Deprecated functions — deprecated","title":"Deprecated functions — deprecated","text":"functions deprecated favor better alternatives. functions cdm_ prefix identical alternative dm_ prefix. sql_schema_*() functions replaced corresponding db_schema_*() functions. dm_join_to_tbl() deprecated favor dm_flatten_to_tbl(). dm_is_referenced() soft-deprecated, use information returned dm_get_all_fks() instead. dm_get_referencing_tables() soft-deprecated, use information returned dm_get_all_fks() instead. validate_dm() replaced dm_validate() consistency. dm_add_tbl deprecated dm 1.0.0, functionality offered dm() .name_repair = \"unique\". dm_bind() deprecated dm 1.0.0, functionality offered dm(). dm_squash_to_tbl() deprecated dm 1.0.0, functionality offered dm_flatten_to_tbl() recursive = TRUE. rows_truncate() deprecated dm 1.0.0, DDL operation requires different permissions dplyr::rows_*() functions.","code":""},{"path":"https://dm.cynkra.com/reference/deprecated.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Deprecated functions — deprecated","text":"","code":"sql_schema_create(dest, schema, ...) sql_schema_drop(dest, schema, force = FALSE, ...) sql_schema_exists(dest, schema, ...) sql_schema_list(dest, include_default = TRUE, ...) dm_apply_filters(dm) dm_apply_filters_to_tbl(dm, table) dm_get_filters(dm) dm_join_to_tbl(dm, table_1, table_2, join = left_join) dm_is_referenced(dm, table) dm_get_referencing_tables(dm, table) validate_dm(x) check_if_subset(t1, c1, t2, c2) check_cardinality(parent_table, pk_column, child_table, fk_column) cdm_get_src(x) cdm_get_con(x) cdm_get_tables(x) cdm_get_filter(x) cdm_add_tbl(dm, ..., repair = \"unique\", quiet = FALSE) cdm_rm_tbl(dm, ...) cdm_copy_to( dest, dm, ..., types = NULL, overwrite = NULL, indexes = NULL, unique_indexes = NULL, set_key_constraints = TRUE, unique_table_names = FALSE, table_names = NULL, temporary = TRUE ) cdm_disambiguate_cols(dm, sep = \".\", quiet = FALSE) cdm_draw( dm, rankdir = \"LR\", col_attr = \"column\", view_type = \"keys_only\", columnArrows = TRUE, graph_attrs = \"\", node_attrs = \"\", edge_attrs = \"\", focus = NULL, graph_name = \"Data Model\" ) cdm_set_colors(dm, ...) cdm_get_colors(dm) cdm_get_available_colors() cdm_filter(dm, table, ...) cdm_nrow(dm) cdm_flatten_to_tbl(dm, start, ..., join = left_join) cdm_squash_to_tbl(dm, start, ..., join = left_join) cdm_join_to_tbl(dm, table_1, table_2, join = left_join) cdm_apply_filters(dm) cdm_apply_filters_to_tbl(dm, table) cdm_add_pk(dm, table, column, check = FALSE, force = FALSE) cdm_add_fk(dm, table, column, ref_table, check = FALSE) cdm_has_fk(dm, table, ref_table) cdm_get_fk(dm, table, ref_table) cdm_get_all_fks(dm) cdm_rm_fk(dm, table, columns, ref_table) cdm_enum_fk_candidates(dm, table, ref_table) cdm_is_referenced(dm, table) cdm_get_referencing_tables(dm, table) cdm_learn_from_db(dest) cdm_check_constraints(dm) cdm_nycflights13(cycle = FALSE, color = TRUE, subset = TRUE) cdm_paste(dm, select = FALSE, tab_width = 2) cdm_has_pk(dm, table) cdm_get_pk(dm, table) cdm_get_all_pks(dm) cdm_rm_pk(dm, table, rm_referencing_fks = FALSE) cdm_enum_pk_candidates(dm, table) cdm_select_tbl(dm, ...) cdm_rename_tbl(dm, ...) cdm_select(dm, table, ...) cdm_rename(dm, table, ...) cdm_zoom_to_tbl(dm, table) cdm_insert_zoomed_tbl( dm, new_tbl_name = NULL, repair = \"unique\", quiet = FALSE ) cdm_update_zoomed_tbl(dm) cdm_zoom_out(dm) dm_rm_tbl(dm, ...) dm_add_tbl(dm, ..., repair = \"unique\", quiet = FALSE) dm_bind(..., repair = \"check_unique\", quiet = FALSE) dm_squash_to_tbl(dm, start, ..., join = left_join) rows_truncate(x, ..., in_place = FALSE) sql_rows_truncate(x, ...) dm_rows_truncate(x, y, ..., in_place = NULL, progress = NA)"},{"path":"https://dm.cynkra.com/reference/deprecated.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Deprecated functions — deprecated","text":"... dots future extensions must empty. force Boolean, FALSE (default), error thrown already primary key set table. TRUE, potential old pk deleted setting new one. dm dm object. table table dm. table_1 One tables involved join. table_2 second table join. join type join performed, see dplyr::join(). x object. check Boolean, TRUE, check made combination columns unique key table. columns Table columns, unquoted. define compound key, use c(col1, col2).","code":""},{"path":"https://dm.cynkra.com/reference/dm-package.html","id":null,"dir":"Reference","previous_headings":"","what":"dm: Relational Data Models — dm-package","title":"dm: Relational Data Models — dm-package","text":"Provides tools working multiple related tables, stored data frames relational database. Multiple tables (data metadata) stored compound object, can manipulated pipe-friendly syntax.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"dm: Relational Data Models — dm-package","text":"Maintainer: Kirill Müller kirill@cynkra.com (ORCID) Authors: Tobias Schieferdecker tobias@cynkra.com Darko Bergant darko.bergant@gmail.com contributors: Antoine Fabri [contributor] Katharina Brunner [contributor] James Wondrasek [contributor] Indrajeet Patil (ORCID) [contributor] Maëlle Salmon (ORCID) [contributor] energie360° AG info@energie360.ch [funder] cynkra GmbH mail@cynkra.com [funder, copyright holder]","code":""},{"path":"https://dm.cynkra.com/reference/dm.html","id":null,"dir":"Reference","previous_headings":"","what":"Data model class — dm","title":"Data model class — dm","text":"dm class holds list tables relationships. inspired datamodelr, extends idea offering operations access data tables. dm() creates dm object tbl objects (tibbles lazy data objects). new_dm() low-level constructor creates new dm object. called without arguments, create empty dm. called arguments, validation checks made ascertain inputs expected class internally consistent; use dm_validate() double-check returned object. is_dm() returns TRUE input class dm. as_dm() coerces objects dm class","code":""},{"path":"https://dm.cynkra.com/reference/dm.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data model class — dm","text":"","code":"dm( ..., .name_repair = c(\"check_unique\", \"unique\", \"universal\", \"minimal\"), .quiet = FALSE ) new_dm(tables = list()) is_dm(x) as_dm(x, ...)"},{"path":"https://dm.cynkra.com/reference/dm.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Data model class — dm","text":"... Tables existing dm objects add dm object. Unnamed tables auto-named, dm objects must named. .name_repair, .quiet Options name repair. Forwarded repair quiet vctrs::vec_as_names(). tables named list tables (tibble-objects, names), included dm object. x object.","code":""},{"path":"https://dm.cynkra.com/reference/dm.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Data model class — dm","text":"dm(), new_dm(), as_dm(): dm object. is_dm(): scalar logical, TRUE object dm.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data model class — dm","text":"","code":"dm(trees, mtcars) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `trees`, `mtcars` #> Columns: 14 #> Primary keys: 0 #> Foreign keys: 0 new_dm(list(trees = trees, mtcars = mtcars)) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `trees`, `mtcars` #> Columns: 14 #> Primary keys: 0 #> Foreign keys: 0 as_dm(list(trees = trees, mtcars = mtcars)) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `trees`, `mtcars` #> Columns: 14 #> Primary keys: 0 #> Foreign keys: 0 is_dm(dm_nycflights13()) #> [1] TRUE dm_nycflights13()$airports #> # A tibble: 86 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta Intl 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Logan Intl 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows dm_nycflights13()[\"airports\"] #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airports` #> Columns: 8 #> Primary keys: 1 #> Foreign keys: 0 dm_nycflights13()[[\"airports\"]] #> # A tibble: 86 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta Intl 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Logan Intl 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows dm_nycflights13() %>% names() #> [1] \"airlines\" \"airports\" \"flights\" \"planes\" \"weather\" library(dm) library(nycflights13) # using `data.frame` objects new_dm(tibble::lst(weather, airports)) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `weather`, `airports` #> Columns: 23 #> Primary keys: 0 #> Foreign keys: 0 # using `dm_keyed_tbl` objects dm <- dm_nycflights13() y1 <- dm$planes %>% mutate() %>% select(everything()) y2 <- dm$flights %>% left_join(dm$airlines, by = \"carrier\") new_dm(list(\"tbl1\" = y1, \"tbl2\" = y2)) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `tbl1`, `tbl2` #> Columns: 29 #> Primary keys: 0 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/reference/dm_add_fk.html","id":null,"dir":"Reference","previous_headings":"","what":"Add foreign keys — dm_add_fk","title":"Add foreign keys — dm_add_fk","text":"dm_add_fk() marks specified columns foreign key table table respect key table ref_table. Usually referenced columns primary key ref_table. However, also possible specify columns via ref_columns argument. check == TRUE, first check values columns subset values key table ref_table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_fk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add foreign keys — dm_add_fk","text":"","code":"dm_add_fk( dm, table, columns, ref_table, ref_columns = NULL, ..., check = FALSE, on_delete = c(\"no_action\", \"cascade\") )"},{"path":"https://dm.cynkra.com/reference/dm_add_fk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add foreign keys — dm_add_fk","text":"dm dm object. table table dm. columns columns table become foreign key columns reference ref_table. define compound key, use c(col1, col2). ref_table table table referencing. ref_columns column(s) table become referenced column(s) ref_table. default, primary key used. define compound key, use c(col1, col2). ... dots future extensions must empty. check Boolean, TRUE, check performed determine values columns subset values key column(s) ref_table. on_delete Defines behavior row parent table deleted. - \"no_action\", default, means action taken operation aborted child rows exist - \"cascade\" means child row also deleted setting picked copy_dm_to() set_key_constraints = TRUE, dm_sql(), might considered dm_rows_delete() future version.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_fk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add foreign keys — dm_add_fk","text":"updated dm additional foreign key relation.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_fk.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add foreign keys — dm_add_fk","text":"possible foreign key (FK) pointing columns neither primary (PK) explicit unique keys (UK). can happen FK added without corresponding PK UK present parent table PK UK removed (dm_rm_pk()/dm_rm_uk()) without first removing associated FKs. columns -called \"implicit unique key\" referenced table can listed via dm_get_all_uks().","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_add_fk.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add foreign keys — dm_add_fk","text":"","code":"nycflights_dm <- dm( planes = nycflights13::planes, flights = nycflights13::flights, weather = nycflights13::weather ) nycflights_dm %>% dm_draw() %0 flightsflightsplanesplanesweatherweather # Create foreign keys: nycflights_dm %>% dm_add_pk(planes, tailnum) %>% dm_add_fk(flights, tailnum, planes) %>% dm_add_pk(weather, c(origin, time_hour)) %>% dm_add_fk(flights, c(origin, time_hour), weather) %>% dm_draw() %0 flightsflightstailnumorigin, time_hourplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour # Keys can be checked during creation: try( nycflights_dm %>% dm_add_pk(planes, tailnum) %>% dm_add_fk(flights, tailnum, planes, check = TRUE) ) #> Error in abort_not_subset_of(table_name, col_name, ref_table_name, ref_col_name) : #> Column (`tailnum`) of table `flights` contains values (see examples above) that are not present in column (`tailnum`) of table `planes`."},{"path":"https://dm.cynkra.com/reference/dm_add_pk.html","id":null,"dir":"Reference","previous_headings":"","what":"Add a primary key — dm_add_pk","title":"Add a primary key — dm_add_pk","text":"dm_add_pk() marks specified columns primary key specified table. check == TRUE, first check given combination columns unique key table. force == TRUE, function replace already set key, without altering foreign keys previously pointing primary key.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_pk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add a primary key — dm_add_pk","text":"","code":"dm_add_pk( dm, table, columns, ..., autoincrement = FALSE, check = FALSE, force = FALSE )"},{"path":"https://dm.cynkra.com/reference/dm_add_pk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add a primary key — dm_add_pk","text":"dm dm object. table table dm. columns Table columns, unquoted. define compound key, use c(col1, col2). ... dots future extensions must empty. autoincrement TRUE, column specified columns populated automatically sequence integers. check Boolean, TRUE, check made combination columns unique key table. force Boolean, FALSE (default), error thrown already primary key set table. TRUE, potential old pk deleted setting new one.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_pk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add a primary key — dm_add_pk","text":"updated dm additional primary key.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_pk.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add a primary key — dm_add_pk","text":"can one primary key per table dm. possible though set unlimited number unique keys using dm_add_uk() adding foreign keys pointing columns primary key columns dm_add_fk().","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_add_pk.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add a primary key — dm_add_pk","text":"","code":"nycflights_dm <- dm( planes = nycflights13::planes, airports = nycflights13::airports, weather = nycflights13::weather ) nycflights_dm %>% dm_draw() %0 airportsairportsplanesplanesweatherweather # Create primary keys: nycflights_dm %>% dm_add_pk(planes, tailnum) %>% dm_add_pk(airports, faa, check = TRUE) %>% dm_add_pk(weather, c(origin, time_hour)) %>% dm_draw() %0 airportsairportsfaaplanesplanestailnumweatherweatherorigin, time_hour # Keys can be checked during creation: try( nycflights_dm %>% dm_add_pk(planes, manufacturer, check = TRUE) ) #> Error in abort_not_unique_key(x_label, orig_names) : #> (`manufacturer`) not a unique key of `planes`."},{"path":"https://dm.cynkra.com/reference/dm_add_uk.html","id":null,"dir":"Reference","previous_headings":"","what":"Add a unique key — dm_add_uk","title":"Add a unique key — dm_add_uk","text":"dm_add_uk() marks specified columns unique key specified table. check == TRUE, first check given combination columns unique key table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_uk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add a unique key — dm_add_uk","text":"","code":"dm_add_uk(dm, table, columns, ..., check = FALSE)"},{"path":"https://dm.cynkra.com/reference/dm_add_uk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add a unique key — dm_add_uk","text":"dm dm object. table table dm. columns Table columns, unquoted. define compound key, use c(col1, col2). ... dots future extensions must empty. check Boolean, TRUE, check made combination columns unique key table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_uk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add a unique key — dm_add_uk","text":"updated dm additional unqiue key.","code":""},{"path":"https://dm.cynkra.com/reference/dm_add_uk.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add a unique key — dm_add_uk","text":"difference primary key (PK) unique key (UK) consists following: local dm copied database (DB) copy_dm_to(), PK set DB default, whereas UK ignored. PK can set autoincrement key (also implemented certain DBMS dm transferred DB) can one PK table, whereas can unlimited UKs UK used, table autoincrement PK addition, ensure delta load processes DB (cf. dm_rows_append()) foreign keys updated accordingly. UK available, insertion done row-wise, also ensures correct matching, can much slower. UK can generally enhance data model adding additional information can also implicit UKs, columns addressed foreign key neither PK UK. implicit UKs also listed dm_get_all_uks()","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_add_uk.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add a unique key — dm_add_uk","text":"","code":"nycflights_dm <- dm( planes = nycflights13::planes, airports = nycflights13::airports, weather = nycflights13::weather ) # Create unique keys: nycflights_dm %>% dm_add_uk(planes, tailnum) %>% dm_add_uk(airports, faa, check = TRUE) %>% dm_add_uk(weather, c(origin, time_hour)) %>% dm_get_all_uks() #> # A tibble: 3 × 3 #> table uk_col kind #> #> 1 planes tailnum explicit UK #> 2 airports faa explicit UK #> 3 weather origin, time_hour explicit UK # Keys can be checked during creation: try( nycflights_dm %>% dm_add_uk(planes, manufacturer, check = TRUE) ) #> Error in abort_not_unique_key(x_label, orig_names) : #> (`manufacturer`) not a unique key of `planes`."},{"path":"https://dm.cynkra.com/reference/dm_deconstruct.html","id":null,"dir":"Reference","previous_headings":"","what":"Create code to deconstruct a dm object — dm_deconstruct","title":"Create code to deconstruct a dm object — dm_deconstruct","text":"Emits code assigns table dm variable, using pull_tbl() keyed = TRUE. tables retain information primary foreign keys, even data transformations, can converted back dm object dm().","code":""},{"path":"https://dm.cynkra.com/reference/dm_deconstruct.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create code to deconstruct a dm object — dm_deconstruct","text":"","code":"dm_deconstruct(dm, dm_name = NULL)"},{"path":"https://dm.cynkra.com/reference/dm_deconstruct.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create code to deconstruct a dm object — dm_deconstruct","text":"dm dm object. dm_name code use access dm object, default expression passed function.","code":""},{"path":"https://dm.cynkra.com/reference/dm_deconstruct.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create code to deconstruct a dm object — dm_deconstruct","text":"function called side effect printing generated code.","code":""},{"path":"https://dm.cynkra.com/reference/dm_deconstruct.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create code to deconstruct a dm object — dm_deconstruct","text":"","code":"dm <- dm_nycflights13() dm_deconstruct(dm) #> airlines <- pull_tbl(dm, \"airlines\", keyed = TRUE) #> airports <- pull_tbl(dm, \"airports\", keyed = TRUE) #> flights <- pull_tbl(dm, \"flights\", keyed = TRUE) #> planes <- pull_tbl(dm, \"planes\", keyed = TRUE) #> weather <- pull_tbl(dm, \"weather\", keyed = TRUE) airlines <- pull_tbl(dm, \"airlines\", keyed = TRUE) airports <- pull_tbl(dm, \"airports\", keyed = TRUE) flights <- pull_tbl(dm, \"flights\", keyed = TRUE) planes <- pull_tbl(dm, \"planes\", keyed = TRUE) weather <- pull_tbl(dm, \"weather\", keyed = TRUE) by_origin <- flights %>% group_by(origin) %>% summarize(mean_arr_delay = mean(arr_delay, na.rm = TRUE)) %>% ungroup() by_origin #> # A tibble: 3 × 2 #> # Keys: `origin` | 0 | 0 #> origin mean_arr_delay #> #> 1 EWR 3.43 #> 2 JFK -4.36 #> 3 LGA 0.523 dm(airlines, airports, flights, planes, weather, by_origin) %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaby_originby_originoriginby_origin:origin->airports:faaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour"},{"path":"https://dm.cynkra.com/reference/dm_disambiguate_cols.html","id":null,"dir":"Reference","previous_headings":"","what":"Resolve column name ambiguities — dm_disambiguate_cols","title":"Resolve column name ambiguities — dm_disambiguate_cols","text":"function ensures columns dm unique names.","code":""},{"path":"https://dm.cynkra.com/reference/dm_disambiguate_cols.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Resolve column name ambiguities — dm_disambiguate_cols","text":"","code":"dm_disambiguate_cols( dm, .sep = \".\", ..., .quiet = FALSE, .position = c(\"suffix\", \"prefix\") )"},{"path":"https://dm.cynkra.com/reference/dm_disambiguate_cols.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Resolve column name ambiguities — dm_disambiguate_cols","text":"dm dm object. .sep character variable separates names table names ambiguous columns. ... dots future extensions must empty. .quiet Boolean. default, function lists renamed columns message, pass TRUE suppress message. .position default, table names appended column names resolve conflicts. Prepending table names default versions 1.0.0, use \"prefix\" achieve behavior.","code":""},{"path":"https://dm.cynkra.com/reference/dm_disambiguate_cols.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Resolve column name ambiguities — dm_disambiguate_cols","text":"dm whose column names unambiguous.","code":""},{"path":"https://dm.cynkra.com/reference/dm_disambiguate_cols.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Resolve column name ambiguities — dm_disambiguate_cols","text":"function first checks column names unique. , columns assigned new, unique, names prefixing existing name name table separator. Columns act primary foreign keys renamed foreign key column remain two tables joined, making column name \"unique\" well.","code":""},{"path":"https://dm.cynkra.com/reference/dm_disambiguate_cols.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Resolve column name ambiguities — dm_disambiguate_cols","text":"","code":"dm_nycflights13() %>% dm_disambiguate_cols() #> Renaming ambiguous columns: %>% #> dm_rename(airlines, carrier.airlines = carrier) %>% #> dm_rename(airlines, name.airlines = name) %>% #> dm_rename(airports, name.airports = name) %>% #> dm_rename(flights, year.flights = year) %>% #> dm_rename(flights, month.flights = month) %>% #> dm_rename(flights, day.flights = day) %>% #> dm_rename(flights, carrier.flights = carrier) %>% #> dm_rename(flights, tailnum.flights = tailnum) %>% #> dm_rename(flights, origin.flights = origin) %>% #> dm_rename(flights, hour.flights = hour) %>% #> dm_rename(flights, time_hour.flights = time_hour) %>% #> dm_rename(planes, tailnum.planes = tailnum) %>% #> dm_rename(planes, year.planes = year) %>% #> dm_rename(weather, origin.weather = origin) %>% #> dm_rename(weather, year.weather = year) %>% #> dm_rename(weather, month.weather = month) %>% #> dm_rename(weather, day.weather = day) %>% #> dm_rename(weather, hour.weather = hour) %>% #> dm_rename(weather, time_hour.weather = time_hour) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/dm_draw.html","id":null,"dir":"Reference","previous_headings":"","what":"Draw a diagram of the data model — dm_draw","title":"Draw a diagram of the data model — dm_draw","text":"dm_draw() draws diagram, visual representation data model.","code":""},{"path":"https://dm.cynkra.com/reference/dm_draw.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Draw a diagram of the data model — dm_draw","text":"","code":"dm_draw( dm, rankdir = \"LR\", ..., col_attr = NULL, view_type = c(\"keys_only\", \"all\", \"title_only\"), columnArrows = TRUE, graph_attrs = \"\", node_attrs = \"\", edge_attrs = \"\", focus = NULL, graph_name = \"Data Model\", column_types = NULL, backend = \"DiagrammeR\", font_size = NULL )"},{"path":"https://dm.cynkra.com/reference/dm_draw.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Draw a diagram of the data model — dm_draw","text":"dm dm object. rankdir Graph attribute direction (e.g., 'BT' = bottom --> top). ... dots future extensions must empty. col_attr Deprecated, use colummn_types instead. view_type Can \"keys_only\" (default), \"\" \"title_only\". defines level details rendering tables (primary foreign keys, columns, columns). columnArrows Edges columns columns (default: TRUE). graph_attrs Additional graph attributes. node_attrs Additional node attributes. edge_attrs Additional edge attributes. focus list parameters rendering (table filter). graph_name name graph. column_types Set TRUE show column types. backend Currently, default \"DiagrammeR\" accepted. Pass value explicitly code uses function display data model relies type return value. font_size Font size : header, defaults 16 column, defaults 16 table_description, defaults 8 Can set named integer vector, e.g. c(table_headers = 18L, table_description = 6L).","code":""},{"path":"https://dm.cynkra.com/reference/dm_draw.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Draw a diagram of the data model — dm_draw","text":"object print() method, , printed, produces output seen viewer side effect. Currently, object class grViz (see also DiagrammeR::grViz()), subject change.","code":""},{"path":"https://dm.cynkra.com/reference/dm_draw.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Draw a diagram of the data model — dm_draw","text":"Currently, dm uses DiagrammeR draw diagrams. Use DiagrammeRsvg::export_svg() convert diagram SVG file. backend drawing diagrams might change future. rely DiagrammeR, pass explicit value backend argument.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_draw.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Draw a diagram of the data model — dm_draw","text":"","code":"dm_nycflights13() %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour dm_nycflights13(cycle = TRUE) %>% dm_draw(view_type = \"title_only\") %0 airlinesairlinesairportsairportsflightsflightsflights:carrier->airlines:carrierflights:origin->airports:faaflights:dest->airports:faaplanesplanesflights:tailnum->planes:tailnumweatherweatherflights:origin, time_hour->weather:origin, time_hour head(dm_get_available_colors()) #> [1] \"default\" \"white\" \"aliceblue\" \"antiquewhite\" #> [5] \"antiquewhite1\" \"antiquewhite2\" length(dm_get_available_colors()) #> [1] 658 dm_nycflights13() %>% dm_get_colors() #> #ED7D31FF #ED7D31FF #5B9BD5FF #ED7D31FF #70AD47FF #> \"airlines\" \"airports\" \"flights\" \"planes\" \"weather\""},{"path":"https://dm.cynkra.com/reference/dm_enum_fk_candidates.html","id":null,"dir":"Reference","previous_headings":"","what":"Foreign key candidates — dm_enum_fk_candidates","title":"Foreign key candidates — dm_enum_fk_candidates","text":"Determine columns good candidates used foreign keys table, reference primary key column another table dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_enum_fk_candidates.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Foreign key candidates — dm_enum_fk_candidates","text":"","code":"dm_enum_fk_candidates(dm, table, ref_table, ...) enum_fk_candidates(dm_zoomed, ref_table, ...)"},{"path":"https://dm.cynkra.com/reference/dm_enum_fk_candidates.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Foreign key candidates — dm_enum_fk_candidates","text":"dm dm object. table table whose columns tested suitability foreign keys. ref_table table primary key. ... dots future extensions must empty. dm_zoomed dm zoomed table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_enum_fk_candidates.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Foreign key candidates — dm_enum_fk_candidates","text":"tibble following columns: columns columns table, candidate boolean: columns candidate foreign key, candidate foreign key, explanation .","code":""},{"path":"https://dm.cynkra.com/reference/dm_enum_fk_candidates.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Foreign key candidates — dm_enum_fk_candidates","text":"dm_enum_fk_candidates() first checks ref_table primary key set, , error thrown. ref_table primary key, join operation tried using key argument join() match column table. Attempting join incompatible columns triggers error. outcome join operation determines value column result: empty value column table suitable foreign key candidate count percentage missing matches column suitable error message triggered unsuitable candidates may include types mismatched columns enum_fk_candidates() works like dm_enum_fk_candidates() zoomed table table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_enum_fk_candidates.html","id":"life-cycle","dir":"Reference","previous_headings":"","what":"Life cycle","title":"Foreign key candidates — dm_enum_fk_candidates","text":"functions marked \"experimental\" yet sure interface, particular need dm_enum...() enum...() variants. Changing interface later seems harmless functions likely used interactively.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_enum_fk_candidates.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Foreign key candidates — dm_enum_fk_candidates","text":"","code":"dm_nycflights13() %>% dm_enum_fk_candidates(flights, airports) #> # A tibble: 19 × 3 #> columns candidate why #> #> 1 origin TRUE \"\" #> 2 year FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 3 month FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 4 day FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 5 dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 6 sched_dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 7 dep_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 8 arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 9 sched_arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 10 arr_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 11 carrier FALSE \"values of `flights$carrier` not in `airports$faa`:… #> 12 flight FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 13 tailnum FALSE \"values of `flights$tailnum` not in `airports$faa`:… #> 14 dest FALSE \"values of `flights$dest` not in `airports$faa`: SJ… #> 15 air_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 16 distance FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 17 hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 18 minute FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 19 time_hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… dm_nycflights13() %>% dm_zoom_to(flights) %>% enum_fk_candidates(airports) #> # A tibble: 19 × 3 #> columns candidate why #> #> 1 origin TRUE \"\" #> 2 year FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 3 month FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 4 day FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 5 dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 6 sched_dep_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 7 dep_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 8 arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 9 sched_arr_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 10 arr_delay FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 11 carrier FALSE \"values of `flights$carrier` not in `airports$faa`:… #> 12 flight FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 13 tailnum FALSE \"values of `flights$tailnum` not in `airports$faa`:… #> 14 dest FALSE \"values of `flights$dest` not in `airports$faa`: SJ… #> 15 air_time FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 16 distance FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 17 hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 18 minute FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v… #> 19 time_hour FALSE \"\\u001b[1m\\u001b[22mCan't join `x$value1` with `y$v…"},{"path":"https://dm.cynkra.com/reference/dm_enum_pk_candidates.html","id":null,"dir":"Reference","previous_headings":"","what":"Primary key candidate — enum_pk_candidates","title":"Primary key candidate — enum_pk_candidates","text":"enum_pk_candidates() checks column table column contains unique values, thus suitable candidate primary key table. dm_enum_pk_candidates() performs checks table dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_enum_pk_candidates.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Primary key candidate — enum_pk_candidates","text":"","code":"enum_pk_candidates(table, ...) dm_enum_pk_candidates(dm, table, ...)"},{"path":"https://dm.cynkra.com/reference/dm_enum_pk_candidates.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Primary key candidate — enum_pk_candidates","text":"table table dm. ... dots future extensions must empty. dm dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_enum_pk_candidates.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Primary key candidate — enum_pk_candidates","text":"tibble following columns: columns columns table, candidate boolean: columns candidate primary key, candidate primary key column, explanation .","code":""},{"path":"https://dm.cynkra.com/reference/dm_enum_pk_candidates.html","id":"life-cycle","dir":"Reference","previous_headings":"","what":"Life cycle","title":"Primary key candidate — enum_pk_candidates","text":"functions marked \"experimental\" yet sure interface, particular need dm_enum...() enum...() variants. Changing interface later seems harmless functions likely used interactively.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_enum_pk_candidates.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Primary key candidate — enum_pk_candidates","text":"","code":"nycflights13::flights %>% enum_pk_candidates() #> # A tibble: 19 × 3 #> columns candidate why #> #> 1 year FALSE has duplicate values: 2013 (336776) #> 2 month FALSE has duplicate values: 7 (29425), 8 (29327), 10 (288… #> 3 day FALSE has duplicate values: 18 (11399), 11 (11359), 22 (1… #> 4 dep_time FALSE has 8255 missing values, and duplicate values: 555 … #> 5 sched_dep_time FALSE has duplicate values: 600 (7016), 700 (4900), 630 (… #> 6 dep_delay FALSE has duplicate values: -5 (24821), -4 (24619), -3 (2… #> 7 arr_time FALSE has 8713 missing values, and duplicate values: 1008… #> 8 sched_arr_time FALSE has duplicate values: 1025 (1324), 2015 (1234), 111… #> 9 arr_delay FALSE has 9430 missing values, and duplicate values: -13 … #> 10 carrier FALSE has duplicate values: UA (58665), B6 (54635), EV (5… #> 11 flight FALSE has duplicate values: 15 (968), 27 (898), 181 (882)… #> 12 tailnum FALSE has 2512 missing values, and duplicate values: N725… #> 13 origin FALSE has duplicate values: EWR (120835), JFK (111279), L… #> 14 dest FALSE has duplicate values: ORD (17283), ATL (17215), LAX… #> 15 air_time FALSE has 9430 missing values, and duplicate values: 42 (… #> 16 distance FALSE has duplicate values: 2475 (11262), 762 (10263), 73… #> 17 hour FALSE has duplicate values: 8 (27242), 6 (25951), 17 (244… #> 18 minute FALSE has duplicate values: 0 (60696), 30 (33899), 45 (20… #> 19 time_hour FALSE has duplicate values: 2013-09-13 08:00:00 (94), 201… dm_nycflights13() %>% dm_enum_pk_candidates(airports) #> # A tibble: 8 × 3 #> columns candidate why #> #> 1 faa TRUE \"\" #> 2 name TRUE \"\" #> 3 lat TRUE \"\" #> 4 lon TRUE \"\" #> 5 alt FALSE \"has duplicate values: 30 (4), 13 (3), 9 (2), 19 (2), 26 (2… #> 6 tz FALSE \"has duplicate values: -5 (48), -6 (21), -8 (12), -7 (4)\" #> 7 dst FALSE \"has duplicate values: A (84), N (2)\" #> 8 tzone FALSE \"has duplicate values: America/New_York (48), America/Chica…"},{"path":"https://dm.cynkra.com/reference/dm_examine_cardinalities.html","id":null,"dir":"Reference","previous_headings":"","what":"Learn about your data model — dm_examine_cardinalities","title":"Learn about your data model — dm_examine_cardinalities","text":"function returns tibble information cardinality FK constraints. printing object special, use as_tibble() print regular tibble.","code":""},{"path":"https://dm.cynkra.com/reference/dm_examine_cardinalities.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Learn about your data model — dm_examine_cardinalities","text":"","code":"dm_examine_cardinalities( .dm, ..., .progress = NA, dm = deprecated(), progress = deprecated() )"},{"path":"https://dm.cynkra.com/reference/dm_examine_cardinalities.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Learn about your data model — dm_examine_cardinalities","text":".dm dm object. ... dots future extensions must empty. .progress Whether display progress bar, NA (default) hide non-interactive mode, show interactive mode. Requires 'progress' package. dm, progress","code":""},{"path":"https://dm.cynkra.com/reference/dm_examine_cardinalities.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Learn about your data model — dm_examine_cardinalities","text":"tibble following columns: child_table child table, child_fk_cols foreign key column(s) child table list character vectors, parent_table parent table, parent_key_cols key column(s) parent table list character vectors, cardinality nature cardinality along foreign key.","code":""},{"path":"https://dm.cynkra.com/reference/dm_examine_cardinalities.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Learn about your data model — dm_examine_cardinalities","text":"Uses examine_cardinality() foreign key defined dm.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_examine_cardinalities.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Learn about your data model — dm_examine_cardinalities","text":"","code":"dm_nycflights13() %>% dm_examine_cardinalities() #> • FK: flights$(`carrier`) -> airlines$(`carrier`): surjective mapping (child: 1 to n -> parent: 1) #> • FK: flights$(`origin`) -> airports$(`faa`): generic mapping (child: 0 to n -> parent: 1) #> • FK: flights$(`origin`, `time_hour`) -> weather$(`origin`, `time_hour`): generic mapping (child: 0 to n -> parent: 1) #> • FK: flights$(`tailnum`) -> planes$(`tailnum`): Column (`tailnum`) of table `flights` not a subset of column (`tailnum`) of table `planes`. #> ! Not all FK constraints satisfied, call `dm_examine_constraints()` for details."},{"path":"https://dm.cynkra.com/reference/dm_examine_constraints.html","id":null,"dir":"Reference","previous_headings":"","what":"Validate your data model — dm_examine_constraints","title":"Validate your data model — dm_examine_constraints","text":"function returns tibble information key constraints met (is_key = TRUE) violated (FALSE). printing object special, use as_tibble() print regular tibble.","code":""},{"path":"https://dm.cynkra.com/reference/dm_examine_constraints.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validate your data model — dm_examine_constraints","text":"","code":"dm_examine_constraints( .dm, ..., .progress = NA, dm = deprecated(), progress = deprecated() )"},{"path":"https://dm.cynkra.com/reference/dm_examine_constraints.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validate your data model — dm_examine_constraints","text":".dm dm object. ... dots future extensions must empty. .progress Whether display progress bar, NA (default) hide non-interactive mode, show interactive mode. Requires 'progress' package. dm, progress","code":""},{"path":"https://dm.cynkra.com/reference/dm_examine_constraints.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Validate your data model — dm_examine_constraints","text":"tibble following columns: table table dm, kind \"PK\" \"FK\", columns table columns define key, ref_table foreign keys, referenced table, is_key logical, problem is_key = FALSE, reason .","code":""},{"path":"https://dm.cynkra.com/reference/dm_examine_constraints.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validate your data model — dm_examine_constraints","text":"primary key constraints, tested values respective columns unique. foreign key constraints, tests check foreign key constraint, values foreign key column form subset values referenced column.","code":""},{"path":"https://dm.cynkra.com/reference/dm_examine_constraints.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validate your data model — dm_examine_constraints","text":"","code":"dm_nycflights13() %>% dm_examine_constraints() #> ! Unsatisfied constraints: #> • Table `flights`: foreign key `tailnum` into table `planes`: values of `flights$tailnum` not in `planes$tailnum`: N725MQ (6), N537MQ (5), N722MQ (5), N730MQ (5), N736MQ (5), …"},{"path":"https://dm.cynkra.com/reference/dm_filter.html","id":null,"dir":"Reference","previous_headings":"","what":"Filtering — dm_filter","title":"Filtering — dm_filter","text":"Filtering table dm object may affect tables connected directly indirectly via foreign key relations. dm_filter() can used define filter conditions tables using syntax similar dplyr::filter(). filters work across related tables: resulting dm object contains rows related (directly indirectly) rows remain applying filters tables.","code":""},{"path":"https://dm.cynkra.com/reference/dm_filter.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Filtering — dm_filter","text":"","code":"dm_filter(.dm, ...)"},{"path":"https://dm.cynkra.com/reference/dm_filter.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Filtering — dm_filter","text":".dm dm object. ... Named logical predicates. names correspond tables dm object. predicates defined terms variables corresponding table, passed dplyr::filter(). Multiple conditions combined &. rows condition evaluates TRUE kept.","code":""},{"path":"https://dm.cynkra.com/reference/dm_filter.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Filtering — dm_filter","text":"updated dm object filters executed across tables.","code":""},{"path":"https://dm.cynkra.com/reference/dm_filter.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Filtering — dm_filter","text":"dm 1.0.0, conditions longer stored dm object, instead applied tables call dm_filter(). Calling dm_apply_filters() dm_apply_filters_to_tbl() longer necessary. Use dm_zoom_to() dplyr::filter() filter rows without affecting related tables.","code":""},{"path":"https://dm.cynkra.com/reference/dm_filter.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Filtering — dm_filter","text":"","code":"dm_nyc <- dm_nycflights13() dm_nyc %>% dm_nrow() #> airlines airports flights planes weather #> 15 86 1761 945 144 dm_nyc_filtered <- dm_nycflights13() %>% dm_filter(airports = (name == \"John F Kennedy Intl\")) dm_nyc_filtered %>% dm_nrow() #> airlines airports flights planes weather #> 10 1 602 336 38 # If you want to keep only those rows in the parent tables # whose primary key values appear as foreign key values in # `flights`, you can set a `TRUE` filter in `flights`: dm_nyc %>% dm_filter(flights = (1 == 1)) %>% dm_nrow() #> airlines airports flights planes weather #> 15 3 1761 945 105 # note that in this example, the only affected table is # `airports` because the departure airports in `flights` are # only the three New York airports."},{"path":"https://dm.cynkra.com/reference/dm_financial.html","id":null,"dir":"Reference","previous_headings":"","what":"Creates a dm object for the Financial data — dm_financial","title":"Creates a dm object for the Financial data — dm_financial","text":"dm_financial() creates example dm object tables https://relational.fit.cvut.cz/dataset/Financial. connection established per session, subsequent calls return connection. dm_financial_sqlite() copies data temporary SQLite database. data downloaded per session, subsequent calls return database. trans table excluded due size.","code":""},{"path":"https://dm.cynkra.com/reference/dm_financial.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Creates a dm object for the Financial data — dm_financial","text":"","code":"dm_financial() dm_financial_sqlite()"},{"path":"https://dm.cynkra.com/reference/dm_financial.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Creates a dm object for the Financial data — dm_financial","text":"dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_financial.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Creates a dm object for the Financial data — dm_financial","text":"","code":"if (FALSE) { # dm:::dm_has_financial() && rlang::is_installed(\"DiagrammeR\") dm_financial() %>% dm_draw() }"},{"path":"https://dm.cynkra.com/reference/dm_flatten_to_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Flatten a part of a dm into a wide table — dm_flatten_to_tbl","title":"Flatten a part of a dm into a wide table — dm_flatten_to_tbl","text":"dm_flatten_to_tbl() gathers information interest one place wide table. performs disambiguation column names cascade joins.","code":""},{"path":"https://dm.cynkra.com/reference/dm_flatten_to_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Flatten a part of a dm into a wide table — dm_flatten_to_tbl","text":"","code":"dm_flatten_to_tbl(dm, .start, ..., .recursive = FALSE, .join = left_join)"},{"path":"https://dm.cynkra.com/reference/dm_flatten_to_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Flatten a part of a dm into a wide table — dm_flatten_to_tbl","text":"dm dm object. .start table outgoing foreign key relations considered establishing processing order joins. interesting choice example fact table star schema. ... Unquoted names tables included addition .start table. order tables determines order joins. argument empty, tables can reached included. tidyselect supported, see dplyr::select() details semantics. .recursive Logical, defaults FALSE. parent tables joined .start, also ancestors? .join type join performed, see dplyr::join().","code":""},{"path":"https://dm.cynkra.com/reference/dm_flatten_to_tbl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Flatten a part of a dm into a wide table — dm_flatten_to_tbl","text":"single table results consecutively joining affected tables .start table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_flatten_to_tbl.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Flatten a part of a dm into a wide table — dm_flatten_to_tbl","text":"... left empty, function join together tables dm object can reached .start table, direction foreign key relations (pointing child tables parent tables), using foreign key relations determine argument necessary joins. result one table unique column names. Use ... argument like control tables joined .start table. Mind calling dm_flatten_to_tbl() .join = right_join table order determined ... argument lead well-defined result two foreign tables joined .start. resulting table depend order tables listed dm. Therefore, trying result warning. Since .join = nest_join make sense direction (LHS = child table, RHS = parent table: valid key constraints nested column entry tibble one row), error thrown method chosen. difference .recursive = FALSE .recursive = TRUE following (see examples): .recursive = FALSE allows one level hierarchy (.e., direct neighbors table .start), .recursive = TRUE go levels hierarchy joining. Additionally, functions differ dm_wrap_tbl(), always returns dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_flatten_to_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Flatten a part of a dm into a wide table — dm_flatten_to_tbl","text":"","code":"if (FALSE) { # dm:::dm_has_financial() dm_financial() %>% dm_select_tbl(-loans) %>% dm_flatten_to_tbl(.start = cards) dm_financial() %>% dm_select_tbl(-loans) %>% dm_flatten_to_tbl(.start = cards, .recursive = TRUE) }"},{"path":"https://dm.cynkra.com/reference/dm_from_con.html","id":null,"dir":"Reference","previous_headings":"","what":"Load a dm from a remote data source — dm_from_con","title":"Load a dm from a remote data source — dm_from_con","text":"dm_from_con() creates dm tables src (database environment) accessible via DBI-Connection. Postgres SQL Server databases, primary foreign keys imported database.","code":""},{"path":"https://dm.cynkra.com/reference/dm_from_con.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Load a dm from a remote data source — dm_from_con","text":"","code":"dm_from_con( con = NULL, table_names = NULL, learn_keys = NULL, .names = NULL, ... )"},{"path":"https://dm.cynkra.com/reference/dm_from_con.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Load a dm from a remote data source — dm_from_con","text":"con DBI::DBIConnection Pool object. table_names character vector names tables include. learn_keys Set TRUE query definition primary foreign keys database. Currently works Postgres SQL Server databases. default attempts query issues informative message. .names glue specification describes name tables within output, currently MSSQL, Postgres MySQL/MariaDB. can use {.table} stand table name, {.schema} stand name schema table lives within. default (NULL) equivalent \"{.table}\" single schema specified schema, \"{.schema}.{.table}\" case multiple schemas given, may change future versions. ... Additional parameters schema learning query. schema: supported MSSQL (default: \"dbo\"), Postgres (default: \"public\"), MariaDB/MySQL (default: current database). Learn tables specific schema (database MariaDB/MySQL). dbname: supported MSSQL. Access different databases connected MSSQL-server; default: active database. table_type: supported Postgres (default: \"BASE TABLE\"). Specify table type. Options : \"BASE TABLE\" persistent table (normal table type) \"VIEW\" view \"FOREIGN TABLE\" foreign table \"LOCAL TEMPORARY\" temporary table","code":""},{"path":"https://dm.cynkra.com/reference/dm_from_con.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Load a dm from a remote data source — dm_from_con","text":"dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_from_con.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Load a dm from a remote data source — dm_from_con","text":"","code":"if (FALSE) { # dm:::dm_has_financial() con <- dm_get_con(dm_financial()) # Avoid DBI::dbDisconnect() here, because we don't own the connection }"},{"path":"https://dm.cynkra.com/reference/dm_from_src.html","id":null,"dir":"Reference","previous_headings":"","what":"Load a dm from a remote data source — dm_from_src","title":"Load a dm from a remote data source — dm_from_src","text":"Deprecated dm 0.3.0 favor dm_from_con().","code":""},{"path":"https://dm.cynkra.com/reference/dm_from_src.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Load a dm from a remote data source — dm_from_src","text":"","code":"dm_from_src(src = NULL, table_names = NULL, learn_keys = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/dm_from_src.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Load a dm from a remote data source — dm_from_src","text":"src dbplyr source, DBI connection object Pool object. table_names character vector names tables include. learn_keys Set TRUE query definition primary foreign keys database. Currently works Postgres SQL Server databases. default attempts query issues informative message. ... Additional parameters schema learning query. schema: supported MSSQL (default: \"dbo\"), Postgres (default: \"public\"), MariaDB/MySQL (default: current database). Learn tables specific schema (database MariaDB/MySQL). dbname: supported MSSQL. Access different databases connected MSSQL-server; default: active database. table_type: supported Postgres (default: \"BASE TABLE\"). Specify table type. Options : \"BASE TABLE\" persistent table (normal table type) \"VIEW\" view \"FOREIGN TABLE\" foreign table \"LOCAL TEMPORARY\" temporary table","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_fks.html","id":null,"dir":"Reference","previous_headings":"","what":"Get foreign key constraints — dm_get_all_fks","title":"Get foreign key constraints — dm_get_all_fks","text":"Get summary foreign key relations dm.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_fks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get foreign key constraints — dm_get_all_fks","text":"","code":"dm_get_all_fks(dm, parent_table = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/dm_get_all_fks.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get foreign key constraints — dm_get_all_fks","text":"dm dm object. parent_table One table names, unquoted, return foreign key information . given, foreign keys returned order. default NULL returns information tables. ... dots future extensions must empty.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_fks.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get foreign key constraints — dm_get_all_fks","text":"tibble following columns: child_table child table, child_fk_cols foreign key column(s) child table list character vectors, parent_table parent table, parent_key_cols key column(s) parent table list character vectors. on_delete behavior deletion rows parent table.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_get_all_fks.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get foreign key constraints — dm_get_all_fks","text":"","code":"dm_nycflights13() %>% dm_get_all_fks() #> # A tibble: 4 × 5 #> child_table child_fk_cols parent_table parent_key_cols on_delete #> #> 1 flights carrier airlines carrier no_action #> 2 flights origin airports faa no_action #> 3 flights tailnum planes tailnum no_action #> 4 flights origin, time_hour weather origin, time_hour no_action"},{"path":"https://dm.cynkra.com/reference/dm_get_all_pks.html","id":null,"dir":"Reference","previous_headings":"","what":"Get all primary keys of a dm object — dm_get_all_pks","title":"Get all primary keys of a dm object — dm_get_all_pks","text":"dm_get_all_pks() checks dm object primary keys returns tables respective primary key columns.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_pks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get all primary keys of a dm object — dm_get_all_pks","text":"","code":"dm_get_all_pks(dm, table = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/dm_get_all_pks.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get all primary keys of a dm object — dm_get_all_pks","text":"dm dm object. table One table names, unquoted, return primary key information . given, primary keys returned order. default NULL returns information tables. ... dots future extensions must empty.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_pks.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get all primary keys of a dm object — dm_get_all_pks","text":"tibble following columns: table table name, pk_col column name(s) primary key, list character vectors.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_get_all_pks.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get all primary keys of a dm object — dm_get_all_pks","text":"","code":"dm_nycflights13() %>% dm_get_all_pks() #> # A tibble: 4 × 3 #> table pk_col autoincrement #> #> 1 airlines carrier FALSE #> 2 airports faa FALSE #> 3 planes tailnum FALSE #> 4 weather origin, time_hour FALSE"},{"path":"https://dm.cynkra.com/reference/dm_get_all_uks.html","id":null,"dir":"Reference","previous_headings":"","what":"Get all unique keys of a dm object — dm_get_all_uks","title":"Get all unique keys of a dm object — dm_get_all_uks","text":"dm_get_all_uks() checks dm object unique keys (primary keys, explicit implicit unique keys) returns tables respective unique key columns.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_uks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get all unique keys of a dm object — dm_get_all_uks","text":"","code":"dm_get_all_uks(dm, table = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/dm_get_all_uks.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get all unique keys of a dm object — dm_get_all_uks","text":"dm dm object. table One table names, unquoted, return unique key information . default NULL returns information tables. ... dots future extensions must empty.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_uks.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get all unique keys of a dm object — dm_get_all_uks","text":"tibble following columns: table table name, uk_col column name(s) primary key, list character vectors, kind kind unique key, see details.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_all_uks.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get all unique keys of a dm object — dm_get_all_uks","text":"3 kinds unique keys: PK: Primary key, set dm_add_pk() explicit UK: Unique key, set dm_add_uk() implicit UK: Unique key, explicitly set, referenced foreign key.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_get_all_uks.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get all unique keys of a dm object — dm_get_all_uks","text":"","code":"dm_nycflights13() %>% dm_get_all_uks() #> # A tibble: 4 × 3 #> table uk_col kind #> #> 1 airlines carrier PK #> 2 airports faa PK #> 3 planes tailnum PK #> 4 weather origin, time_hour PK"},{"path":"https://dm.cynkra.com/reference/dm_get_con.html","id":null,"dir":"Reference","previous_headings":"","what":"Get connection — dm_get_con","title":"Get connection — dm_get_con","text":"dm_get_con() returns DBI connection dm object. works tables stored database, otherwise error thrown.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_con.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get connection — dm_get_con","text":"","code":"dm_get_con(dm)"},{"path":"https://dm.cynkra.com/reference/dm_get_con.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get connection — dm_get_con","text":"dm dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_con.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get connection — dm_get_con","text":"DBI::DBIConnection object dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_con.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get connection — dm_get_con","text":"lazy tables dm object must stored database server accessed connection, large part package's functionality relies efficient joins.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_con.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get connection — dm_get_con","text":"","code":"if (FALSE) { # dm:::dm_has_financial() dm_financial() %>% dm_get_con() }"},{"path":"https://dm.cynkra.com/reference/dm_get_pk.html","id":null,"dir":"Reference","previous_headings":"","what":"Primary key column names — dm_get_pk","title":"Primary key column names — dm_get_pk","text":"function deprecated limited use unintuitive return value. Use dm_get_all_pks() instead.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_pk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Primary key column names — dm_get_pk","text":"","code":"dm_get_pk(dm, table, ...)"},{"path":"https://dm.cynkra.com/reference/dm_get_tables.html","id":null,"dir":"Reference","previous_headings":"","what":"Get tables — dm_get_tables","title":"Get tables — dm_get_tables","text":"dm_get_tables() returns named list dplyr tbl objects dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_tables.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get tables — dm_get_tables","text":"","code":"dm_get_tables(x, ..., keyed = FALSE)"},{"path":"https://dm.cynkra.com/reference/dm_get_tables.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get tables — dm_get_tables","text":"x dm object. ... dots future extensions must empty. keyed Set TRUE return objects internal class \"dm_keyed_tbl\" contain information primary foreign keys individual table objects. allows using dplyr workflows tables later reconstruct dm object. See dm_deconstruct() function generates corresponding code existing dm object, vignette(\"tech-dm-keyed\") details.","code":""},{"path":"https://dm.cynkra.com/reference/dm_get_tables.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get tables — dm_get_tables","text":"named list tables (data frames lazy tables) constituting dm.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_get_tables.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get tables — dm_get_tables","text":"","code":"dm_nycflights13() %>% dm_get_tables() #> $airlines #> # A tibble: 15 × 2 #> carrier name #> #> 1 9E Endeavor Air Inc. #> 2 AA American Airlines Inc. #> 3 AS Alaska Airlines Inc. #> 4 B6 JetBlue Airways #> 5 DL Delta Air Lines Inc. #> 6 EV ExpressJet Airlines Inc. #> 7 F9 Frontier Airlines Inc. #> 8 FL AirTran Airways Corporation #> 9 HA Hawaiian Airlines Inc. #> 10 MQ Envoy Air #> 11 UA United Air Lines Inc. #> 12 US US Airways Inc. #> 13 VX Virgin America #> 14 WN Southwest Airlines Co. #> 15 YV Mesa Airlines Inc. #> #> $airports #> # A tibble: 86 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta Intl 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Logan Intl 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows #> #> $flights #> # A tibble: 1,761 × 19 #> year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time #> #> 1 2013 1 10 3 2359 4 426 437 #> 2 2013 1 10 16 2359 17 447 444 #> 3 2013 1 10 450 500 -10 634 648 #> 4 2013 1 10 520 525 -5 813 820 #> 5 2013 1 10 530 530 0 824 829 #> 6 2013 1 10 531 540 -9 832 850 #> 7 2013 1 10 535 540 -5 1015 1017 #> 8 2013 1 10 546 600 -14 645 709 #> 9 2013 1 10 549 600 -11 652 724 #> 10 2013 1 10 550 600 -10 649 703 #> # ℹ 1,751 more rows #> # ℹ 11 more variables: arr_delay , carrier , flight , #> # tailnum , origin , dest , air_time , distance , #> # hour , minute , time_hour #> #> $planes #> # A tibble: 945 × 9 #> tailnum year type manufacturer model engines seats speed engine #> #> 1 N10156 2004 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 2 N104UW 1999 Fixed wing multi… AIRBUS INDU… A320… 2 182 NA Turbo… #> 3 N10575 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 4 N105UW 1999 Fixed wing multi… AIRBUS INDU… A320… 2 182 NA Turbo… #> 5 N110UW 1999 Fixed wing multi… AIRBUS INDU… A320… 2 182 NA Turbo… #> 6 N11106 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 7 N11107 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 8 N11109 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 9 N11121 2003 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 10 N11137 2003 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> # ℹ 935 more rows #> #> $weather #> # A tibble: 144 × 15 #> origin year month day hour temp dewp humid wind_dir wind_speed #> #> 1 EWR 2013 1 10 0 41 32 70.1 230 8.06 #> 2 EWR 2013 1 10 1 39.0 30.0 69.9 210 9.21 #> 3 EWR 2013 1 10 2 39.0 28.9 66.8 230 6.90 #> 4 EWR 2013 1 10 3 39.9 27.0 59.5 270 5.75 #> 5 EWR 2013 1 10 4 41 26.1 55.0 320 6.90 #> 6 EWR 2013 1 10 5 41 26.1 55.0 300 12.7 #> 7 EWR 2013 1 10 6 39.9 25.0 54.8 280 6.90 #> 8 EWR 2013 1 10 7 41 25.0 52.6 330 6.90 #> 9 EWR 2013 1 10 8 43.0 25.0 48.7 330 8.06 #> 10 EWR 2013 1 10 9 45.0 23 41.6 320 17.3 #> # ℹ 134 more rows #> # ℹ 5 more variables: wind_gust , precip , pressure , #> # visib , time_hour #> dm_nycflights13() %>% dm_get_tables(keyed = TRUE) #> $airlines #> # A tibble: 15 × 2 #> # Keys: `carrier` | 1 | 0 #> carrier name #> #> 1 9E Endeavor Air Inc. #> 2 AA American Airlines Inc. #> 3 AS Alaska Airlines Inc. #> 4 B6 JetBlue Airways #> 5 DL Delta Air Lines Inc. #> 6 EV ExpressJet Airlines Inc. #> 7 F9 Frontier Airlines Inc. #> 8 FL AirTran Airways Corporation #> 9 HA Hawaiian Airlines Inc. #> 10 MQ Envoy Air #> 11 UA United Air Lines Inc. #> 12 US US Airways Inc. #> 13 VX Virgin America #> 14 WN Southwest Airlines Co. #> 15 YV Mesa Airlines Inc. #> #> $airports #> # A tibble: 86 × 8 #> # Keys: `faa` | 1 | 0 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta Intl 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Logan Intl 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows #> #> $flights #> # A tibble: 1,761 × 19 #> # Keys: — | 0 | 4 #> year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time #> #> 1 2013 1 10 3 2359 4 426 437 #> 2 2013 1 10 16 2359 17 447 444 #> 3 2013 1 10 450 500 -10 634 648 #> 4 2013 1 10 520 525 -5 813 820 #> 5 2013 1 10 530 530 0 824 829 #> 6 2013 1 10 531 540 -9 832 850 #> 7 2013 1 10 535 540 -5 1015 1017 #> 8 2013 1 10 546 600 -14 645 709 #> 9 2013 1 10 549 600 -11 652 724 #> 10 2013 1 10 550 600 -10 649 703 #> # ℹ 1,751 more rows #> # ℹ 11 more variables: arr_delay , carrier , flight , #> # tailnum , origin , dest , air_time , distance , #> # hour , minute , time_hour #> #> $planes #> # A tibble: 945 × 9 #> # Keys: `tailnum` | 1 | 0 #> tailnum year type manufacturer model engines seats speed engine #> #> 1 N10156 2004 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 2 N104UW 1999 Fixed wing multi… AIRBUS INDU… A320… 2 182 NA Turbo… #> 3 N10575 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 4 N105UW 1999 Fixed wing multi… AIRBUS INDU… A320… 2 182 NA Turbo… #> 5 N110UW 1999 Fixed wing multi… AIRBUS INDU… A320… 2 182 NA Turbo… #> 6 N11106 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 7 N11107 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 8 N11109 2002 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 9 N11121 2003 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> 10 N11137 2003 Fixed wing multi… EMBRAER EMB-… 2 55 NA Turbo… #> # ℹ 935 more rows #> #> $weather #> # A tibble: 144 × 15 #> # Keys: `origin`, `time_hour` | 1 | 0 #> origin year month day hour temp dewp humid wind_dir wind_speed #> #> 1 EWR 2013 1 10 0 41 32 70.1 230 8.06 #> 2 EWR 2013 1 10 1 39.0 30.0 69.9 210 9.21 #> 3 EWR 2013 1 10 2 39.0 28.9 66.8 230 6.90 #> 4 EWR 2013 1 10 3 39.9 27.0 59.5 270 5.75 #> 5 EWR 2013 1 10 4 41 26.1 55.0 320 6.90 #> 6 EWR 2013 1 10 5 41 26.1 55.0 300 12.7 #> 7 EWR 2013 1 10 6 39.9 25.0 54.8 280 6.90 #> 8 EWR 2013 1 10 7 41 25.0 52.6 330 6.90 #> 9 EWR 2013 1 10 8 43.0 25.0 48.7 330 8.06 #> 10 EWR 2013 1 10 9 45.0 23 41.6 320 17.3 #> # ℹ 134 more rows #> # ℹ 5 more variables: wind_gust , precip , pressure , #> # visib , time_hour #> dm_nycflights13() %>% dm_get_tables(keyed = TRUE) %>% new_dm() #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/dm_gui.html","id":null,"dir":"Reference","previous_headings":"","what":"Shiny app for defining dm objects — dm_gui","title":"Shiny app for defining dm objects — dm_gui","text":"function starts Shiny application allows define dm objects database local data frames. application generates R code can inserted copy-pasted R script function.","code":""},{"path":"https://dm.cynkra.com/reference/dm_gui.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Shiny app for defining dm objects — dm_gui","text":"","code":"dm_gui(..., dm = NULL, select_tables = TRUE, debug = FALSE)"},{"path":"https://dm.cynkra.com/reference/dm_gui.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Shiny app for defining dm objects — dm_gui","text":"... dots future extensions must empty. dm initial dm object, currently required. select_tables Show selectize input select tables? debug Set TRUE simplify debugging app.","code":""},{"path":"https://dm.cynkra.com/reference/dm_gui.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Shiny app for defining dm objects — dm_gui","text":"future release, app also allow composing dm objects directly database connections data frames. signature function subject change without notice. pose many problems, usually run interactively.","code":""},{"path":"https://dm.cynkra.com/reference/dm_gui.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Shiny app for defining dm objects — dm_gui","text":"","code":"if (FALSE) { dm <- dm_nycflights13(cycle = TRUE) dm_gui(dm = dm) }"},{"path":"https://dm.cynkra.com/reference/dm_has_fk.html","id":null,"dir":"Reference","previous_headings":"","what":"Check if foreign keys exists — dm_has_fk","title":"Check if foreign keys exists — dm_has_fk","text":"functions deprecated limited use since introduction foreign keys arbitrary columns dm 0.2.1. Use dm_get_all_fks() table manipulation functions instead.","code":""},{"path":"https://dm.cynkra.com/reference/dm_has_fk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check if foreign keys exists — dm_has_fk","text":"","code":"dm_has_fk(dm, table, ref_table, ...) dm_get_fk(dm, table, ref_table, ...)"},{"path":"https://dm.cynkra.com/reference/dm_has_fk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check if foreign keys exists — dm_has_fk","text":"dm dm object. table table dm. ref_table table table referencing. ... dots future extensions must empty.","code":""},{"path":"https://dm.cynkra.com/reference/dm_has_pk.html","id":null,"dir":"Reference","previous_headings":"","what":"Check for primary key — dm_has_pk","title":"Check for primary key — dm_has_pk","text":"dm_has_pk() checks given table columns marked primary key.","code":""},{"path":"https://dm.cynkra.com/reference/dm_has_pk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check for primary key — dm_has_pk","text":"","code":"dm_has_pk(dm, table, ...)"},{"path":"https://dm.cynkra.com/reference/dm_has_pk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check for primary key — dm_has_pk","text":"dm dm object. table table dm. ... dots future extensions must empty.","code":""},{"path":"https://dm.cynkra.com/reference/dm_has_pk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check for primary key — dm_has_pk","text":"logical value: TRUE given table primary key, FALSE otherwise.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_has_pk.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check for primary key — dm_has_pk","text":"","code":"dm_nycflights13() %>% dm_has_pk(flights) #> [1] FALSE dm_nycflights13() %>% dm_has_pk(planes) #> [1] TRUE"},{"path":"https://dm.cynkra.com/reference/dm_mutate_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Update tables in a dm — dm_mutate_tbl","title":"Update tables in a dm — dm_mutate_tbl","text":"Updates one existing tables dm. now, column names must identical. restriction may levied optionally future.","code":""},{"path":"https://dm.cynkra.com/reference/dm_mutate_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Update tables in a dm — dm_mutate_tbl","text":"","code":"dm_mutate_tbl(dm, ...)"},{"path":"https://dm.cynkra.com/reference/dm_mutate_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Update tables in a dm — dm_mutate_tbl","text":"dm dm object. ... One tables update dm. Must named.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_mutate_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Update tables in a dm — dm_mutate_tbl","text":"","code":"dm_nycflights13() %>% dm_mutate_tbl(flights = nycflights13::flights[1:3, ]) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/dm_nest_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Nest a table inside its dm — dm_nest_tbl","title":"Nest a table inside its dm — dm_nest_tbl","text":"dm_nest_tbl() converts child table nested column parent table. child table children (.e. needs terminal child table).","code":""},{"path":"https://dm.cynkra.com/reference/dm_nest_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Nest a table inside its dm — dm_nest_tbl","text":"","code":"dm_nest_tbl(dm, child_table, into = NULL)"},{"path":"https://dm.cynkra.com/reference/dm_nest_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Nest a table inside its dm — dm_nest_tbl","text":"dm dm. child_table terminal table one parent table. table nest child_tables , optional can guessed foreign keys unambiguously useful explicit.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_nest_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Nest a table inside its dm — dm_nest_tbl","text":"","code":"nested_dm <- dm_nycflights13() %>% dm_select_tbl(airlines, flights) %>% dm_nest_tbl(flights) nested_dm #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines` #> Columns: 3 #> Primary keys: 1 #> Foreign keys: 0 nested_dm$airlines #> # A tibble: 15 × 3 #> carrier name flights #> #> 1 9E Endeavor Air Inc. #> 2 AA American Airlines Inc. #> 3 AS Alaska Airlines Inc. #> 4 B6 JetBlue Airways #> 5 DL Delta Air Lines Inc. #> 6 EV ExpressJet Airlines Inc. #> 7 F9 Frontier Airlines Inc. #> 8 FL AirTran Airways Corporation #> 9 HA Hawaiian Airlines Inc. #> 10 MQ Envoy Air #> 11 UA United Air Lines Inc. #> 12 US US Airways Inc. #> 13 VX Virgin America #> 14 WN Southwest Airlines Co. #> 15 YV Mesa Airlines Inc. "},{"path":"https://dm.cynkra.com/reference/dm_nrow.html","id":null,"dir":"Reference","previous_headings":"","what":"Number of rows — dm_nrow","title":"Number of rows — dm_nrow","text":"Returns named vector number rows table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_nrow.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Number of rows — dm_nrow","text":"","code":"dm_nrow(dm)"},{"path":"https://dm.cynkra.com/reference/dm_nrow.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Number of rows — dm_nrow","text":"dm dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_nrow.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Number of rows — dm_nrow","text":"named vector number rows table.","code":""},{"path":"https://dm.cynkra.com/reference/dm_nrow.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Number of rows — dm_nrow","text":"","code":"dm_nycflights13() %>% dm_filter(airports = (faa %in% c(\"EWR\", \"LGA\"))) %>% dm_nrow() #> airlines airports flights planes weather #> 13 2 1159 658 67"},{"path":"https://dm.cynkra.com/reference/dm_nycflights13.html","id":null,"dir":"Reference","previous_headings":"","what":"Creates a dm object for the nycflights13 data — dm_nycflights13","title":"Creates a dm object for the nycflights13 data — dm_nycflights13","text":"Creates example dm object tables nycflights13, along references. See nycflights13::flights description data. described nycflights13::planes, relationship flights table planes tables \"weak\", satisfy data integrity constraints.","code":""},{"path":"https://dm.cynkra.com/reference/dm_nycflights13.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Creates a dm object for the nycflights13 data — dm_nycflights13","text":"","code":"dm_nycflights13( ..., cycle = FALSE, color = TRUE, subset = TRUE, compound = TRUE, table_description = FALSE )"},{"path":"https://dm.cynkra.com/reference/dm_nycflights13.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Creates a dm object for the nycflights13 data — dm_nycflights13","text":"... dots future extensions must empty. cycle Boolean. FALSE (default), one foreign key relation (flights$origin airports$faa) flights table airports table established. TRUE, dm object double reference tables produced. color Boolean, TRUE (default), resulting dm object colors assigned different tables visualization dm_draw(). subset Boolean, TRUE (default), flights table reduced flights column day equal 10. compound Boolean, FALSE, link established tables flights weather, requires compound keys. table_description Boolean, TRUE, description added table displayed drawing table dm_draw().","code":""},{"path":"https://dm.cynkra.com/reference/dm_nycflights13.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Creates a dm object for the nycflights13 data — dm_nycflights13","text":"dm object consisting nycflights13 tables, complete primary foreign keys optionally colored.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_nycflights13.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Creates a dm object for the nycflights13 data — dm_nycflights13","text":"","code":"dm_nycflights13() %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour"},{"path":"https://dm.cynkra.com/reference/dm_pack_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"dm_pack_tbl() — dm_pack_tbl","title":"dm_pack_tbl() — dm_pack_tbl","text":"dm_pack_tbl() converts parent table packed column child table. parent table parent tables (.e. needs terminal parent table).","code":""},{"path":"https://dm.cynkra.com/reference/dm_pack_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"dm_pack_tbl() — dm_pack_tbl","text":"","code":"dm_pack_tbl(dm, parent_table, into = NULL)"},{"path":"https://dm.cynkra.com/reference/dm_pack_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"dm_pack_tbl() — dm_pack_tbl","text":"dm dm. parent_table terminal table one child table. table pack parent_tables , optional can guessed foreign keys unambiguously useful explicit.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_pack_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"dm_pack_tbl() — dm_pack_tbl","text":"","code":"dm_packed <- dm_nycflights13() %>% dm_pack_tbl(planes) dm_packed #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `weather` #> Columns: 45 #> Primary keys: 3 #> Foreign keys: 3 dm_packed$flights #> # A tibble: 1,761 × 20 #> year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time #> #> 1 2013 1 10 3 2359 4 426 437 #> 2 2013 1 10 16 2359 17 447 444 #> 3 2013 1 10 450 500 -10 634 648 #> 4 2013 1 10 520 525 -5 813 820 #> 5 2013 1 10 530 530 0 824 829 #> 6 2013 1 10 531 540 -9 832 850 #> 7 2013 1 10 535 540 -5 1015 1017 #> 8 2013 1 10 546 600 -14 645 709 #> 9 2013 1 10 549 600 -11 652 724 #> 10 2013 1 10 550 600 -10 649 703 #> # ℹ 1,751 more rows #> # ℹ 12 more variables: arr_delay , carrier , flight , #> # tailnum , origin , dest , air_time , distance , #> # hour , minute , time_hour , planes dm_packed$flights$planes #> # A tibble: 1,761 × 8 #> year type manufacturer model engines seats speed engine #> #> 1 2003 Fixed wing multi engine AIRBUS A320… 2 200 NA Turbo… #> 2 2003 Fixed wing multi engine AIRBUS A320… 2 200 NA Turbo… #> 3 2001 Fixed wing multi engine AIRBUS INDUST… A321… 2 199 NA Turbo… #> 4 2000 Fixed wing multi engine BOEING 737-… 2 149 NA Turbo… #> 5 1998 Fixed wing multi engine AIRBUS INDUST… A319… 2 179 NA Turbo… #> 6 NA NA NA NA NA NA NA NA #> 7 2011 Fixed wing multi engine AIRBUS A320… 2 200 NA Turbo… #> 8 2011 Fixed wing multi engine EMBRAER ERJ … 2 20 NA Turbo… #> 9 2002 Fixed wing multi engine EMBRAER EMB-… 2 55 NA Turbo… #> 10 2000 Fixed wing multi engine AIRBUS INDUST… A319… 2 179 NA Turbo… #> # ℹ 1,751 more rows"},{"path":"https://dm.cynkra.com/reference/dm_paste.html","id":null,"dir":"Reference","previous_headings":"","what":"Create R code for a dm object — dm_paste","title":"Create R code for a dm object — dm_paste","text":"dm_paste() takes existing dm emits code necessary creation.","code":""},{"path":"https://dm.cynkra.com/reference/dm_paste.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create R code for a dm object — dm_paste","text":"","code":"dm_paste(dm, select = NULL, ..., tab_width = 2, options = NULL, path = NULL)"},{"path":"https://dm.cynkra.com/reference/dm_paste.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create R code for a dm object — dm_paste","text":"dm dm object. select Deprecated, see \"select\" options argument. ... Must empty. tab_width Indentation width code second line onwards options Formatting options. character vector containing : \"tables\": tibble() calls empty table definitions derived dm_ptype(), overrides \"select\". \"select\": dm_select() statements columns part dm. \"keys\": dm_add_pk(), dm_add_fk() dm_add_uk() statements adding keys. \"color\": dm_set_colors() statements set color. \"\": options except \"select\" Default NULL equivalent c(\"keys\", \"color\") path Output file, NULL code printed console.","code":""},{"path":"https://dm.cynkra.com/reference/dm_paste.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create R code for a dm object — dm_paste","text":"Code producing prototype given dm.","code":""},{"path":"https://dm.cynkra.com/reference/dm_paste.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Create R code for a dm object — dm_paste","text":"code emitted function reproduces structure dm object. options argument controls level detail: keys, colors, table definitions. Data tables never included, see dm_ptype() underlying logic.","code":""},{"path":"https://dm.cynkra.com/reference/dm_paste.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create R code for a dm object — dm_paste","text":"","code":"dm() %>% dm_paste() #> dm::dm( #> ) dm_nycflights13() %>% dm_paste() #> dm::dm( #> airlines, #> airports, #> flights, #> planes, #> weather, #> ) %>% #> dm::dm_add_pk(airlines, carrier) %>% #> dm::dm_add_pk(airports, faa) %>% #> dm::dm_add_pk(planes, tailnum) %>% #> dm::dm_add_pk(weather, c(origin, time_hour)) %>% #> dm::dm_add_fk(flights, carrier, airlines) %>% #> dm::dm_add_fk(flights, origin, airports) %>% #> dm::dm_add_fk(flights, tailnum, planes) %>% #> dm::dm_add_fk(flights, c(origin, time_hour), weather) %>% #> dm::dm_set_colors(`#ED7D31FF` = airlines) %>% #> dm::dm_set_colors(`#ED7D31FF` = airports) %>% #> dm::dm_set_colors(`#5B9BD5FF` = flights) %>% #> dm::dm_set_colors(`#ED7D31FF` = planes) %>% #> dm::dm_set_colors(`#70AD47FF` = weather) dm_nycflights13() %>% dm_paste(options = \"select\") #> dm::dm( #> airlines, #> airports, #> flights, #> planes, #> weather, #> ) %>% #> dm::dm_select(airlines, carrier, name) %>% #> dm::dm_select(airports, faa, name, lat, lon, alt, tz, dst, tzone) %>% #> dm::dm_select(flights, year, month, day, dep_time, sched_dep_time, dep_delay, arr_time, sched_arr_time, arr_delay, carrier, flight, tailnum, origin, dest, air_time, distance, hour, minute, time_hour) %>% #> dm::dm_select(planes, tailnum, year, type, manufacturer, model, engines, seats, speed, engine) %>% #> dm::dm_select(weather, origin, year, month, day, hour, temp, dewp, humid, wind_dir, wind_speed, wind_gust, precip, pressure, visib, time_hour)"},{"path":"https://dm.cynkra.com/reference/dm_pixarfilms.html","id":null,"dir":"Reference","previous_headings":"","what":"Creates a dm object for the pixarfilms data — dm_pixarfilms","title":"Creates a dm object for the pixarfilms data — dm_pixarfilms","text":"Creates example dm object tables pixarfilms, along references.","code":""},{"path":"https://dm.cynkra.com/reference/dm_pixarfilms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Creates a dm object for the pixarfilms data — dm_pixarfilms","text":"","code":"dm_pixarfilms(..., color = TRUE, consistent = FALSE)"},{"path":"https://dm.cynkra.com/reference/dm_pixarfilms.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Creates a dm object for the pixarfilms data — dm_pixarfilms","text":"... dots future extensions must empty. color Boolean, TRUE (default), resulting dm object colors assigned different tables visualization dm_draw(). consistent Boolean, original dm film column pixar_films contains missing values made proper primary key. Set TRUE remove records.","code":""},{"path":"https://dm.cynkra.com/reference/dm_pixarfilms.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Creates a dm object for the pixarfilms data — dm_pixarfilms","text":"dm object consisting pixarfilms tables, complete primary foreign keys optionally colored.","code":""},{"path":"https://dm.cynkra.com/reference/dm_pixarfilms.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Creates a dm object for the pixarfilms data — dm_pixarfilms","text":"","code":"dm_pixarfilms() #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `pixar_films`, `pixar_people`, `academy`, `box_office`, `genres`, `public_response` #> Columns: 23 #> Primary keys: 5 #> Foreign keys: 5 dm_pixarfilms() %>% dm_draw() %0 academyacademyfilmfilm, award_typepixar_filmspixar_filmsfilmacademy:film->pixar_films:filmbox_officebox_officefilmbox_office:film->pixar_films:filmgenresgenresfilmfilm, genregenres:film->pixar_films:filmpixar_peoplepixar_peoplefilmpixar_people:film->pixar_films:filmpublic_responsepublic_responsefilmpublic_response:film->pixar_films:film"},{"path":"https://dm.cynkra.com/reference/dm_ptype.html","id":null,"dir":"Reference","previous_headings":"","what":"Prototype for a dm object — dm_ptype","title":"Prototype for a dm object — dm_ptype","text":"prototype contains tables, primary foreign keys, data. tables truncated converted zero-row tibbles, also remote data models. Columns retain type. useful performing creation population database separate steps.","code":""},{"path":"https://dm.cynkra.com/reference/dm_ptype.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Prototype for a dm object — dm_ptype","text":"","code":"dm_ptype(dm)"},{"path":"https://dm.cynkra.com/reference/dm_ptype.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Prototype for a dm object — dm_ptype","text":"dm dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_ptype.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Prototype for a dm object — dm_ptype","text":"","code":"if (FALSE) { # dm:::dm_has_financial() dm_financial() %>% dm_ptype() dm_financial() %>% dm_ptype() %>% dm_nrow() }"},{"path":"https://dm.cynkra.com/reference/dm_rename.html","id":null,"dir":"Reference","previous_headings":"","what":"Rename columns — dm_rename","title":"Rename columns — dm_rename","text":"Rename columns dm using syntax similar dplyr::rename().","code":""},{"path":"https://dm.cynkra.com/reference/dm_rename.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Rename columns — dm_rename","text":"","code":"dm_rename(dm, table, ...)"},{"path":"https://dm.cynkra.com/reference/dm_rename.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Rename columns — dm_rename","text":"dm dm object. table table dm. ... One unquoted expressions separated commas. can treat variable names positions, use expressions like x:y select ranges variables. Use named arguments, e.g. new_name = old_name, rename selected variables. arguments ... automatically quoted evaluated context column names represent column positions. also support unquoting splicing. See vignette(\"programming\", package = \"dplyr\") introduction concepts. See select helpers details, examples tidyselect helpers, starts_with(), everything(), ...","code":""},{"path":"https://dm.cynkra.com/reference/dm_rename.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Rename columns — dm_rename","text":"updated dm columns table renamed.","code":""},{"path":"https://dm.cynkra.com/reference/dm_rename.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Rename columns — dm_rename","text":"key columns renamed, meta-information dm updated accordingly.","code":""},{"path":"https://dm.cynkra.com/reference/dm_rename.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Rename columns — dm_rename","text":"","code":"dm_nycflights13() %>% dm_rename(airports, code = faa, altitude = alt) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/dm_rm_fk.html","id":null,"dir":"Reference","previous_headings":"","what":"Remove foreign keys — dm_rm_fk","title":"Remove foreign keys — dm_rm_fk","text":"dm_rm_fk() can remove either one reference two tables, multiple references (message). error thrown matching foreign key found.","code":""},{"path":"https://dm.cynkra.com/reference/dm_rm_fk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Remove foreign keys — dm_rm_fk","text":"","code":"dm_rm_fk( dm, table = NULL, columns = NULL, ref_table = NULL, ref_columns = NULL, ... )"},{"path":"https://dm.cynkra.com/reference/dm_rm_fk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Remove foreign keys — dm_rm_fk","text":"dm dm object. table table dm. Pass NULL remove matching keys. columns Table columns, unquoted. refer compound key, use c(col1, col2). Pass NULL (default) remove matching keys. ref_table table referenced table argument. Pass NULL remove matching keys. ref_columns columns table longer referencing primary key ref_table. refer compound key, use c(col1, col2). ... dots future extensions must empty.","code":""},{"path":"https://dm.cynkra.com/reference/dm_rm_fk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Remove foreign keys — dm_rm_fk","text":"updated dm without matching foreign key relation(s).","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_rm_fk.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Remove foreign keys — dm_rm_fk","text":"","code":"dm_nycflights13(cycle = TRUE) %>% dm_rm_fk(flights, dest, airports) %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour"},{"path":"https://dm.cynkra.com/reference/dm_rm_pk.html","id":null,"dir":"Reference","previous_headings":"","what":"Remove a primary key — dm_rm_pk","title":"Remove a primary key — dm_rm_pk","text":"table name provided, dm_rm_pk() removes primary key table leaves dm object otherwise unaltered. table given, dm stripped primary keys . error thrown primary key matches selection criteria. selection criteria ambiguous, message unambiguous replacement code shown. Foreign keys never removed.","code":""},{"path":"https://dm.cynkra.com/reference/dm_rm_pk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Remove a primary key — dm_rm_pk","text":"","code":"dm_rm_pk(dm, table = NULL, columns = NULL, ..., fail_fk = NULL)"},{"path":"https://dm.cynkra.com/reference/dm_rm_pk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Remove a primary key — dm_rm_pk","text":"dm dm object. table table dm. Pass NULL remove matching keys. columns Table columns, unquoted. refer compound key, use c(col1, col2). Pass NULL (default) remove matching keys. ... dots future extensions must empty. fail_fk","code":""},{"path":"https://dm.cynkra.com/reference/dm_rm_pk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Remove a primary key — dm_rm_pk","text":"updated dm without indicated primary key(s).","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_rm_pk.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Remove a primary key — dm_rm_pk","text":"","code":"dm_nycflights13() %>% dm_rm_pk(airports) %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour"},{"path":"https://dm.cynkra.com/reference/dm_rm_uk.html","id":null,"dir":"Reference","previous_headings":"","what":"Remove a unique key — dm_rm_uk","title":"Remove a unique key — dm_rm_uk","text":"dm_rm_uk() removes one unique keys table leaves dm object otherwise unaltered. error thrown unique key matches selection criteria. selection criteria ambiguous, message unambiguous replacement code shown. Foreign keys never removed.","code":""},{"path":"https://dm.cynkra.com/reference/dm_rm_uk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Remove a unique key — dm_rm_uk","text":"","code":"dm_rm_uk(dm, table = NULL, columns = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/dm_rm_uk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Remove a unique key — dm_rm_uk","text":"dm dm object. table table dm. Pass NULL remove matching keys. columns Table columns, unquoted. refer compound key, use c(col1, col2). Pass NULL (default) remove matching keys. ... dots future extensions must empty.","code":""},{"path":"https://dm.cynkra.com/reference/dm_rm_uk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Remove a unique key — dm_rm_uk","text":"updated dm without indicated unique key(s).","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_select.html","id":null,"dir":"Reference","previous_headings":"","what":"Select columns — dm_select","title":"Select columns — dm_select","text":"Select columns dm using syntax similar dplyr::select().","code":""},{"path":"https://dm.cynkra.com/reference/dm_select.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Select columns — dm_select","text":"","code":"dm_select(dm, table, ...)"},{"path":"https://dm.cynkra.com/reference/dm_select.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Select columns — dm_select","text":"dm dm object. table table dm. ... One unquoted expressions separated commas. can treat variable names positions, use expressions like x:y select ranges variables. Use named arguments, e.g. new_name = old_name, rename selected variables. arguments ... automatically quoted evaluated context column names represent column positions. also support unquoting splicing. See vignette(\"programming\", package = \"dplyr\") introduction concepts. See select helpers details, examples tidyselect helpers, starts_with(), everything(), ...","code":""},{"path":"https://dm.cynkra.com/reference/dm_select.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Select columns — dm_select","text":"updated dm columns table reduced /renamed.","code":""},{"path":"https://dm.cynkra.com/reference/dm_select.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Select columns — dm_select","text":"key columns renamed, meta-information dm updated accordingly. key columns removed, related relations dropped well.","code":""},{"path":"https://dm.cynkra.com/reference/dm_select.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Select columns — dm_select","text":"","code":"dm_nycflights13() %>% dm_select(airports, code = faa, altitude = alt) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 47 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/dm_select_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Select and rename tables — dm_select_tbl","title":"Select and rename tables — dm_select_tbl","text":"dm_select_tbl() keeps selected tables relationships, optionally renaming . dm_rename_tbl() renames tables.","code":""},{"path":"https://dm.cynkra.com/reference/dm_select_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Select and rename tables — dm_select_tbl","text":"","code":"dm_select_tbl(dm, ...) dm_rename_tbl(dm, ...)"},{"path":"https://dm.cynkra.com/reference/dm_select_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Select and rename tables — dm_select_tbl","text":"dm dm object. ... One table names tables dm object. tidyselect supported, see dplyr::select() details semantics.","code":""},{"path":"https://dm.cynkra.com/reference/dm_select_tbl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Select and rename tables — dm_select_tbl","text":"input dm tables renamed removed.","code":""},{"path":"https://dm.cynkra.com/reference/dm_select_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Select and rename tables — dm_select_tbl","text":"","code":"dm_nycflights13() %>% dm_select_tbl(airports, fl = flights) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airports`, `fl` #> Columns: 27 #> Primary keys: 1 #> Foreign keys: 1 dm_nycflights13() %>% dm_rename_tbl(ap = airports, fl = flights) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `ap`, `fl`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/dm_set_colors.html","id":null,"dir":"Reference","previous_headings":"","what":"Color in database diagrams — dm_set_colors","title":"Color in database diagrams — dm_set_colors","text":"dm_set_colors() allows define colors used display tables data model dm_draw(). colors can either either specified hex color codes using names built-R colors. overview colors corresponding standard color names can found bottom https://rpubs.com/krlmlr/colors. dm_get_colors() returns colors defined data model. dm_get_available_colors() returns overview names available colors standard colors also returned grDevices::colors() plus default table color name \"default\".","code":""},{"path":"https://dm.cynkra.com/reference/dm_set_colors.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Color in database diagrams — dm_set_colors","text":"","code":"dm_set_colors(dm, ...) dm_get_colors(dm) dm_get_available_colors()"},{"path":"https://dm.cynkra.com/reference/dm_set_colors.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Color in database diagrams — dm_set_colors","text":"dm dm object. ... Colors set form color = table. Allowed colors hex coded colors (quoted) color names dm_get_available_colors(). tidyselect supported, see dplyr::select() details semantics.","code":""},{"path":"https://dm.cynkra.com/reference/dm_set_colors.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Color in database diagrams — dm_set_colors","text":"dm_set_colors(): updated data model. dm_get_colors(), named character vector table names colors names. allows calling dm_set_colors(!!!dm_get_colors(...)). Use tibble::enframe() convert tibble. dm_get_available_colors(), vector available colors.","code":""},{"path":"https://dm.cynkra.com/reference/dm_set_colors.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Color in database diagrams — dm_set_colors","text":"","code":"dm_nycflights13(color = FALSE) %>% dm_set_colors( darkblue = starts_with(\"air\"), \"#5986C4\" = flights ) %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour # Splicing is supported: nyc_cols <- dm_nycflights13() %>% dm_get_colors() nyc_cols #> #ED7D31FF #ED7D31FF #5B9BD5FF #ED7D31FF #70AD47FF #> \"airlines\" \"airports\" \"flights\" \"planes\" \"weather\" dm_nycflights13(color = FALSE) %>% dm_set_colors(!!!nyc_cols) %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherorigin, time_hourflights:origin, time_hour->weather:origin, time_hour"},{"path":"https://dm.cynkra.com/reference/dm_set_table_description.html","id":null,"dir":"Reference","previous_headings":"","what":"Add info about a dm's tables — dm_set_table_description","title":"Add info about a dm's tables — dm_set_table_description","text":"creating diagram dm using dm_draw() table descriptions set dm_set_table_description() displayed.","code":""},{"path":"https://dm.cynkra.com/reference/dm_set_table_description.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add info about a dm's tables — dm_set_table_description","text":"","code":"dm_set_table_description(dm, ...) dm_get_table_description(dm, table = NULL, ...) dm_reset_table_description(dm, table = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/dm_set_table_description.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add info about a dm's tables — dm_set_table_description","text":"dm dm object. ... dm_set_table_description(): Descriptions tables set form description = table. tidyselect supported, see dplyr::select() details semantics. dm_get_table_description() dm_reset_table_description(): dots future extensions must empty. table One table names, unquoted, get information current description(s) dm_get_table_description(). remove descriptions dm_reset_table_description(). cases default applies tables dm.","code":""},{"path":"https://dm.cynkra.com/reference/dm_set_table_description.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add info about a dm's tables — dm_set_table_description","text":"dm_set_table_description(): dm object containing descriptions specified tables. dm_get_table_description: named vector tables, descriptions names. dm_reset_table_description(): dm object without descriptions specified tables.","code":""},{"path":"https://dm.cynkra.com/reference/dm_set_table_description.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add info about a dm's tables — dm_set_table_description","text":"Multi-line descriptions can achieved using newline symbol \\n. Descriptions set dm_set_table_description(). currently set descriptions can checked using dm_get_table_description(). Descriptions can removed using dm_reset_table_description().","code":""},{"path":"https://dm.cynkra.com/reference/dm_set_table_description.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add info about a dm's tables — dm_set_table_description","text":"","code":"desc_flights <- rlang::set_names( \"flights\", paste( \"On-time data for all flights\", \"that departed NYC (i.e. JFK, LGA or EWR) in 2013.\", sep = \"\\n\" ) ) nyc_desc <- dm_nycflights13() %>% dm_set_table_description( !!desc_flights, \"Weather at the airport of\\norigin at time of departure\" = weather ) nyc_desc %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaflightsflightsOn-time data for all flightsthat departed NYC (i.e. JFK, LGA or EWR) in 2013.carriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherWeather at the airport oforigin at time of departureorigin, time_hourflights:origin, time_hour->weather:origin, time_hour dm_get_table_description(nyc_desc) #> On-time data for all flights\\nthat departed NYC (i.e. JFK, LGA or EWR) in 2013. #> \"flights\" #> Weather at the airport of\\norigin at time of departure #> \"weather\" dm_reset_table_description(nyc_desc, flights) %>% dm_draw(font_size = c(header = 18L, table_description = 9L, column = 15L)) %0 airlinesairlinescarrierairportsairportsfaaflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaplanesplanestailnumflights:tailnum->planes:tailnumweatherweatherWeather at the airport oforigin at time of departureorigin, time_hourflights:origin, time_hour->weather:origin, time_hour pull_tbl(nyc_desc, flights) %>% labelled::label_attribute() #> [1] \"On-time data for all flights\\nthat departed NYC (i.e. JFK, LGA or EWR) in 2013.\""},{"path":"https://dm.cynkra.com/reference/dm_sql.html","id":null,"dir":"Reference","previous_headings":"","what":"Create DDL and DML scripts for a dm a and database connection — dm_sql","title":"Create DDL and DML scripts for a dm a and database connection — dm_sql","text":"Generate SQL scripts create tables, load data set constraints, keys indices. function powers copy_dm_to() useful need control process copying dm database.","code":""},{"path":"https://dm.cynkra.com/reference/dm_sql.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create DDL and DML scripts for a dm a and database connection — dm_sql","text":"","code":"dm_sql(dm, dest, table_names = NULL, temporary = TRUE) dm_ddl_pre(dm, dest, table_names = NULL, temporary = TRUE) dm_dml_load(dm, dest, table_names = NULL, temporary = TRUE) dm_ddl_post(dm, dest, table_names = NULL, temporary = TRUE)"},{"path":"https://dm.cynkra.com/reference/dm_sql.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create DDL and DML scripts for a dm a and database connection — dm_sql","text":"dm dm object. dest Connection database. table_names named character vector named vector DBI::Id, DBI::SQL dbplyr objects created dbplyr::ident(), dbplyr::in_schema() dbplyr::in_catalog(), one unique element table dm. default, NULL, means use original table names. temporary tables marked temporary? Defaults TRUE.","code":""},{"path":"https://dm.cynkra.com/reference/dm_sql.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create DDL and DML scripts for a dm a and database connection — dm_sql","text":"Nested list SQL statements.","code":""},{"path":"https://dm.cynkra.com/reference/dm_sql.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Create DDL and DML scripts for a dm a and database connection — dm_sql","text":"dm_ddl_pre() generates CREATE TABLE statements (including PRIMARY KEY definition). dm_dml_load() generates INSERT statements. dm_ddl_post() generates scripts FOREIGN KEY, UNIQUE KEY INDEX. dm_sql() calls three returns complete set scripts.","code":""},{"path":"https://dm.cynkra.com/reference/dm_sql.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create DDL and DML scripts for a dm a and database connection — dm_sql","text":"","code":"con <- DBI::dbConnect(RSQLite::SQLite()) dm <- dm_nycflights13() s <- dm_sql(dm, con) s #> $pre #> $pre$airlines #> CREATE TEMPORARY TABLE `airlines` ( #> `carrier` TEXT, #> `name` TEXT, #> PRIMARY KEY (`carrier`), #> UNIQUE (`carrier`) #> ) #> #> $pre$airports #> CREATE TEMPORARY TABLE `airports` ( #> `faa` TEXT, #> `name` TEXT, #> `lat` DOUBLE, #> `lon` DOUBLE, #> `alt` DOUBLE, #> `tz` DOUBLE, #> `dst` TEXT, #> `tzone` TEXT, #> PRIMARY KEY (`faa`), #> UNIQUE (`faa`) #> ) #> #> $pre$planes #> CREATE TEMPORARY TABLE `planes` ( #> `tailnum` TEXT, #> `year` INTEGER, #> `type` TEXT, #> `manufacturer` TEXT, #> `model` TEXT, #> `engines` INTEGER, #> `seats` INTEGER, #> `speed` INTEGER, #> `engine` TEXT, #> PRIMARY KEY (`tailnum`), #> UNIQUE (`tailnum`) #> ) #> #> $pre$weather #> CREATE TEMPORARY TABLE `weather` ( #> `origin` TEXT, #> `year` INTEGER, #> `month` INTEGER, #> `day` INTEGER, #> `hour` INTEGER, #> `temp` DOUBLE, #> `dewp` DOUBLE, #> `humid` DOUBLE, #> `wind_dir` DOUBLE, #> `wind_speed` DOUBLE, #> `wind_gust` DOUBLE, #> `precip` DOUBLE, #> `pressure` DOUBLE, #> `visib` DOUBLE, #> `time_hour` TIMESTAMP, #> PRIMARY KEY (`origin`, `time_hour`), #> UNIQUE (`origin`, `time_hour`) #> ) #> #> $pre$flights #> CREATE TEMPORARY TABLE `flights` ( #> `year` INTEGER, #> `month` INTEGER, #> `day` INTEGER, #> `dep_time` INTEGER, #> `sched_dep_time` INTEGER, #> `dep_delay` DOUBLE, #> `arr_time` INTEGER, #> `sched_arr_time` INTEGER, #> `arr_delay` DOUBLE, #> `carrier` TEXT, #> `flight` INTEGER, #> `tailnum` TEXT, #> `origin` TEXT, #> `dest` TEXT, #> `air_time` DOUBLE, #> `distance` DOUBLE, #> `hour` DOUBLE, #> `minute` DOUBLE, #> `time_hour` TIMESTAMP, #> FOREIGN KEY (`carrier`) REFERENCES `airlines` (`carrier`), #> FOREIGN KEY (`origin`) REFERENCES `airports` (`faa`), #> FOREIGN KEY (`tailnum`) REFERENCES `planes` (`tailnum`), #> FOREIGN KEY (`origin`, `time_hour`) REFERENCES `weather` (`origin`, `time_hour`) #> ) #> #> #> $load #> $load$airlines #> INSERT INTO `airlines` (`carrier`, `name`) #> SELECT CAST(`carrier` AS TEXT) AS `carrier`, CAST(`name` AS TEXT) AS `name` #> FROM ( #> SELECT NULL AS `carrier`, NULL AS `name` #> WHERE (0 = 1) #> #> UNION ALL #> #> VALUES #> ('9E', 'Endeavor Air Inc.'), #> ('AA', 'American Airlines Inc.'), #> ('AS', 'Alaska Airlines Inc.'), #> ('B6', 'JetBlue Airways'), #> ('DL', 'Delta Air Lines Inc.'), #> ('EV', 'ExpressJet Airlines Inc.'), #> ('F9', 'Frontier Airlines Inc.'), #> ('FL', 'AirTran Airways Corporation'), #> ('HA', 'Hawaiian Airlines Inc.'), #> ('MQ', 'Envoy Air'), #> ('UA', 'United Air Lines Inc.'), #> ('US', 'US Airways Inc.'), #> ('VX', 'Virgin America'), #> ('WN', 'Southwest Airlines Co.'), #> ('YV', 'Mesa Airlines Inc.') #> ) AS `values_table` #> #> $load$airports #> INSERT INTO `airports` (`faa`, `name`, `lat`, `lon`, `alt`, `tz`, `dst`, `tzone`) #> SELECT #> CAST(`faa` AS TEXT) AS `faa`, #> CAST(`name` AS TEXT) AS `name`, #> CAST(`lat` AS REAL) AS `lat`, #> CAST(`lon` AS REAL) AS `lon`, #> CAST(`alt` AS REAL) AS `alt`, #> CAST(`tz` AS REAL) AS `tz`, #> CAST(`dst` AS TEXT) AS `dst`, #> CAST(`tzone` AS TEXT) AS `tzone` #> FROM ( #> SELECT #> NULL AS `faa`, #> NULL AS `name`, #> NULL AS `lat`, #> NULL AS `lon`, #> NULL AS `alt`, #> NULL AS `tz`, #> NULL AS `dst`, #> NULL AS `tzone` #> WHERE (0 = 1) #> #> UNION ALL #> #> VALUES #> ('ALB', 'Albany Intl', 42.748267, -73.801692, 285.0, -5.0, 'A', 'America/New_York'), #> ('ATL', 'Hartsfield Jackson Atlanta Intl', 33.636719, -84.428067, 1026.0, -5.0, 'A', 'America/New_York'), #> ('AUS', 'Austin Bergstrom Intl', 30.194528, -97.669889, 542.0, -6.0, 'A', 'America/Chicago'), #> ('BDL', 'Bradley Intl', 41.938889, -72.683222, 173.0, -5.0, 'A', 'America/New_York'), #> ('BHM', 'Birmingham Intl', 33.562942, -86.75355, 644.0, -6.0, 'A', 'America/Chicago'), #> ('BNA', 'Nashville Intl', 36.124472, -86.678194, 599.0, -6.0, 'A', 'America/Chicago'), #> ('BOS', 'General Edward Lawrence Logan Intl', 42.364347, -71.005181, 19.0, -5.0, 'A', 'America/New_York'), #> ('BTV', 'Burlington Intl', 44.471861, -73.153278, 335.0, -5.0, 'A', 'America/New_York'), #> ('BUF', 'Buffalo Niagara Intl', 42.940525, -78.732167, 724.0, -5.0, 'A', 'America/New_York'), #> ('BUR', 'Bob Hope', 34.200667, -118.358667, 778.0, -8.0, 'A', 'America/Los_Angeles'), #> ('BWI', 'Baltimore Washington Intl', 39.175361, -76.668333, 146.0, -5.0, 'A', 'America/New_York'), #> ('CAE', 'Columbia Metropolitan', 33.938833, -81.119528, 236.0, -5.0, 'A', 'America/New_York'), #> ('CAK', 'Akron Canton Regional Airport', 40.9160833, -81.4421944, 1228.0, -5.0, 'A', 'America/New_York'), #> ('CHS', 'Charleston Afb Intl', 32.898647, -80.040528, 45.0, -5.0, 'A', 'America/New_York'), #> ('CLE', 'Cleveland Hopkins Intl', 41.411689, -81.849794, 791.0, -5.0, 'A', 'America/New_York'), #> ('CLT', 'Charlotte Douglas Intl', 35.214, -80.943139, 748.0, -5.0, 'A', 'America/New_York'), #> ('CMH', 'Port Columbus Intl', 39.997972, -82.891889, 815.0, -5.0, 'A', 'America/New_York'), #> ('CRW', 'Yeager', 38.373147, -81.593189, 981.0, -5.0, 'A', 'America/New_York'), #> ('CVG', 'Cincinnati Northern Kentucky Intl', 39.048836, -84.667822, 896.0, -5.0, 'A', 'America/New_York'), #> ('DAY', 'James M Cox Dayton Intl', 39.902375, -84.219375, 1009.0, -5.0, 'A', 'America/New_York'), #> ('DCA', 'Ronald Reagan Washington Natl', 38.852083, -77.037722, 15.0, -5.0, 'A', 'America/New_York'), #> ('DEN', 'Denver Intl', 39.861656, -104.673178, 5431.0, -7.0, 'A', 'America/Denver'), #> ('DFW', 'Dallas Fort Worth Intl', 32.896828, -97.037997, 607.0, -6.0, 'A', 'America/Chicago'), #> ('DSM', 'Des Moines Intl', 41.533972, -93.663083, 958.0, -6.0, 'A', 'America/Chicago'), #> ('DTW', 'Detroit Metro Wayne Co', 42.212444, -83.353389, 645.0, -5.0, 'A', 'America/New_York'), #> ('EGE', 'Eagle Co Rgnl', 39.642556, -106.917694, 6540.0, -7.0, 'A', 'America/Denver'), #> ('EWR', 'Newark Liberty Intl', 40.6925, -74.168667, 18.0, -5.0, 'A', 'America/New_York'), #> ('FLL', 'Fort Lauderdale Hollywood Intl', 26.072583, -80.15275, 9.0, -5.0, 'A', 'America/New_York'), #> ('GRR', 'Gerald R Ford Intl', 42.880833, -85.522806, 794.0, -5.0, 'A', 'America/New_York'), #> ('GSO', 'Piedmont Triad', 36.09775, -79.937306, 925.0, -5.0, 'A', 'America/New_York'), #> ('GSP', 'Greenville-Spartanburg International', 34.895556, -82.218889, 964.0, -5.0, 'A', 'America/New_York'), #> ('HNL', 'Honolulu Intl', 21.318681, -157.922428, 13.0, -10.0, 'N', 'Pacific/Honolulu'), #> ('HOU', 'William P Hobby', 29.645419, -95.278889, 46.0, -6.0, 'A', 'America/Chicago'), #> ('IAD', 'Washington Dulles Intl', 38.944533, -77.455811, 313.0, -5.0, 'A', 'America/New_York'), #> ('IAH', 'George Bush Intercontinental', 29.984433, -95.341442, 97.0, -6.0, 'A', 'America/Chicago'), #> ('IND', 'Indianapolis Intl', 39.717331, -86.294383, 797.0, -5.0, 'A', 'America/New_York'), #> ('JAX', 'Jacksonville Intl', 30.494056, -81.687861, 30.0, -5.0, 'A', 'America/New_York'), #> ('JFK', 'John F Kennedy Intl', 40.639751, -73.778925, 13.0, -5.0, 'A', 'America/New_York'), #> ('LAS', 'Mc Carran Intl', 36.080056, -115.15225, 2141.0, -8.0, 'A', 'America/Los_Angeles'), #> ('LAX', 'Los Angeles Intl', 33.942536, -118.408075, 126.0, -8.0, 'A', 'America/Los_Angeles'), #> ('LGA', 'La Guardia', 40.777245, -73.872608, 22.0, -5.0, 'A', 'America/New_York'), #> ('LGB', 'Long Beach', 33.817722, -118.151611, 60.0, -8.0, 'A', 'America/Los_Angeles'), #> ('MCI', 'Kansas City Intl', 39.297606, -94.713905, 1026.0, -6.0, 'A', 'America/Chicago'), #> ('MCO', 'Orlando Intl', 28.429394, -81.308994, 96.0, -5.0, 'A', 'America/New_York'), #> ('MDW', 'Chicago Midway Intl', 41.785972, -87.752417, 620.0, -6.0, 'A', 'America/Chicago'), #> ('MEM', 'Memphis Intl', 35.042417, -89.976667, 341.0, -6.0, 'A', 'America/Chicago'), #> ('MHT', 'Manchester Regional Airport', 42.932556, -71.435667, 266.0, -5.0, 'A', 'America/New_York'), #> ('MIA', 'Miami Intl', 25.79325, -80.290556, 8.0, -5.0, 'A', 'America/New_York'), #> ('MKE', 'General Mitchell Intl', 42.947222, -87.896583, 723.0, -6.0, 'A', 'America/Chicago'), #> ('MSN', 'Dane Co Rgnl Truax Fld', 43.139858, -89.337514, 887.0, -6.0, 'A', 'America/Chicago'), #> ('MSP', 'Minneapolis St Paul Intl', 44.881956, -93.221767, 841.0, -6.0, 'A', 'America/Chicago'), #> ('MSY', 'Louis Armstrong New Orleans Intl', 29.993389, -90.258028, 4.0, -6.0, 'A', 'America/Chicago'), #> ('MYR', 'Myrtle Beach Intl', 33.67975, -78.928333, 25.0, -5.0, 'A', 'America/New_York'), #> ('OAK', 'Metropolitan Oakland Intl', 37.721278, -122.220722, 9.0, -8.0, 'A', 'America/Los_Angeles'), #> ('OKC', 'Will Rogers World', 35.393089, -97.600733, 1295.0, -6.0, 'A', 'America/Chicago'), #> ('OMA', 'Eppley Afld', 41.303167, -95.894069, 984.0, -6.0, 'A', 'America/Chicago'), #> ('ORD', 'Chicago Ohare Intl', 41.978603, -87.904842, 668.0, -6.0, 'A', 'America/Chicago'), #> ('ORF', 'Norfolk Intl', 36.894611, -76.201222, 26.0, -5.0, 'A', 'America/New_York'), #> ('PBI', 'Palm Beach Intl', 26.683161, -80.095589, 19.0, -5.0, 'A', 'America/New_York'), #> ('PDX', 'Portland Intl', 45.588722, -122.5975, 30.0, -8.0, 'A', 'America/Los_Angeles'), #> ('PHL', 'Philadelphia Intl', 39.871944, -75.241139, 36.0, -5.0, 'A', 'America/New_York'), #> ('PHX', 'Phoenix Sky Harbor Intl', 33.434278, -112.011583, 1135.0, -7.0, 'N', 'America/Phoenix'), #> ('PIT', 'Pittsburgh Intl', 40.491467, -80.232872, 1204.0, -5.0, 'A', 'America/New_York'), #> ('PVD', 'Theodore Francis Green State', 41.732581, -71.420383, 55.0, -5.0, 'A', 'America/New_York'), #> ('PWM', 'Portland Intl Jetport', 43.646161, -70.309281, 77.0, -5.0, 'A', 'America/New_York'), #> ('RDU', 'Raleigh Durham Intl', 35.877639, -78.787472, 435.0, -5.0, 'A', 'America/New_York'), #> ('RIC', 'Richmond Intl', 37.505167, -77.319667, 167.0, -5.0, 'A', 'America/New_York'), #> ('ROC', 'Greater Rochester Intl', 43.118866, -77.672389, 559.0, -5.0, 'A', 'America/New_York'), #> ('RSW', 'Southwest Florida Intl', 26.536167, -81.755167, 30.0, -5.0, 'A', 'America/New_York'), #> ('SAN', 'San Diego Intl', 32.733556, -117.189667, 17.0, -8.0, 'A', 'America/Los_Angeles'), #> ('SAT', 'San Antonio Intl', 29.533694, -98.469778, 809.0, -6.0, 'A', 'America/Chicago'), #> ('SAV', 'Savannah Hilton Head Intl', 32.127583, -81.202139, 51.0, -5.0, 'A', 'America/New_York'), #> ('SDF', 'Louisville International Airport', 38.1740858, -85.7364989, 501.0, -5.0, 'A', 'America/New_York'), #> ('SEA', 'Seattle Tacoma Intl', 47.449, -122.309306, 433.0, -8.0, 'A', 'America/Los_Angeles'), #> ('SFO', 'San Francisco Intl', 37.618972, -122.374889, 13.0, -8.0, 'A', 'America/Los_Angeles'), #> ('SJC', 'Norman Y Mineta San Jose Intl', 37.3626, -121.929022, 62.0, -8.0, 'A', 'America/Los_Angeles'), #> ('SLC', 'Salt Lake City Intl', 40.788389, -111.977772, 4227.0, -7.0, 'A', 'America/Denver'), #> ('SMF', 'Sacramento Intl', 38.695417, -121.590778, 27.0, -8.0, 'A', 'America/Los_Angeles'), #> ('SNA', 'John Wayne Arpt Orange Co', 33.675667, -117.868222, 56.0, -8.0, 'A', 'America/Los_Angeles'), #> ('SRQ', 'Sarasota Bradenton Intl', 27.395444, -82.554389, 30.0, -5.0, 'A', 'America/New_York'), #> ('STL', 'Lambert St Louis Intl', 38.748697, -90.370028, 618.0, -6.0, 'A', 'America/Chicago'), #> ('SYR', 'Syracuse Hancock Intl', 43.111187, -76.106311, 421.0, -5.0, 'A', 'America/New_York'), #> ('TPA', 'Tampa Intl', 27.975472, -82.53325, 26.0, -5.0, 'A', 'America/New_York'), #> ('TUL', 'Tulsa Intl', 36.198389, -95.888111, 677.0, -6.0, 'A', 'America/Chicago'), #> ('TYS', 'Mc Ghee Tyson', 35.810972, -83.994028, 981.0, -5.0, 'A', 'America/New_York'), #> ('XNA', 'NW Arkansas Regional', 36.2818694, -94.3068111, 1287.0, -6.0, 'A', 'America/Chicago') #> ) AS `values_table` #> #> $load$planes #> INSERT INTO `planes` (`tailnum`, `year`, `type`, `manufacturer`, `model`, `engines`, `seats`, `speed`, `engine`) #> SELECT #> CAST(`tailnum` AS TEXT) AS `tailnum`, #> CAST(`year` AS INTEGER) AS `year`, #> CAST(`type` AS TEXT) AS `type`, #> CAST(`manufacturer` AS TEXT) AS `manufacturer`, #> CAST(`model` AS TEXT) AS `model`, #> CAST(`engines` AS INTEGER) AS `engines`, #> CAST(`seats` AS INTEGER) AS `seats`, #> CAST(`speed` AS INTEGER) AS `speed`, #> CAST(`engine` AS TEXT) AS `engine` #> FROM ( #> SELECT #> NULL AS `tailnum`, #> NULL AS `year`, #> NULL AS `type`, #> NULL AS `manufacturer`, #> NULL AS `model`, #> NULL AS `engines`, #> NULL AS `seats`, #> NULL AS `speed`, #> NULL AS `engine` #> WHERE (0 = 1) #> #> UNION ALL #> #> VALUES #> ('N10156', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N104UW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N10575', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N105UW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N110UW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N11106', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11107', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11109', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11121', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11137', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11150', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11155', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11165', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11181', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11187', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11191', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11192', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11193', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11194', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N11544', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12116', 1996, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N12125', 1998, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N12126', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N12142', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N12157', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N12160', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N12195', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N12201', 2006, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N12216', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N12221', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N12225', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N12238', 1999, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N123UW', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N12540', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12552', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12564', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12567', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12569', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12921', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12922', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12924', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N12967', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13124', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N13132', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N13133', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N134EV', 2009, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N13538', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13553', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13566', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13716', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N13718', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N13750', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N13908', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13913', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13949', 1998, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13955', 1998, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13958', 1998, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13964', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13965', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13968', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13975', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13978', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13979', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13989', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13994', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13995', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N13997', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14102', 1994, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N14107', 1994, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N14116', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N14148', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N14158', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N14173', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N14177', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N14180', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N14188', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N14219', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N14542', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14543', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14568', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14570', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14629', 1965, 'Fixed wing multi engine', 'BOEING', '737-524', 2, 149, NULL, 'Turbo-fan'), #> ('N146PQ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N14704', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N14731', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N14902', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14904', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14905', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14907', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14916', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14950', 1998, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14952', 1998, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14959', 1998, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14972', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14977', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N14998', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N15572', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N15574', NULL, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N15710', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N15973', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N15980', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N15983', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N15985', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N15986', 2000, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N1602', 1999, 'Fixed wing multi engine', 'BOEING', '767-332', 2, 330, NULL, 'Turbo-fan'), #> ('N1609', 2000, 'Fixed wing multi engine', 'BOEING', '767-332', 2, 330, NULL, 'Turbo-fan'), #> ('N16170', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N16183', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N16234', 1999, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N16559', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N16571', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N16709', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N16713', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N167US', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N16918', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N16919', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N16961', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N16963', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N16976', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N169UW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N170PQ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N17104', 1994, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N17108', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N17115', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N17122', 1997, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N17146', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N17159', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N17169', 2004, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N17185', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N171US', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N17244', 1999, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N174US', NULL, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N17560', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N176UW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N17719', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N177US', NULL, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N178US', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N179JB', 2005, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N179UW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N180US', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N18119', 1997, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N18120', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N183UW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N184JB', 2005, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N18556', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N18557', NULL, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N187JB', 2005, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N187US', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A321-211', 2, 199, NULL, 'Turbo-fan'), #> ('N189UW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A321-211', 2, 199, NULL, 'Turbo-jet'), #> ('N190JB', 2005, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N19117', 1996, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N193JB', 2005, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N193UW', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A321-211', 2, 199, NULL, 'Turbo-fan'), #> ('N19554', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N197JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N197UW', 2009, 'Fixed wing multi engine', 'AIRBUS', 'A321-211', 2, 199, NULL, 'Turbo-fan'), #> ('N198JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N19966', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N201AA', 1959, 'Fixed wing single engine', 'CESSNA', '150', 1, 2, 90, 'Reciprocating'), #> ('N203FR', 2002, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N206JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N211WN', 2005, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N214FR', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N21537', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N215WN', 2005, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N216FR', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N21723', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N221WN', 2005, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N228JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N22909', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N22971', 1999, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N229JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N231JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N231WN', 2006, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N233LV', 2006, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N236JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N23708', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N23721', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N238WN', 2005, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N239JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N24103', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N24211', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N24212', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N245WN', 2006, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N246LV', 2006, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N24702', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N24715', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N24729', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N247JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N249JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N252WN', 2006, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N253WN', 2006, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N25705', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N258JB', 2006, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N259WN', 2006, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N26123', 1997, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N26141', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N26545', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N26549', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N267JB', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N27152', 2003, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N27190', 2005, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N27200', 2006, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N27213', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N27239', 1999, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N274JB', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N27724', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N27733', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N279JB', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N281JB', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N283JB', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N283WN', 2007, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N284JB', 2008, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N287WN', 2007, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N29124', 1998, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N29129', 1998, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N291WN', 2007, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N292JB', 2008, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N294WN', 2007, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N29717', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N298JB', 2009, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N29906', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N29917', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N301DQ', NULL, 'Fixed wing multi engine', 'BOEING', '737-732', 2, 149, NULL, 'Turbo-fan'), #> ('N302NB', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N303DQ', 2008, 'Fixed wing multi engine', 'BOEING', '737-732', 2, 149, NULL, 'Turbo-fan'), #> ('N30401', 2001, 'Fixed wing multi engine', 'BOEING', '737-924', 2, 191, NULL, 'Turbo-fan'), #> ('N304DQ', 2008, 'Fixed wing multi engine', 'BOEING', '737-732', 2, 149, NULL, 'Turbo-fan'), #> ('N306DQ', 2009, 'Fixed wing multi engine', 'BOEING', '737-732', 2, 149, NULL, 'Turbo-fan'), #> ('N306JB', 2009, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N307DQ', 2009, 'Fixed wing multi engine', 'BOEING', '737-732', 2, 149, NULL, 'Turbo-fan'), #> ('N308DE', NULL, 'Fixed wing multi engine', 'BOEING', '737-732', 2, 149, NULL, 'Turbo-fan'), #> ('N309DE', 2009, 'Fixed wing multi engine', 'BOEING', '737-732', 2, 149, NULL, 'Turbo-fan'), #> ('N309JB', 2009, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N309US', 1990, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N312US', 1990, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N316JB', 2009, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N316US', 1991, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N317JB', 2010, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N317NB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N318NB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N318US', 1991, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N319AA', 1985, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N320AA', 1985, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N320NB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N320US', 1991, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N321NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N322NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N323AA', 1986, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N323NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N323US', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N324AA', 1986, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N324NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N325NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N326NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N326US', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N327AA', 1986, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N327NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N327NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N328AA', 1986, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N328NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N329AA', 1987, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N329NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N330NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N33103', 1994, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N331NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N33284', 2004, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N33286', 2004, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N33289', 2004, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N33292', NULL, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N33294', 2005, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N332AA', 1987, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N332NB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N332NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N333NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-211', 2, 182, NULL, 'Turbo-jet'), #> ('N334JB', 2011, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N334NB', 2002, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N335AA', 1987, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N335NB', 2002, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N336AA', 1987, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N336NB', 2002, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N33714', 1998, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N337JB', 2011, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N337NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N338AA', 1987, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N338NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N339AA', 1988, 'Fixed wing multi engine', 'BOEING', '767-223', 2, 255, NULL, 'Turbo-fan'), #> ('N339JB', 2011, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N339NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N339NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N340NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N34131', 1998, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N341NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N341NW', 1992, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N34222', 1998, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N342NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N342NW', 1993, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N344AA', 1992, 'Fixed wing multi engine', 'GULFSTREAM AEROSPACE', 'G-IV', 2, 22, NULL, 'Turbo-fan'), #> ('N344NW', 1993, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N345NW', 1993, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N346JB', 2011, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N346NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N347NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N348NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N349NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N351AA', 1988, 'Fixed wing multi engine', 'BOEING', '767-323', 2, 330, NULL, 'Turbo-fan'), #> ('N351NW', 1997, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N35204', 2000, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N353AA', 1988, 'Fixed wing multi engine', 'BOEING', '767-323', 2, 330, NULL, 'Turbo-fan'), #> ('N353JB', 2012, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N354NW', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N355NB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N356NW', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N356SW', 1991, 'Fixed wing multi engine', 'BOEING', '737-3H4', 2, 149, NULL, 'Turbo-fan'), #> ('N358NB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N358NW', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N360NW', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N361AA', 1988, 'Fixed wing multi engine', 'BOEING', '767-323', 2, 330, NULL, 'Turbo-fan'), #> ('N361NB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N36247', 1999, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N363AA', 1988, 'Fixed wing multi engine', 'BOEING', '767-323', 2, 330, NULL, 'Turbo-fan'), #> ('N364NB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N364NW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N365NB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N366NW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N36915', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N369NB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A319-114', 2, 145, NULL, 'Turbo-fan'), #> ('N369NW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N370NW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N371DA', 1998, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N37252', 2000, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N37255', 2000, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N37263', 2001, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N37273', 2001, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N37274', 2002, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N37287', 2004, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N37293', 2005, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N37298', 2005, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N372NW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N3735D', 2000, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3736C', 2000, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N373DA', 1998, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N373NW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N3740C', 2000, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N37413', 2008, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N3742C', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N37437', 2009, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N3743H', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N37456', 2012, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N3745B', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N37462', 2012, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N37464', 2012, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N3746H', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3749D', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N374DA', 1998, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3750D', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3753', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3754A', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3755D', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3757D', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3759', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3763D', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3766', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3767', 2001, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3768', 2002, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3769L', 2002, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N376NW', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-212', 2, 182, NULL, 'Turbo-fan'), #> ('N37700', 2002, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3771K', 2002, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N3773D', 2010, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-fan'), #> ('N378DA', 1999, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N379DA', 1999, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N381DN', 1999, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N38257', 2000, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N38268', 2001, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N382DA', 1999, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N383DN', 1999, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N38451', 2012, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N384HA', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A330-243', 2, 377, NULL, 'Turbo-fan'), #> ('N385DN', 1999, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N38727', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N388DA', 2000, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N388HA', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A330-243', 2, 377, NULL, 'Turbo-fan'), #> ('N395DN', 2000, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N396DA', 2000, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N39728', 1999, 'Fixed wing multi engine', 'BOEING', '737-724', 2, 149, NULL, 'Turbo-jet'), #> ('N398DA', 2000, 'Fixed wing multi engine', 'BOEING', '737-832', 2, 189, NULL, 'Turbo-jet'), #> ('N400WN', 2001, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N401UA', 1993, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N402AS', 2012, 'Fixed wing multi engine', 'BOEING', '737-990ER', 2, 222, NULL, 'Turbo-fan'), #> ('N403AS', 2012, 'Fixed wing multi engine', 'BOEING', '737-990ER', 2, 222, NULL, 'Turbo-fan'), #> ('N404WN', 2001, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N405UA', 1993, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N410UA', 1994, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N41104', 2002, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145XR', 2, 55, NULL, 'Turbo-fan'), #> ('N41140', 2000, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N411UA', 1994, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N413UA', 1994, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N413WN', 2001, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N414UA', 1994, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N419UA', 1994, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N420UA', 1994, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N420US', 1989, 'Fixed wing multi engine', 'BOEING', '737-401', 2, 149, NULL, 'Turbo-jet'), #> ('N421UA', 1994, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N423WN', 2002, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N424UA', 1995, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N425AA', 1968, 'Fixed wing single engine', 'PIPER', 'PA-28-180', 1, 4, 107, 'Reciprocating'), #> ('N425UA', 1995, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N427UA', 1995, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N428UA', 1995, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N429UA', 1995, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N429WN', 2002, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N430UA', 1996, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N430WN', 2002, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N433AA', 1987, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N434UA', 1996, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N435UA', 1996, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N436UA', 1996, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N437AA', 1987, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N439AA', 1987, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N441UA', 1997, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N443WN', 2003, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N444UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N445WN', 2003, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N452WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N453UA', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N453WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N45440', 2009, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N454UA', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N458UA', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N463UA', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N463WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N465UA', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N466AA', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N466UA', NULL, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N467WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N469AA', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N469UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N471UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N472AA', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N472UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N473UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N47414', 2008, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N474WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N475UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N476AA', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N476UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N477AA', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N479UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N48127', 1998, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N481UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N482UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N483UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N483WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N484AA', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N486WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N488UA', 2002, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N48901', 2001, 'Fixed wing multi engine', 'EMBRAER', 'EMB-145LR', 2, 55, NULL, 'Turbo-fan'), #> ('N489UA', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N490UA', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N494WN', 2004, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N498UA', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N501AA', 1989, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N502UA', 1989, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N504JB', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N505JB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N505MJ', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N505UA', 1989, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N506JB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N508UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N509JB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N509UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N510JB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N510UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N512UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N513AS', 2008, 'Fixed wing multi engine', 'BOEING', '737-890', 2, 149, NULL, 'Turbo-fan'), #> ('N515MJ', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N517JB', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N517UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N518UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N519JB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N519LR', 2006, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N519UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N520UA', 1990, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N521JB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N523JB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N523UW', 2009, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N524JB', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N526UA', 1991, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N535UA', 1991, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N536JB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N536UA', 1991, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N537JB', 2012, 'Rotorcraft', 'ROBINSON HELICOPTER CO', 'R66', 1, 5, NULL, 'Turbo-shaft'), #> ('N541UA', 1991, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N545UA', 1991, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N547JB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N549UW', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N552AA', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N552JB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N553UW', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N554JB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N554UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N554UW', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N554WN', 2002, 'Fixed wing multi engine', 'BOEING', '737-7BX', 2, 149, NULL, 'Turbo-fan'), #> ('N555AY', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N555UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N556JB', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N556UW', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N557UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N558JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N559JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N559UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N559UW', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N560UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N560UW', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N562JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N562UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N562UW', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A321-231', 2, 379, NULL, 'Turbo-fan'), #> ('N563JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N563UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N564JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N565JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N568JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N569JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N569UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N570JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N570UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N571JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N571UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N573UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N574UA', 1992, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N576AA', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-82(MD-82)', 2, 172, NULL, 'Turbo-fan'), #> ('N57855', 2004, 'Fixed wing multi engine', 'BOEING', '757-324', 2, 275, NULL, 'Turbo-fan'), #> ('N57864', 2001, 'Fixed wing multi engine', 'BOEING', '757-33N', 2, 275, NULL, 'Turbo-jet'), #> ('N579JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N579UA', 1993, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N580JB', 2003, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N583JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N584AS', 2007, 'Fixed wing multi engine', 'BOEING', '737-890', 2, 149, NULL, 'Turbo-fan'), #> ('N585JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N586JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N587JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N588UA', 1993, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N589JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N59053', 2000, 'Fixed wing multi engine', 'BOEING', '767-424ER', 2, 292, NULL, 'Turbo-jet'), #> ('N590JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N591AA', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N591JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N592JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N593AA', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N593JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N594JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N595JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N595UA', 1998, 'Fixed wing multi engine', 'BOEING', '757-222', 2, 178, NULL, 'Turbo-jet'), #> ('N596AA', 1992, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N597JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N598AA', 1992, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N599AA', 1992, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS', 'DC-9-83(MD-83)', 2, 172, NULL, 'Turbo-fan'), #> ('N599JB', 2004, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N600LR', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N601LR', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N602LR', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N603JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N604LR', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N605JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N605LR', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N606JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N608JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N608QX', 2001, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N612JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N612QX', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N613JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N615AA', 1967, 'Fixed wing multi engine', 'BEECH', '65-A90', 2, 9, 202, 'Turbo-prop'), #> ('N615DL', 1986, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N615QX', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N618DL', 1986, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N618JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N621JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N621VA', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N622VA', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N623DL', 1987, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N623JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N624AG', 1993, 'Fixed wing multi engine', 'BOEING', '757-2Q8', 2, 178, NULL, 'Turbo-fan'), #> ('N624JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N624VA', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N625AA', 1990, 'Fixed wing multi engine', 'BOEING', '757-223', 2, 178, NULL, 'Turbo-fan'), #> ('N625JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N627JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N628AA', 1990, 'Fixed wing multi engine', 'BOEING', '757-223', 2, 178, NULL, 'Turbo-fan'), #> ('N630AA', 1990, 'Fixed wing multi engine', 'BOEING', '757-223', 2, 178, NULL, 'Turbo-fan'), #> ('N630JB', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N632JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N632VA', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N633DL', 1987, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N633JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N634JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N636JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N636VA', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N637DL', 1988, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N637JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N637VA', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N638DL', 1988, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N638JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N638VA', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N639AA', 1991, 'Fixed wing multi engine', 'BOEING', '757-223', 2, 178, NULL, 'Turbo-fan'), #> ('N639JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N640JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N640VA', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N641DL', 1988, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N641JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N641VA', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N642VA', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N643JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N644JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N645DL', 1989, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N645JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N646DL', 1989, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N646JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N647AW', 1997, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N647DL', 1989, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N648AW', 1997, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N648JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N649JB', 2006, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N650AW', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N651AW', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N651JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N651SW', 1997, 'Fixed wing multi engine', 'BOEING', '737-3H4', 2, 149, NULL, 'Turbo-fan'), #> ('N653JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N654AW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N655DL', 1990, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N655JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N656JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N657AW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N657JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N658JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N659AW', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N659JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N66056', 2001, 'Fixed wing multi engine', 'BOEING', '767-424ER', 2, 292, NULL, 'Turbo-jet'), #> ('N661JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N662DN', 1991, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N662JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N663AW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N663DN', 1991, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N663JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N665AW', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N665DN', 1991, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N665JB', 2007, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N666DN', 1991, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N667UA', 1998, 'Fixed wing multi engine', 'BOEING', '767-322', 2, 330, NULL, 'Turbo-fan'), #> ('N67134', 1999, 'Fixed wing multi engine', 'BOEING', '757-224', 2, 178, NULL, 'Turbo-jet'), #> ('N671DN', 1992, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N675AW', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N675DL', 1992, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N675UA', 2000, 'Fixed wing multi engine', 'BOEING', '767-322', 2, 330, NULL, 'Turbo-fan'), #> ('N676DL', 1992, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N677UA', 2001, 'Fixed wing multi engine', 'BOEING', '767-322', 2, 330, NULL, 'Turbo-fan'), #> ('N678DL', 1998, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N679AW', 2005, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N680DA', 1992, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N68452', 2012, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N687DL', 1998, 'Fixed wing multi engine', 'BOEING', '757-232', 2, 178, NULL, 'Turbo-fan'), #> ('N700GS', 1997, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N703JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N703TW', 1996, 'Fixed wing multi engine', 'BOEING', '757-2Q8', 2, 178, NULL, 'Turbo-fan'), #> ('N704X', 1997, 'Fixed wing multi engine', 'BOEING', '757-2Q8', 2, 178, NULL, 'Turbo-fan'), #> ('N705JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N705TW', 1997, 'Fixed wing multi engine', 'BOEING', '757-231', 2, 178, NULL, 'Turbo-fan'), #> ('N706JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N706TW', 1997, 'Fixed wing multi engine', 'BOEING', '757-2Q8', 2, 178, NULL, 'Turbo-fan'), #> ('N707SA', 1998, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N708EV', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N708JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N709EV', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N709JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N709UW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N710EV', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N710TW', 1997, 'Fixed wing multi engine', 'BOEING', '757-2Q8', 2, 178, NULL, 'Turbo-fan'), #> ('N711MQ', 1976, 'Fixed wing multi engine', 'GULFSTREAM AEROSPACE', 'G1159B', 2, 22, NULL, 'Turbo-jet'), #> ('N711UW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N712EV', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N712JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N712TW', 1997, 'Fixed wing multi engine', 'BOEING', '757-2Q8', 2, 178, NULL, 'Turbo-fan'), #> ('N713TW', 1997, 'Fixed wing multi engine', 'BOEING', '757-2Q8', 2, 178, NULL, 'Turbo-fan'), #> ('N714CB', 1998, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N715JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N715SW', 1998, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N715UW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N716EV', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N717TW', 1999, 'Fixed wing multi engine', 'BOEING', '757-231', 2, 178, NULL, 'Turbo-fan'), #> ('N718TW', 1999, 'Fixed wing multi engine', 'BOEING', '757-231', 2, 178, NULL, 'Turbo-fan'), #> ('N721TW', 1999, 'Fixed wing multi engine', 'BOEING', '757-231', 2, 178, NULL, 'Turbo-fan'), #> ('N722TW', 1999, 'Fixed wing multi engine', 'BOEING', '757-231', 2, 178, NULL, 'Turbo-fan'), #> ('N722US', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N723EV', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N723TW', 2000, 'Fixed wing multi engine', 'BOEING', '757-231', 2, 178, NULL, 'Turbo-fan'), #> ('N72405', 2001, 'Fixed wing multi engine', 'BOEING', '737-924', 2, 191, NULL, 'Turbo-fan'), #> ('N725UW', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N727TW', 1999, 'Fixed wing multi engine', 'BOEING', '757-231', 2, 178, NULL, 'Turbo-fan'), #> ('N729JB', NULL, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N730EV', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N730US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N73251', 2000, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N73256', 2000, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N73278', NULL, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N73283', 2004, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N73291', 2004, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N73406', 2001, 'Fixed wing multi engine', 'BOEING', '737-924', 2, 191, NULL, 'Turbo-fan'), #> ('N73445', 2011, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N736SA', 1999, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N737MQ', 1977, 'Fixed wing single engine', 'CESSNA', '172N', 1, 4, 105, 'Reciprocating'), #> ('N738EV', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N740UW', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N741EV', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N744EV', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N746JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N747UW', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N748EV', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N749US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N751EV', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N752EV', NULL, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N752US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N75433', 2009, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N75435', 2009, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N75436', 2009, 'Fixed wing multi engine', 'BOEING', '737-924ER', 2, 191, NULL, 'Turbo-fan'), #> ('N755EV', NULL, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N756SA', 1999, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N756US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N757LV', 1999, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N75854', 2002, 'Fixed wing multi engine', 'BOEING', '757-324', 2, 275, NULL, 'Turbo-fan'), #> ('N75858', 2004, 'Fixed wing multi engine', 'BOEING', '757-324', 2, 275, NULL, 'Turbo-fan'), #> ('N76064', 2002, 'Fixed wing multi engine', 'BOEING', '767-424ER', 2, 292, NULL, 'Turbo-jet'), #> ('N760JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N760US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N761ND', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2C10', 2, 80, NULL, 'Turbo-fan'), #> ('N76269', 2001, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N763US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N76508', 2008, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N76517', 2008, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N76519', 2009, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N76528', 2010, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N76529', 2010, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N766JB', 2008, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N767UW', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N768JB', 2009, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N768US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N769US', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N7702A', 2004, 'Fixed wing multi engine', 'BOEING', '737-7BD', 2, 149, NULL, 'Turbo-fan'), #> ('N770UW', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-112', 2, 179, NULL, 'Turbo-fan'), #> ('N77258', 2000, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N7726A', 2006, 'Fixed wing multi engine', 'BOEING', '737-7BD', 2, 149, NULL, 'Turbo-fan'), #> ('N77295', 2005, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N77296', 2005, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N772SW', 2000, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N7730A', 2006, 'Fixed wing multi engine', 'BOEING', '737-7BD', 2, 149, NULL, 'Turbo-fan'), #> ('N7735A', 2006, 'Fixed wing multi engine', 'BOEING', '737-7BD', 2, 149, NULL, 'Turbo-fan'), #> ('N773SA', 2000, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N77510', 2008, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N77518', 2008, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N77520', 2010, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N77525', 2010, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N77530', 2011, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N775JB', 2009, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N77871', 2003, 'Fixed wing multi engine', 'BOEING', '757-33N', 2, 275, NULL, 'Turbo-jet'), #> ('N779JB', 2009, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N784JB', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N78501', 2006, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N78506', 2006, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N78509', 2008, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N78524', 2010, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N789JB', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N790SW', 2000, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N793JB', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N794JB', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N796JB', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N800AY', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N801AY', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N803UA', 1997, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N804JB', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N805UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N807JB', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N807UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N809JB', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N812UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N813UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N814UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N815UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N817UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N818UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N820AS', 1997, 'Fixed wing multi engine', 'CANADAIR', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N821JB', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A320-232', 2, 200, NULL, 'Turbo-fan'), #> ('N821UA', 1998, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N823AY', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N824AY', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N824UA', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N825AS', 1997, 'Fixed wing multi engine', 'CANADAIR', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N825AY', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N826AS', 1997, 'Fixed wing multi engine', 'CANADAIR', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N826AY', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N826UA', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N827UA', 1999, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N829AS', 1998, 'Fixed wing multi engine', 'CANADAIR', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N829AY', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N830AS', 1998, 'Fixed wing multi engine', 'CANADAIR', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N830AY', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N830UA', 2000, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N8313F', 2012, 'Fixed wing multi engine', 'BOEING', '737-8H4', 2, 140, NULL, 'Turbo-fan'), #> ('N831AY', 2005, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8327A', 2012, 'Fixed wing multi engine', 'BOEING', '737-8H4', 2, 140, NULL, 'Turbo-fan'), #> ('N833AS', 1998, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N834UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N835AS', 1998, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N836AS', 1998, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N836VA', 2010, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N839VA', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N840MQ', 1974, 'Fixed wing multi engine', 'CANADAIR LTD', 'CF-5D', 4, 2, NULL, 'Turbo-jet'), #> ('N840UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N841VA', NULL, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N842VA', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N843UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N843VA', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N8444F', 2000, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N844VA', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N845UA', 2001, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N848UA', 2002, 'Fixed wing multi engine', 'AIRBUS INDUSTRIE', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N848VA', 2011, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N8506C', 2001, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N852UA', 2002, 'Fixed wing multi engine', 'AIRBUS', 'A319-131', 2, 179, NULL, 'Turbo-jet'), #> ('N8533D', 2001, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8543F', 2001, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N855VA', 2012, 'Fixed wing multi engine', 'AIRBUS', 'A320-214', 2, 182, NULL, 'Turbo-fan'), #> ('N8577D', 2001, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8598B', 2001, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8623A', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8688C', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8694A', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8747B', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N87507', 2008, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N87513', 2008, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N8751D', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N87527', 2010, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N87531', 2011, 'Fixed wing multi engine', 'BOEING', '737-824', 2, 149, NULL, 'Turbo-fan'), #> ('N8758D', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8775A', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8783E', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8797A', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8808H', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8836A', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8855A', 2003, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8907A', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8928A', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8965E', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8971A', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8974C', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N8986B', 2004, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N900PC', 1997, 'Fixed wing multi engine', 'BOEING', '757-26D', 2, 178, NULL, 'Turbo-jet'), #> ('N902XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N903XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N904DL', 1987, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N904XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N906WN', 2008, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N906XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N908DL', 1987, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N908XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N909DE', 1992, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS CORPORATION', 'MD-88', 2, 142, NULL, 'Turbo-jet'), #> ('N909EV', 2002, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2B19', 2, 55, NULL, 'Turbo-fan'), #> ('N909XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N910XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N912XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N913DE', 1993, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N913WN', 2008, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N913XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N914DL', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N914XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N915XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N916XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N917XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N918WN', 2008, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N918XJ', 2007, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N919DL', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N919XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N920DE', 1993, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N920XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N921AT', 2000, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N921DL', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N921XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N922WN', 2008, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N922XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N925XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N926DL', 1988, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N927AT', 2000, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N927XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N928AT', 2000, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N928XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N929AT', 2000, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N931XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N932XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N933XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N934DL', 1989, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N934WN', 2009, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N934XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N935WN', 2009, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N935XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N936WN', 2009, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N936XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N937DL', 1989, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N937XJ', 2008, 'Fixed wing multi engine', 'BOMBARDIER INC', 'CL-600-2D24', 2, 95, NULL, 'Turbo-fan'), #> ('N940DL', 1989, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N943AT', 1999, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N945UW', NULL, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N946WN', 2010, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N947DL', 1989, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N948AT', 1999, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N948UW', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N949DL', 1990, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N949UW', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N952DL', 1990, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N952UW', 2007, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N955WN', 2011, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N956DL', 1990, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N956UW', 2008, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N957DL', 1990, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N957UW', 2008, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N958UW', 2008, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N959UW', 2008, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N960AT', 2001, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N961UW', 2008, 'Fixed wing multi engine', 'EMBRAER', 'ERJ 190-100 IGW', 2, 20, NULL, 'Turbo-fan'), #> ('N963WN', 2011, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N966AT', 2001, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N966WN', 2011, 'Fixed wing multi engine', 'BOEING', '737-7H4', 2, 140, NULL, 'Turbo-fan'), #> ('N967DL', 1990, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N968AT', 2001, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N969AT', 2001, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N971DL', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N975AT', 2002, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N975DL', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N976DL', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N977AT', 2002, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N979DL', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N986DL', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N990AT', 2001, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N991AT', NULL, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N992AT', 2002, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N993DL', 1991, 'Fixed wing multi engine', 'MCDONNELL DOUGLAS AIRCRAFT CO', 'MD-88', 2, 142, NULL, 'Turbo-fan'), #> ('N994AT', 2002, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan'), #> ('N996AT', 2002, 'Fixed wing multi engine', 'BOEING', '717-200', 2, 100, NULL, 'Turbo-fan') #> ) AS `values_table` #> #> $load$weather #> INSERT INTO `weather` (`origin`, `year`, `month`, `day`, `hour`, `temp`, `dewp`, `humid`, `wind_dir`, `wind_speed`, `wind_gust`, `precip`, `pressure`, `visib`, `time_hour`) #> SELECT #> CAST(`origin` AS TEXT) AS `origin`, #> CAST(`year` AS INTEGER) AS `year`, #> CAST(`month` AS INTEGER) AS `month`, #> CAST(`day` AS INTEGER) AS `day`, #> CAST(`hour` AS INTEGER) AS `hour`, #> CAST(`temp` AS REAL) AS `temp`, #> CAST(`dewp` AS REAL) AS `dewp`, #> CAST(`humid` AS REAL) AS `humid`, #> CAST(`wind_dir` AS REAL) AS `wind_dir`, #> CAST(`wind_speed` AS REAL) AS `wind_speed`, #> CAST(`wind_gust` AS REAL) AS `wind_gust`, #> CAST(`precip` AS REAL) AS `precip`, #> CAST(`pressure` AS REAL) AS `pressure`, #> CAST(`visib` AS REAL) AS `visib`, #> CAST(`time_hour` AS TEXT) AS `time_hour` #> FROM ( #> SELECT #> NULL AS `origin`, #> NULL AS `year`, #> NULL AS `month`, #> NULL AS `day`, #> NULL AS `hour`, #> NULL AS `temp`, #> NULL AS `dewp`, #> NULL AS `humid`, #> NULL AS `wind_dir`, #> NULL AS `wind_speed`, #> NULL AS `wind_gust`, #> NULL AS `precip`, #> NULL AS `pressure`, #> NULL AS `visib`, #> NULL AS `time_hour` #> WHERE (0 = 1) #> #> UNION ALL #> #> VALUES #> ('EWR', 2013, 1, 10, 0, 41.0, 32.0, 70.08, 230.0, 8.05546, NULL, 0.0, 1024.6, 10.0, '2013-01-10T05:00:00Z'), #> ('EWR', 2013, 1, 10, 1, 39.02, 30.02, 69.86, 210.0, 9.20624, NULL, 0.0, 1025.9, 10.0, '2013-01-10T06:00:00Z'), #> ('EWR', 2013, 1, 10, 2, 39.02, 28.94, 66.85, 230.0, 6.90468, NULL, 0.0, 1026.9, 10.0, '2013-01-10T07:00:00Z'), #> ('EWR', 2013, 1, 10, 3, 39.92, 26.96, 59.5, 270.0, 5.7539, NULL, 0.0, 1027.5, 10.0, '2013-01-10T08:00:00Z'), #> ('EWR', 2013, 1, 10, 4, 41.0, 26.06, 54.97, 320.0, 6.90468, NULL, 0.0, 1028.2, 10.0, '2013-01-10T09:00:00Z'), #> ('EWR', 2013, 1, 10, 5, 41.0, 26.06, 54.97, 300.0, 12.65858, 20.71404, 0.0, 1029.0, 10.0, '2013-01-10T10:00:00Z'), #> ('EWR', 2013, 1, 10, 6, 39.92, 24.98, 54.81, 280.0, 6.90468, 17.2617, 0.0, 1030.0, 10.0, '2013-01-10T11:00:00Z'), #> ('EWR', 2013, 1, 10, 7, 41.0, 24.98, 52.56, 330.0, 6.90468, NULL, 0.0, 1031.4, 10.0, '2013-01-10T12:00:00Z'), #> ('EWR', 2013, 1, 10, 8, 42.98, 24.98, 48.7, 330.0, 8.05546, NULL, 0.0, 1032.2, 10.0, '2013-01-10T13:00:00Z'), #> ('EWR', 2013, 1, 10, 9, 44.96, 23.0, 41.56, 320.0, 17.2617, 26.46794, 0.0, 1032.7, 10.0, '2013-01-10T14:00:00Z'), #> ('EWR', 2013, 1, 10, 10, 44.96, 21.92, 39.72, 320.0, 11.5078, NULL, 0.0, 1032.8, 10.0, '2013-01-10T15:00:00Z'), #> ('EWR', 2013, 1, 10, 11, 46.94, 21.92, 36.85, 330.0, 13.80936, 23.0156, 0.0, 1032.0, 10.0, '2013-01-10T16:00:00Z'), #> ('EWR', 2013, 1, 10, 12, 48.92, 21.92, 34.21, 320.0, 14.96014, 20.71404, 0.0, 1031.3, 10.0, '2013-01-10T17:00:00Z'), #> ('EWR', 2013, 1, 10, 13, 50.0, 21.92, 32.86, 310.0, 12.65858, 18.41248, 0.0, 1031.5, 10.0, '2013-01-10T18:00:00Z'), #> ('EWR', 2013, 1, 10, 14, 50.0, 21.92, 32.86, 300.0, 11.5078, 19.56326, 0.0, 1031.9, 10.0, '2013-01-10T19:00:00Z'), #> ('EWR', 2013, 1, 10, 15, 48.92, 21.02, 32.93, 330.0, 10.35702, NULL, 0.0, 1032.4, 10.0, '2013-01-10T20:00:00Z'), #> ('EWR', 2013, 1, 10, 16, 46.94, 21.92, 36.85, 310.0, 8.05546, NULL, 0.0, 1032.8, 10.0, '2013-01-10T21:00:00Z'), #> ('EWR', 2013, 1, 10, 17, 46.04, 21.92, 38.12, 320.0, 8.05546, NULL, 0.0, 1033.3, 10.0, '2013-01-10T22:00:00Z'), #> ('EWR', 2013, 1, 10, 18, 44.96, 23.0, 41.56, 330.0, 6.90468, NULL, 0.0, 1033.8, 10.0, '2013-01-10T23:00:00Z'), #> ('EWR', 2013, 1, 10, 19, 44.06, 23.0, 43.02, 340.0, 4.60312, NULL, 0.0, 1033.6, 10.0, '2013-01-11T00:00:00Z'), #> ('EWR', 2013, 1, 10, 20, 44.06, 23.0, 43.02, 340.0, 6.90468, NULL, 0.0, 1034.0, 10.0, '2013-01-11T01:00:00Z'), #> ('EWR', 2013, 1, 10, 21, 41.0, 24.98, 52.56, 10.0, 8.05546, NULL, 0.0, 1033.5, 10.0, '2013-01-11T02:00:00Z'), #> ('EWR', 2013, 1, 10, 22, 39.02, 24.98, 56.77, 30.0, 8.05546, NULL, 0.0, 1034.0, 10.0, '2013-01-11T03:00:00Z'), #> ('EWR', 2013, 1, 10, 23, 39.92, 24.08, 52.79, 0.0, 0.0, NULL, 0.0, 1034.4, 10.0, '2013-01-11T04:00:00Z'), #> ('EWR', 2013, 2, 10, 0, 19.94, 6.98, 56.56, 310.0, 11.5078, NULL, 0.0, 1028.2, 10.0, '2013-02-10T05:00:00Z'), #> ('EWR', 2013, 2, 10, 1, 19.04, 6.98, 58.78, 310.0, 9.20624, NULL, 0.0, 1028.4, 10.0, '2013-02-10T06:00:00Z'), #> ('EWR', 2013, 2, 10, 2, 19.04, 6.98, 58.78, 310.0, 10.35702, NULL, 0.0, 1028.5, 10.0, '2013-02-10T07:00:00Z'), #> ('EWR', 2013, 2, 10, 3, 19.04, 6.98, 58.78, 330.0, 6.90468, NULL, 0.0, 1028.5, 10.0, '2013-02-10T08:00:00Z'), #> ('EWR', 2013, 2, 10, 4, 17.06, 8.06, 67.21, 250.0, 4.60312, NULL, 0.0, 1028.9, 10.0, '2013-02-10T09:00:00Z'), #> ('EWR', 2013, 2, 10, 5, 15.98, 8.06, 70.43, 290.0, 5.7539, NULL, 0.0, 1029.7, 10.0, '2013-02-10T10:00:00Z'), #> ('EWR', 2013, 2, 10, 6, 15.98, 6.98, 67.07, 350.0, 4.60312, NULL, 0.0, 1030.1, 10.0, '2013-02-10T11:00:00Z'), #> ('EWR', 2013, 2, 10, 7, 17.96, 8.06, 64.65, 0.0, 0.0, NULL, 0.0, 1031.0, 10.0, '2013-02-10T12:00:00Z'), #> ('EWR', 2013, 2, 10, 8, 23.0, 8.06, 52.18, 330.0, 5.7539, NULL, 0.0, 1031.8, 10.0, '2013-02-10T13:00:00Z'), #> ('EWR', 2013, 2, 10, 9, 26.06, 8.96, 47.82, 360.0, 3.45234, NULL, 0.0, 1032.2, 10.0, '2013-02-10T14:00:00Z'), #> ('EWR', 2013, 2, 10, 10, 26.96, 8.96, 46.08, 0.0, 0.0, NULL, 0.0, 1032.4, 10.0, '2013-02-10T15:00:00Z'), #> ('EWR', 2013, 2, 10, 11, 28.94, 10.04, 44.58, 200.0, 3.45234, NULL, 0.0, 1031.8, 10.0, '2013-02-10T16:00:00Z'), #> ('EWR', 2013, 2, 10, 12, 32.0, 8.96, 37.52, 0.0, 0.0, NULL, 0.0, 1030.4, 10.0, '2013-02-10T17:00:00Z'), #> ('EWR', 2013, 2, 10, 13, 33.98, 12.92, 41.33, 0.0, 0.0, NULL, 0.0, 1029.8, 10.0, '2013-02-10T18:00:00Z'), #> ('EWR', 2013, 2, 10, 14, 35.06, 14.0, 41.51, 210.0, 3.45234, NULL, 0.0, 1029.6, 10.0, '2013-02-10T19:00:00Z'), #> ('EWR', 2013, 2, 10, 15, 33.98, 10.04, 36.37, 190.0, 5.7539, NULL, 0.0, 1029.0, 10.0, '2013-02-10T20:00:00Z'), #> ('EWR', 2013, 2, 10, 16, 33.98, 10.94, 37.86, 190.0, 4.60312, NULL, 0.0, 1028.7, 10.0, '2013-02-10T21:00:00Z'), #> ('EWR', 2013, 2, 10, 17, 33.98, 15.08, 45.43, 160.0, 3.45234, NULL, 0.0, 1029.1, 10.0, '2013-02-10T22:00:00Z'), #> ('EWR', 2013, 2, 10, 18, 32.0, 17.96, 55.72, 170.0, 4.60312, NULL, 0.0, 1029.0, 10.0, '2013-02-10T23:00:00Z'), #> ('EWR', 2013, 2, 10, 19, 32.0, 19.04, 58.37, 150.0, 5.7539, NULL, 0.0, 1028.9, 10.0, '2013-02-11T00:00:00Z'), #> ('EWR', 2013, 2, 10, 20, 32.0, 19.94, 60.66, 0.0, 0.0, NULL, 0.0, 1028.5, 10.0, '2013-02-11T01:00:00Z'), #> ('EWR', 2013, 2, 10, 21, 30.92, 21.02, 66.34, 160.0, 3.45234, NULL, 0.0, 1028.2, 10.0, '2013-02-11T02:00:00Z'), #> ('EWR', 2013, 2, 10, 22, 30.92, 21.02, 66.34, 180.0, 4.60312, NULL, 0.0, 1027.4, 10.0, '2013-02-11T03:00:00Z'), #> ('EWR', 2013, 2, 10, 23, 32.0, 21.92, 65.97, 170.0, 3.45234, NULL, 0.0, 1027.3, 10.0, '2013-02-11T04:00:00Z'), #> ('JFK', 2013, 1, 10, 0, 44.06, 30.92, 59.64, 260.0, 14.96014, NULL, 0.0, 1024.6, 10.0, '2013-01-10T05:00:00Z'), #> ('JFK', 2013, 1, 10, 1, 42.08, 30.02, 62.04, 260.0, 10.35702, NULL, 0.0, 1025.8, 10.0, '2013-01-10T06:00:00Z'), #> ('JFK', 2013, 1, 10, 2, 42.08, 28.94, 59.36, 260.0, 8.05546, NULL, 0.0, 1026.8, 10.0, '2013-01-10T07:00:00Z'), #> ('JFK', 2013, 1, 10, 3, 42.98, 26.06, 50.94, 280.0, 11.5078, NULL, 0.0, 1027.5, 10.0, '2013-01-10T08:00:00Z'), #> ('JFK', 2013, 1, 10, 4, 41.0, 26.06, 54.97, 300.0, 14.96014, 25.31716, 0.0, 1028.1, 10.0, '2013-01-10T09:00:00Z'), #> ('JFK', 2013, 1, 10, 5, 42.98, 23.0, 44.83, 300.0, 12.65858, 23.0156, 0.0, 1028.9, 10.0, '2013-01-10T10:00:00Z'), #> ('JFK', 2013, 1, 10, 6, 41.0, 23.0, 48.39, 300.0, 10.35702, 16.11092, 0.0, 1029.8, 10.0, '2013-01-10T11:00:00Z'), #> ('JFK', 2013, 1, 10, 7, 42.08, 23.0, 46.41, 310.0, 16.11092, 23.0156, 0.0, 1031.3, 10.0, '2013-01-10T12:00:00Z'), #> ('JFK', 2013, 1, 10, 8, 44.06, 23.0, 43.02, 320.0, 14.96014, 26.46794, 0.0, 1032.2, 10.0, '2013-01-10T13:00:00Z'), #> ('JFK', 2013, 1, 10, 9, 44.96, 23.0, 41.56, 330.0, 21.86482, 28.7695, 0.0, 1032.8, 10.0, '2013-01-10T14:00:00Z'), #> ('JFK', 2013, 1, 10, 10, 46.04, 21.92, 38.12, 330.0, 21.86482, NULL, 0.0, 1032.4, 10.0, '2013-01-10T15:00:00Z'), #> ('JFK', 2013, 1, 10, 11, 46.94, 21.92, 36.85, 320.0, 16.11092, NULL, 0.0, 1031.4, 10.0, '2013-01-10T16:00:00Z'), #> ('JFK', 2013, 1, 10, 12, 48.02, 19.94, 32.53, 310.0, 14.96014, 23.0156, 0.0, 1031.3, 10.0, '2013-01-10T17:00:00Z'), #> ('JFK', 2013, 1, 10, 13, 48.92, 19.94, 31.45, 310.0, 14.96014, NULL, 0.0, 1031.7, 10.0, '2013-01-10T18:00:00Z'), #> ('JFK', 2013, 1, 10, 14, 48.02, 19.94, 32.53, 300.0, 11.5078, NULL, 0.0, 1032.0, 10.0, '2013-01-10T19:00:00Z'), #> ('JFK', 2013, 1, 10, 15, 48.02, 19.94, 32.53, 320.0, 12.65858, NULL, 0.0, 1032.5, 10.0, '2013-01-10T20:00:00Z'), #> ('JFK', 2013, 1, 10, 16, 44.96, 19.94, 36.52, 320.0, 12.65858, NULL, 0.0, 1033.0, 10.0, '2013-01-10T21:00:00Z'), #> ('JFK', 2013, 1, 10, 17, 44.06, 19.94, 37.79, 320.0, 6.90468, NULL, 0.0, 1033.2, 10.0, '2013-01-10T22:00:00Z'), #> ('JFK', 2013, 1, 10, 18, 44.06, 21.02, 39.57, 310.0, 6.90468, NULL, 0.0, 1033.8, 10.0, '2013-01-10T23:00:00Z'), #> ('JFK', 2013, 1, 10, 19, 42.08, 21.02, 42.69, 320.0, 5.7539, NULL, 0.0, 1034.2, 10.0, '2013-01-11T00:00:00Z'), #> ('JFK', 2013, 1, 10, 20, 41.0, 21.92, 46.23, 350.0, 6.90468, NULL, 0.0, 1034.0, 10.0, '2013-01-11T01:00:00Z'), #> ('JFK', 2013, 1, 10, 21, 39.92, 23.0, 50.46, 30.0, 5.7539, NULL, 0.0, 1034.2, 10.0, '2013-01-11T02:00:00Z'), #> ('JFK', 2013, 1, 10, 22, 39.02, 21.92, 49.93, 50.0, 5.7539, NULL, 0.0, 1034.5, 10.0, '2013-01-11T03:00:00Z'), #> ('JFK', 2013, 1, 10, 23, 39.02, 21.92, 49.93, 30.0, 4.60312, NULL, 0.0, 1034.6, 10.0, '2013-01-11T04:00:00Z'), #> ('JFK', 2013, 2, 10, 0, 21.02, 5.0, 49.37, 320.0, 11.5078, NULL, 0.0, 1027.7, 10.0, '2013-02-10T05:00:00Z'), #> ('JFK', 2013, 2, 10, 1, 19.04, 5.0, 53.71, 320.0, 6.90468, NULL, 0.0, 1028.3, 10.0, '2013-02-10T06:00:00Z'), #> ('JFK', 2013, 2, 10, 2, 19.04, 5.0, 53.71, 320.0, 9.20624, NULL, 0.0, 1028.8, 10.0, '2013-02-10T07:00:00Z'), #> ('JFK', 2013, 2, 10, 3, 19.04, 5.0, 53.71, 330.0, 11.5078, NULL, 0.0, 1028.7, 10.0, '2013-02-10T08:00:00Z'), #> ('JFK', 2013, 2, 10, 4, 17.06, 5.0, 58.49, 330.0, 9.20624, NULL, 0.0, 1029.0, 10.0, '2013-02-10T09:00:00Z'), #> ('JFK', 2013, 2, 10, 5, 17.96, 5.0, 56.26, 310.0, 8.05546, NULL, 0.0, 1029.9, 10.0, '2013-02-10T10:00:00Z'), #> ('JFK', 2013, 2, 10, 6, 17.06, 5.0, 58.49, 330.0, 5.7539, NULL, 0.0, 1030.5, 10.0, '2013-02-10T11:00:00Z'), #> ('JFK', 2013, 2, 10, 7, 19.04, 5.0, 53.71, 340.0, 9.20624, NULL, 0.0, 1030.9, 10.0, '2013-02-10T12:00:00Z'), #> ('JFK', 2013, 2, 10, 8, 21.02, 6.08, 51.86, 310.0, 8.05546, NULL, 0.0, 1032.1, 10.0, '2013-02-10T13:00:00Z'), #> ('JFK', 2013, 2, 10, 9, 24.98, 6.98, 45.74, 330.0, 6.90468, NULL, 0.0, 1032.5, 10.0, '2013-02-10T14:00:00Z'), #> ('JFK', 2013, 2, 10, 10, 26.96, 8.06, 44.25, 220.0, 3.45234, NULL, 0.0, 1032.9, 10.0, '2013-02-10T15:00:00Z'), #> ('JFK', 2013, 2, 10, 11, 30.02, 6.08, 35.68, 0.0, 0.0, NULL, 0.0, 1032.1, 10.0, '2013-02-10T16:00:00Z'), #> ('JFK', 2013, 2, 10, 12, 33.08, 6.98, 32.85, 0.0, 0.0, NULL, 0.0, 1030.9, 10.0, '2013-02-10T17:00:00Z'), #> ('JFK', 2013, 2, 10, 13, 30.02, 10.04, 42.66, 0.0, 0.0, NULL, 0.0, 1030.1, 10.0, '2013-02-10T18:00:00Z'), #> ('JFK', 2013, 2, 10, 14, 30.92, 14.0, 49.01, 220.0, 3.45234, NULL, 0.0, 1030.4, 10.0, '2013-02-10T19:00:00Z'), #> ('JFK', 2013, 2, 10, 15, 30.02, 19.04, 63.24, 200.0, 6.90468, NULL, 0.0, 1029.7, 10.0, '2013-02-10T20:00:00Z'), #> ('JFK', 2013, 2, 10, 16, 28.94, 19.04, 66.09, 190.0, 4.60312, NULL, 0.0, 1029.2, 10.0, '2013-02-10T21:00:00Z'), #> ('JFK', 2013, 2, 10, 17, 30.02, 17.06, 58.08, 190.0, 4.60312, NULL, 0.0, 1029.5, 10.0, '2013-02-10T22:00:00Z'), #> ('JFK', 2013, 2, 10, 18, 28.04, 15.98, 60.1, 180.0, 3.45234, NULL, 0.0, 1029.5, 10.0, '2013-02-10T23:00:00Z'), #> ('JFK', 2013, 2, 10, 19, 28.94, 17.96, 63.1, 200.0, 3.45234, NULL, 0.0, 1029.6, 10.0, '2013-02-11T00:00:00Z'), #> ('JFK', 2013, 2, 10, 20, 30.02, 21.02, 68.81, 0.0, 0.0, NULL, 0.0, 1029.1, 10.0, '2013-02-11T01:00:00Z'), #> ('JFK', 2013, 2, 10, 21, 30.92, 24.98, 78.35, 200.0, 8.05546, NULL, 0.0, 1028.9, 10.0, '2013-02-11T02:00:00Z'), #> ('JFK', 2013, 2, 10, 22, 33.08, 28.04, 81.5, 200.0, 6.90468, NULL, 0.0, 1028.1, 10.0, '2013-02-11T03:00:00Z'), #> ('JFK', 2013, 2, 10, 23, 33.98, 28.94, 81.57, 200.0, 8.05546, NULL, 0.0, 1027.8, 10.0, '2013-02-11T04:00:00Z'), #> ('LGA', 2013, 1, 10, 0, 46.94, 30.02, 51.55, 260.0, 13.80936, 24.16638, 0.0, 1024.1, 10.0, '2013-01-10T05:00:00Z'), #> ('LGA', 2013, 1, 10, 1, 46.04, 28.04, 49.19, 280.0, 13.80936, NULL, 0.0, 1025.2, 10.0, '2013-01-10T06:00:00Z'), #> ('LGA', 2013, 1, 10, 2, 46.04, 24.98, 43.34, 290.0, 16.11092, 28.7695, 0.0, 1026.1, 10.0, '2013-01-10T07:00:00Z'), #> ('LGA', 2013, 1, 10, 3, 44.06, 26.06, 48.87, 320.0, 10.35702, NULL, 0.0, 1027.1, 10.0, '2013-01-10T08:00:00Z'), #> ('LGA', 2013, 1, 10, 4, 44.06, 24.98, 46.73, 310.0, 19.56326, 25.31716, 0.0, 1027.6, 10.0, '2013-01-10T09:00:00Z'), #> ('LGA', 2013, 1, 10, 5, 42.98, 24.08, 46.91, 330.0, 12.65858, NULL, 0.0, 1029.0, 10.0, '2013-01-10T10:00:00Z'), #> ('LGA', 2013, 1, 10, 6, 42.08, 24.08, 48.56, 310.0, 14.96014, NULL, 0.0, 1029.6, 10.0, '2013-01-10T11:00:00Z'), #> ('LGA', 2013, 1, 10, 7, 42.08, 24.98, 50.42, 310.0, 14.96014, NULL, 0.0, 1031.1, 10.0, '2013-01-10T12:00:00Z'), #> ('LGA', 2013, 1, 10, 8, 42.98, 24.98, 48.7, 320.0, 9.20624, 20.71404, 0.0, 1032.0, 10.0, '2013-01-10T13:00:00Z'), #> ('LGA', 2013, 1, 10, 9, 44.06, 24.98, 46.73, 320.0, 13.80936, NULL, 0.0, 1032.6, 10.0, '2013-01-10T14:00:00Z'), #> ('LGA', 2013, 1, 10, 10, 44.06, 24.08, 45.01, 320.0, 16.11092, NULL, 0.0, 1032.1, 10.0, '2013-01-10T15:00:00Z'), #> ('LGA', 2013, 1, 10, 11, 44.96, 21.92, 39.72, 340.0, 16.11092, 23.0156, 0.0, 1031.2, 10.0, '2013-01-10T16:00:00Z'), #> ('LGA', 2013, 1, 10, 12, 46.04, 21.92, 38.12, 320.0, 16.11092, NULL, 0.0, 1030.7, 10.0, '2013-01-10T17:00:00Z'), #> ('LGA', 2013, 1, 10, 13, 46.94, 21.02, 35.47, 340.0, 16.11092, NULL, 0.0, 1031.3, 10.0, '2013-01-10T18:00:00Z'), #> ('LGA', 2013, 1, 10, 14, 48.02, 21.92, 35.38, 300.0, 11.5078, NULL, 0.0, 1031.6, 10.0, '2013-01-10T19:00:00Z'), #> ('LGA', 2013, 1, 10, 15, 46.94, 23.0, 38.56, 320.0, 11.5078, NULL, 0.0, 1032.1, 10.0, '2013-01-10T20:00:00Z'), #> ('LGA', 2013, 1, 10, 16, 46.04, 23.0, 39.9, 330.0, 10.35702, NULL, 0.0, 1032.5, 10.0, '2013-01-10T21:00:00Z'), #> ('LGA', 2013, 1, 10, 17, 44.96, 24.98, 45.15, 320.0, 9.20624, NULL, 0.0, 1032.7, 10.0, '2013-01-10T22:00:00Z'), #> ('LGA', 2013, 1, 10, 18, 44.96, 24.98, 45.15, 310.0, 8.05546, NULL, 0.0, 1033.5, 10.0, '2013-01-10T23:00:00Z'), #> ('LGA', 2013, 1, 10, 19, 44.06, 24.98, 46.73, 320.0, 8.05546, NULL, 0.0, 1033.7, 10.0, '2013-01-11T00:00:00Z'), #> ('LGA', 2013, 1, 10, 20, 44.06, 24.08, 45.01, 360.0, 6.90468, NULL, 0.0, 1033.8, 10.0, '2013-01-11T01:00:00Z'), #> ('LGA', 2013, 1, 10, 21, 42.08, 24.08, 48.56, 50.0, 5.7539, NULL, 0.0, 1034.1, 10.0, '2013-01-11T02:00:00Z'), #> ('LGA', 2013, 1, 10, 22, 39.92, 24.98, 54.81, 70.0, 3.45234, NULL, 0.0, 1033.9, 10.0, '2013-01-11T03:00:00Z'), #> ('LGA', 2013, 1, 10, 23, 39.92, 24.98, 54.81, 60.0, 4.60312, NULL, 0.0, 1034.4, 10.0, '2013-01-11T04:00:00Z'), #> ('LGA', 2013, 2, 10, 0, 23.0, 6.98, 49.69, 320.0, 14.96014, NULL, 0.0, 1027.5, 10.0, '2013-02-10T05:00:00Z'), #> ('LGA', 2013, 2, 10, 1, 21.92, 6.08, 49.92, 320.0, 13.80936, 19.56326, 0.0, 1028.0, 10.0, '2013-02-10T06:00:00Z'), #> ('LGA', 2013, 2, 10, 2, 21.02, 6.98, 54.03, 330.0, 12.65858, 19.56326, 0.0, 1028.4, 10.0, '2013-02-10T07:00:00Z'), #> ('LGA', 2013, 2, 10, 3, 21.02, 6.98, 54.03, 340.0, 8.05546, NULL, 0.0, 1028.3, 10.0, '2013-02-10T08:00:00Z'), #> ('LGA', 2013, 2, 10, 4, 19.94, 6.08, 54.3, 340.0, 6.90468, NULL, 0.0, 1028.6, 10.0, '2013-02-10T09:00:00Z'), #> ('LGA', 2013, 2, 10, 5, 19.94, 6.98, 56.56, 300.0, 10.35702, NULL, 0.0, 1029.5, 10.0, '2013-02-10T10:00:00Z'), #> ('LGA', 2013, 2, 10, 6, 19.94, 6.98, 56.56, 330.0, 6.90468, NULL, 0.0, 1030.2, 10.0, '2013-02-10T11:00:00Z'), #> ('LGA', 2013, 2, 10, 7, 19.94, 6.98, 56.56, 20.0, 4.60312, NULL, 0.0, 1030.7, 10.0, '2013-02-10T12:00:00Z'), #> ('LGA', 2013, 2, 10, 8, 23.0, 6.08, 47.7, 340.0, 8.05546, NULL, 0.0, 1031.6, 10.0, '2013-02-10T13:00:00Z'), #> ('LGA', 2013, 2, 10, 9, 24.08, 8.06, 49.87, 300.0, 6.90468, NULL, 0.0, 1032.1, 10.0, '2013-02-10T14:00:00Z'), #> ('LGA', 2013, 2, 10, 10, 26.06, 8.06, 45.93, 320.0, 6.90468, NULL, 0.0, 1032.3, 10.0, '2013-02-10T15:00:00Z'), #> ('LGA', 2013, 2, 10, 11, 28.94, 8.06, 40.79, 340.0, 3.45234, NULL, 0.0, 1031.6, 10.0, '2013-02-10T16:00:00Z'), #> ('LGA', 2013, 2, 10, 12, 30.92, 8.96, 39.19, 0.0, 0.0, NULL, 0.0, 1030.4, 10.0, '2013-02-10T17:00:00Z'), #> ('LGA', 2013, 2, 10, 13, 33.08, 8.96, 35.92, 0.0, 0.0, NULL, 0.0, 1029.7, 10.0, '2013-02-10T18:00:00Z'), #> ('LGA', 2013, 2, 10, 14, 35.96, 10.94, 34.99, 0.0, 0.0, NULL, 0.0, 1029.5, 10.0, '2013-02-10T19:00:00Z'), #> ('LGA', 2013, 2, 10, 15, 35.96, 12.92, 38.2, 0.0, 0.0, NULL, 0.0, 1028.8, 10.0, '2013-02-10T20:00:00Z'), #> ('LGA', 2013, 2, 10, 16, 35.06, 14.0, 41.51, 180.0, 5.7539, NULL, 0.0, 1028.5, 10.0, '2013-02-10T21:00:00Z'), #> ('LGA', 2013, 2, 10, 17, 33.98, 15.08, 45.43, 190.0, 8.05546, NULL, 0.0, 1028.9, 10.0, '2013-02-10T22:00:00Z'), #> ('LGA', 2013, 2, 10, 18, 32.0, 8.96, 37.52, 180.0, 5.7539, NULL, 0.0, 1028.9, 10.0, '2013-02-10T23:00:00Z'), #> ('LGA', 2013, 2, 10, 19, 32.0, 14.0, 46.92, 200.0, 6.90468, NULL, 0.0, 1029.1, 10.0, '2013-02-11T00:00:00Z'), #> ('LGA', 2013, 2, 10, 20, 33.08, 21.02, 60.81, 180.0, 5.7539, NULL, 0.0, 1028.6, 10.0, '2013-02-11T01:00:00Z'), #> ('LGA', 2013, 2, 10, 21, 33.08, 24.08, 69.17, 180.0, 8.05546, NULL, 0.0, 1028.1, 10.0, '2013-02-11T02:00:00Z'), #> ('LGA', 2013, 2, 10, 22, 33.08, 24.08, 69.17, 180.0, 8.05546, NULL, 0.0, 1027.4, 10.0, '2013-02-11T03:00:00Z'), #> ('LGA', 2013, 2, 10, 23, 33.98, 23.0, 63.77, 190.0, 8.05546, NULL, 0.0, 1027.2, 10.0, '2013-02-11T04:00:00Z') #> ) AS `values_table` #> #> $load$flights #> INSERT INTO `flights` (`year`, `month`, `day`, `dep_time`, `sched_dep_time`, `dep_delay`, `arr_time`, `sched_arr_time`, `arr_delay`, `carrier`, `flight`, `tailnum`, `origin`, `dest`, `air_time`, `distance`, `hour`, `minute`, `time_hour`) #> SELECT #> CAST(`year` AS INTEGER) AS `year`, #> CAST(`month` AS INTEGER) AS `month`, #> CAST(`day` AS INTEGER) AS `day`, #> CAST(`dep_time` AS INTEGER) AS `dep_time`, #> CAST(`sched_dep_time` AS INTEGER) AS `sched_dep_time`, #> CAST(`dep_delay` AS REAL) AS `dep_delay`, #> CAST(`arr_time` AS INTEGER) AS `arr_time`, #> CAST(`sched_arr_time` AS INTEGER) AS `sched_arr_time`, #> CAST(`arr_delay` AS REAL) AS `arr_delay`, #> CAST(`carrier` AS TEXT) AS `carrier`, #> CAST(`flight` AS INTEGER) AS `flight`, #> CAST(`tailnum` AS TEXT) AS `tailnum`, #> CAST(`origin` AS TEXT) AS `origin`, #> CAST(`dest` AS TEXT) AS `dest`, #> CAST(`air_time` AS REAL) AS `air_time`, #> CAST(`distance` AS REAL) AS `distance`, #> CAST(`hour` AS REAL) AS `hour`, #> CAST(`minute` AS REAL) AS `minute`, #> CAST(`time_hour` AS TEXT) AS `time_hour` #> FROM ( #> SELECT #> NULL AS `year`, #> NULL AS `month`, #> NULL AS `day`, #> NULL AS `dep_time`, #> NULL AS `sched_dep_time`, #> NULL AS `dep_delay`, #> NULL AS `arr_time`, #> NULL AS `sched_arr_time`, #> NULL AS `arr_delay`, #> NULL AS `carrier`, #> NULL AS `flight`, #> NULL AS `tailnum`, #> NULL AS `origin`, #> NULL AS `dest`, #> NULL AS `air_time`, #> NULL AS `distance`, #> NULL AS `hour`, #> NULL AS `minute`, #> NULL AS `time_hour` #> WHERE (0 = 1) #> #> UNION ALL #> #> VALUES #> (2013, 1, 10, 3, 2359, 4.0, 426, 437, -11.0, 'B6', 727, 'N571JB', 'JFK', 'BQN', 183.0, 1576.0, 23.0, 59.0, '2013-01-11T04:00:00Z'), #> (2013, 1, 10, 16, 2359, 17.0, 447, 444, 3.0, 'B6', 739, 'N564JB', 'JFK', 'PSE', 191.0, 1617.0, 23.0, 59.0, '2013-01-11T04:00:00Z'), #> (2013, 1, 10, 450, 500, -10.0, 634, 648, -14.0, 'US', 1117, 'N171US', 'EWR', 'CLT', 78.0, 529.0, 5.0, 0.0, '2013-01-10T10:00:00Z'), #> (2013, 1, 10, 520, 525, -5.0, 813, 820, -7.0, 'UA', 1018, 'N35204', 'EWR', 'IAH', 215.0, 1400.0, 5.0, 25.0, '2013-01-10T10:00:00Z'), #> (2013, 1, 10, 530, 530, 0.0, 824, 829, -5.0, 'UA', 404, 'N815UA', 'LGA', 'IAH', 210.0, 1416.0, 5.0, 30.0, '2013-01-10T10:00:00Z'), #> (2013, 1, 10, 531, 540, -9.0, 832, 850, -18.0, 'AA', 1141, 'N5EAAA', 'JFK', 'MIA', 149.0, 1089.0, 5.0, 40.0, '2013-01-10T10:00:00Z'), #> (2013, 1, 10, 535, 540, -5.0, 1015, 1017, -2.0, 'B6', 725, 'N784JB', 'JFK', 'BQN', 191.0, 1576.0, 5.0, 40.0, '2013-01-10T10:00:00Z'), #> (2013, 1, 10, 546, 600, -14.0, 645, 709, -24.0, 'B6', 380, 'N337JB', 'EWR', 'BOS', 39.0, 200.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 549, 600, -11.0, 652, 724, -32.0, 'EV', 6055, 'N19554', 'LGA', 'IAD', 48.0, 229.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 550, 600, -10.0, 649, 703, -14.0, 'US', 2114, 'N740UW', 'LGA', 'BOS', 36.0, 184.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 553, 600, -7.0, 711, 715, -4.0, 'EV', 5716, 'N909EV', 'JFK', 'IAD', 51.0, 228.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 553, 600, -7.0, 837, 910, -33.0, 'AA', 707, 'N3FRAA', 'LGA', 'DFW', 201.0, 1389.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 553, 600, -7.0, 834, 859, -25.0, 'B6', 507, 'N746JB', 'EWR', 'FLL', 144.0, 1065.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 553, 600, -7.0, 733, 759, -26.0, 'DL', 731, 'N349NB', 'LGA', 'DTW', 85.0, 502.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 555, 600, -5.0, 733, 745, -12.0, 'AA', 301, 'N3APAA', 'LGA', 'ORD', 126.0, 733.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 555, 605, -10.0, 746, 805, -19.0, 'MQ', 4401, 'N725MQ', 'LGA', 'DTW', 94.0, 502.0, 6.0, 5.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 555, 600, -5.0, 701, 659, 2.0, 'US', 2161, 'N756US', 'LGA', 'DCA', 42.0, 214.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 556, 600, -4.0, 903, 904, -1.0, 'B6', 371, 'N547JB', 'LGA', 'FLL', 147.0, 1076.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 556, 600, -4.0, 716, 730, -14.0, 'WN', 3223, 'N8327A', 'LGA', 'MDW', 120.0, 725.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 556, 600, -4.0, 823, 815, 8.0, 'FL', 345, 'N968AT', 'LGA', 'ATL', 121.0, 762.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 556, 600, -4.0, 818, 825, -7.0, 'MQ', 4650, 'N532MQ', 'LGA', 'ATL', 120.0, 762.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 557, 600, -3.0, 855, 912, -17.0, 'B6', 135, 'N564JB', 'JFK', 'RSW', 160.0, 1074.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 557, 600, -3.0, 933, 925, 8.0, 'UA', 303, 'N518UA', 'JFK', 'SFO', 371.0, 2586.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 558, 601, -3.0, 741, 725, 16.0, 'EV', 4708, 'N14902', 'EWR', 'MKE', 134.0, 725.0, 6.0, 1.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 558, 600, -2.0, 759, 801, -2.0, 'EV', 4911, 'N741EV', 'EWR', 'DTW', 99.0, 488.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 558, 600, -2.0, 844, 906, -22.0, 'B6', 125, 'N612JB', 'JFK', 'FLL', 144.0, 1069.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 559, 600, -1.0, 721, 716, 5.0, 'EV', 4201, 'N12195', 'EWR', 'IAD', 49.0, 212.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 559, 600, -1.0, 821, 837, -16.0, 'DL', 461, 'N663DN', 'LGA', 'ATL', 116.0, 762.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 559, 600, -1.0, 653, 658, -5.0, 'US', 1833, 'N959UW', 'JFK', 'PHL', 27.0, 94.0, 6.0, 0.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 600, 608, -8.0, 734, 755, -21.0, 'UA', 963, 'N830UA', 'EWR', 'CLE', 71.0, 404.0, 6.0, 8.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 601, 610, -9.0, 808, 818, -10.0, 'EV', 4941, 'N723EV', 'EWR', 'MSP', 169.0, 1008.0, 6.0, 10.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 603, 610, -7.0, 808, 817, -9.0, 'DL', 1919, 'N342NW', 'LGA', 'MSP', 155.0, 1020.0, 6.0, 10.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 603, 610, -7.0, 726, 735, -9.0, 'WN', 3839, 'N215WN', 'EWR', 'MDW', 121.0, 711.0, 6.0, 10.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 603, 608, -5.0, 711, 725, -14.0, 'UA', 370, 'N812UA', 'EWR', 'BOS', 39.0, 200.0, 6.0, 8.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 604, 610, -6.0, 851, 910, -19.0, 'AA', 1895, 'N5EGAA', 'EWR', 'MIA', 145.0, 1085.0, 6.0, 10.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 604, 610, -6.0, 858, 915, -17.0, 'AA', 1837, 'N3CDAA', 'LGA', 'MIA', 147.0, 1096.0, 6.0, 10.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 606, 615, -9.0, 740, 750, -10.0, 'MQ', 4518, 'N846MQ', 'LGA', 'RDU', 65.0, 431.0, 6.0, 15.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 607, 601, 6.0, 932, 918, 14.0, 'UA', 1030, 'N14107', 'JFK', 'LAX', 357.0, 2475.0, 6.0, 1.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 608, 607, 1.0, 811, 819, -8.0, 'EV', 4559, 'N16571', 'EWR', 'CVG', 99.0, 569.0, 6.0, 7.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 610, 610, 0.0, 844, 902, -18.0, 'B6', 145, 'N659JB', 'JFK', 'PBI', 138.0, 1028.0, 6.0, 10.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 610, 610, 0.0, 1028, 1051, -23.0, 'B6', 709, 'N775JB', 'JFK', 'SJU', 182.0, 1598.0, 6.0, 10.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 610, 615, -5.0, 800, 820, -20.0, 'US', 1791, 'N768US', 'JFK', 'CLT', 89.0, 541.0, 6.0, 15.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 613, 615, -2.0, 840, 855, -15.0, '9E', 3856, 'N170PQ', 'JFK', 'ATL', 122.0, 760.0, 6.0, 15.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 615, 615, 0.0, 846, 842, 4.0, 'DL', 575, 'N341NB', 'EWR', 'ATL', 119.0, 746.0, 6.0, 15.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 618, 625, -7.0, 726, 744, -18.0, 'EV', 4533, 'N12142', 'EWR', 'BUF', 53.0, 282.0, 6.0, 25.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 619, 630, -11.0, 814, 830, -16.0, 'MQ', 4576, 'N513MQ', 'LGA', 'CLT', 92.0, 544.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 620, 630, -10.0, 837, 859, -22.0, 'DL', 2006, 'N302NB', 'LGA', 'MSY', 175.0, 1183.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 620, 625, -5.0, 708, 730, -22.0, 'WN', 3127, 'N906WN', 'EWR', 'BWI', 35.0, 169.0, 6.0, 25.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 620, 630, -10.0, 855, 831, 24.0, 'US', 1125, 'N110UW', 'EWR', 'CLT', 84.0, 529.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 621, 630, -9.0, 902, 927, -25.0, 'B6', 71, 'N644JB', 'JFK', 'TPA', 142.0, 1005.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 621, 630, -9.0, 823, 830, -7.0, 'MQ', 4599, 'N501MQ', 'LGA', 'MSP', 165.0, 1020.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 621, 625, -4.0, 950, 934, 16.0, 'UA', 1663, 'N87527', 'LGA', 'IAH', 242.0, 1416.0, 6.0, 25.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 624, 630, -6.0, 840, 847, -7.0, 'EV', 4419, 'N13965', 'EWR', 'IND', 112.0, 645.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 624, 635, -11.0, 920, 934, -14.0, 'B6', 983, 'N645JB', 'LGA', 'TPA', 147.0, 1010.0, 6.0, 35.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 625, 630, -5.0, 753, 810, -17.0, 'AA', 303, 'N3EUAA', 'LGA', 'ORD', 121.0, 733.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 625, 630, -5.0, 818, 843, -25.0, 'US', 1433, 'N193UW', 'LGA', 'CLT', 89.0, 544.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 626, 630, -4.0, 802, 800, 2.0, 'EV', 4560, 'N10156', 'EWR', 'PIT', 60.0, 319.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 626, 630, -4.0, 900, 905, -5.0, 'WN', 135, 'N233LV', 'LGA', 'DEN', 249.0, 1620.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 627, 630, -3.0, 836, 845, -9.0, 'EV', 4471, 'N17108', 'EWR', 'CLT', 96.0, 529.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 627, 635, -8.0, 951, 1019, -28.0, 'UA', 849, 'N481UA', 'EWR', 'PHX', 307.0, 2133.0, 6.0, 35.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 628, 631, -3.0, 727, 741, -14.0, 'B6', 1002, 'N804JB', 'JFK', 'BOS', 38.0, 187.0, 6.0, 31.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 628, 635, -7.0, 920, 939, -19.0, 'UA', 1627, 'N17719', 'EWR', 'PBI', 148.0, 1023.0, 6.0, 35.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 629, 636, -7.0, 748, 808, -20.0, 'EV', 3839, 'N11194', 'EWR', 'BNA', 114.0, 748.0, 6.0, 36.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 629, 634, -5.0, 810, 822, -12.0, 'EV', 4334, 'N11150', 'EWR', 'CMH', 80.0, 463.0, 6.0, 34.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 632, 633, -1.0, 800, 813, -13.0, 'EV', 4424, 'N12569', 'EWR', 'RDU', 63.0, 416.0, 6.0, 33.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 632, 639, -7.0, 943, 957, -14.0, 'UA', 910, 'N848UA', 'EWR', 'AUS', 233.0, 1504.0, 6.0, 39.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 632, 635, -3.0, 1008, 1002, 6.0, 'UA', 421, 'N471UA', 'EWR', 'SFO', 374.0, 2565.0, 6.0, 35.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 633, 630, 3.0, 1142, 1140, 2.0, 'AA', 413, 'N3GBAA', 'JFK', 'SJU', 193.0, 1598.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 633, 625, 8.0, 907, 916, -9.0, 'B6', 79, 'N634JB', 'JFK', 'MCO', 132.0, 944.0, 6.0, 25.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 636, 636, 0.0, 927, 945, -18.0, 'UA', 1701, 'N77296', 'EWR', 'FLL', 148.0, 1065.0, 6.0, 36.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 640, 640, 0.0, 856, 900, -4.0, 'EV', 4122, 'N12552', 'EWR', 'SDF', 111.0, 642.0, 6.0, 40.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 641, 645, -4.0, 859, 920, -21.0, 'UA', 338, 'N414UA', 'LGA', 'DEN', 230.0, 1620.0, 6.0, 45.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 642, 645, -3.0, 759, 757, 2.0, 'EV', 4241, 'N13949', 'EWR', 'DCA', 49.0, 199.0, 6.0, 45.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 642, 645, -3.0, 754, 808, -14.0, 'B6', 102, 'N570JB', 'JFK', 'BUF', 59.0, 301.0, 6.0, 45.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 642, 645, -3.0, 841, 846, -5.0, 'US', 926, 'N177US', 'EWR', 'CLT', 90.0, 529.0, 6.0, 45.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 651, 655, -4.0, 1009, 1030, -21.0, 'DL', 1415, 'N383DN', 'JFK', 'SLC', 283.0, 1990.0, 6.0, 55.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 651, 659, -8.0, 946, 938, 8.0, 'DL', 1547, 'N680DA', 'LGA', 'ATL', 122.0, 762.0, 6.0, 59.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 651, 700, -9.0, 756, 807, -11.0, 'US', 2116, 'N948UW', 'LGA', 'BOS', 37.0, 184.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 652, 659, -7.0, 942, 959, -17.0, 'AA', 1815, 'N5FAAA', 'JFK', 'MCO', 140.0, 944.0, 6.0, 59.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 653, 700, -7.0, 949, 1019, -30.0, 'DL', 2003, 'N967DL', 'LGA', 'MIA', 149.0, 1096.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 653, 700, -7.0, 834, 836, -2.0, 'UA', 1162, 'N38268', 'EWR', 'ORD', 122.0, 719.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 654, 705, -11.0, 940, 940, 0.0, 'MQ', 4534, 'N722MQ', 'LGA', 'XNA', 178.0, 1147.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 654, 700, -6.0, 802, 807, -5.0, 'US', 2163, 'N749US', 'LGA', 'DCA', 55.0, 214.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 655, 700, -5.0, 938, 952, -14.0, 'DL', 2285, 'N317NB', 'LGA', 'MCO', 129.0, 950.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 655, 700, -5.0, 1025, 1045, -20.0, 'DL', 1865, 'N713TW', 'JFK', 'SFO', 355.0, 2586.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 655, 700, -5.0, 1003, 1014, -11.0, 'DL', 1879, 'N369NW', 'LGA', 'FLL', 160.0, 1076.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 655, 654, 1.0, 911, 913, -2.0, 'UA', 1122, 'N75436', 'EWR', 'DEN', 235.0, 1605.0, 6.0, 54.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 658, 700, -2.0, 758, 815, -17.0, 'UA', 1142, 'N77295', 'EWR', 'BOS', 35.0, 200.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 659, 700, -1.0, 1013, 1015, -2.0, 'AA', 2279, 'N3CHAA', 'LGA', 'MIA', 145.0, 1096.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 659, 700, -1.0, 1006, 1034, -28.0, 'DL', 763, 'N705TW', 'JFK', 'LAX', 335.0, 2475.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 700, 700, 0.0, 837, 850, -13.0, 'AA', 305, 'N466AA', 'LGA', 'ORD', 128.0, 733.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 700, 705, -5.0, 1007, 1015, -8.0, 'WN', 3483, 'N494WN', 'EWR', 'HOU', 229.0, 1411.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 700, 700, 0.0, 831, 839, -8.0, 'UA', 550, 'N463UA', 'LGA', 'ORD', 123.0, 733.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 702, 705, -3.0, 1020, 1035, -15.0, 'VX', 399, 'N638VA', 'JFK', 'LAX', 346.0, 2475.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 702, 705, -3.0, 1035, 1034, 1.0, 'UA', 1655, 'N39728', 'EWR', 'SNA', 369.0, 2434.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 703, 700, 3.0, 1006, 1027, -21.0, 'B6', 671, 'N809JB', 'JFK', 'LAX', 342.0, 2475.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 703, 710, -7.0, 842, 850, -8.0, 'MQ', 3737, 'N8EGMQ', 'EWR', 'ORD', 121.0, 719.0, 7.0, 10.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 703, 705, -2.0, 943, 948, -5.0, 'UA', 1506, 'N73406', 'EWR', 'LAS', 313.0, 2227.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 704, 705, -1.0, 912, 933, -21.0, 'EV', 4583, 'N11187', 'EWR', 'MSY', 168.0, 1167.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 704, 634, 30.0, 1005, 935, 30.0, 'UA', 772, 'N526UA', 'EWR', 'MIA', 153.0, 1085.0, 6.0, 34.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 705, 710, -5.0, 1158, 1203, -5.0, 'B6', 715, 'N649JB', 'JFK', 'SJU', 187.0, 1598.0, 7.0, 10.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 705, 705, 0.0, 1037, 1018, 19.0, 'UA', 604, 'N562UA', 'EWR', 'LAX', 350.0, 2454.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 706, 720, -14.0, 842, 845, -3.0, 'FL', 850, 'N975AT', 'LGA', 'MKE', 118.0, 738.0, 7.0, 20.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 707, 715, -8.0, 1014, 1045, -31.0, 'AA', 443, 'N639AA', 'JFK', 'MIA', 152.0, 1089.0, 7.0, 15.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 709, 705, 4.0, 940, 1000, -20.0, 'UA', 235, 'N428UA', 'EWR', 'MCO', 132.0, 937.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 710, 715, -5.0, 1051, 1040, 11.0, 'UA', 799, 'N502UA', 'JFK', 'SFO', 360.0, 2586.0, 7.0, 15.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 713, 715, -2.0, 1022, 1035, -13.0, 'AA', 825, 'N3FAAA', 'JFK', 'FLL', 156.0, 1069.0, 7.0, 15.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 714, 720, -6.0, 914, 928, -14.0, 'DL', 831, 'N957DL', 'LGA', 'DTW', 85.0, 502.0, 7.0, 20.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 718, 720, -2.0, 911, 920, -9.0, 'EV', 4246, 'N14904', 'EWR', 'DTW', 92.0, 488.0, 7.0, 20.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 718, 720, -2.0, 1003, 1023, -20.0, 'UA', 1724, 'N27239', 'EWR', 'PBI', 142.0, 1023.0, 7.0, 20.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 719, 725, -6.0, 1011, 1030, -19.0, 'AS', 11, 'N513AS', 'EWR', 'SEA', 334.0, 2402.0, 7.0, 25.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 719, 729, -10.0, 833, 850, -17.0, 'B6', 1305, 'N190JB', 'JFK', 'IAD', 48.0, 228.0, 7.0, 29.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 721, 730, -9.0, 1006, 1100, -54.0, 'AA', 33, 'N335AA', 'JFK', 'LAX', 318.0, 2475.0, 7.0, 30.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 721, 705, 16.0, 1024, 1021, 3.0, 'B6', 981, 'N639JB', 'JFK', 'FLL', 153.0, 1069.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 721, 730, -9.0, 1020, 1045, -25.0, 'UA', 10, 'N78524', 'LGA', 'IAH', 210.0, 1416.0, 7.0, 30.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 722, 730, -8.0, 1020, 1040, -20.0, 'AA', 715, 'N4YGAA', 'LGA', 'DFW', 200.0, 1389.0, 7.0, 30.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 723, 730, -7.0, 1003, 1040, -37.0, 'AA', 2083, 'N433AA', 'EWR', 'DFW', 201.0, 1372.0, 7.0, 30.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 724, 715, 9.0, 1023, 1027, -4.0, 'UA', 1299, 'N24212', 'EWR', 'RSW', 155.0, 1068.0, 7.0, 15.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 727, 735, -8.0, 1026, 1047, -21.0, 'B6', 341, 'N592JB', 'JFK', 'SRQ', 150.0, 1041.0, 7.0, 35.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 727, 730, -3.0, 954, 1004, -10.0, 'DL', 807, 'N322NB', 'EWR', 'ATL', 114.0, 746.0, 7.0, 30.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 727, 730, -3.0, 1101, 1115, -14.0, 'VX', 11, 'N844VA', 'JFK', 'SFO', 365.0, 2586.0, 7.0, 30.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 728, 705, 23.0, 1003, 1002, 1.0, 'B6', 389, 'N507JB', 'LGA', 'MCO', 129.0, 950.0, 7.0, 5.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 732, 740, -8.0, 1031, 1105, -34.0, 'DL', 1889, 'N706TW', 'JFK', 'SEA', 329.0, 2422.0, 7.0, 40.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 737, 740, -3.0, 1033, 1045, -12.0, 'UA', 1179, 'N37273', 'EWR', 'TPA', 152.0, 997.0, 7.0, 40.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 737, 740, -3.0, 1011, 1050, -39.0, 'UA', 1410, 'N45440', 'EWR', 'IAH', 197.0, 1400.0, 7.0, 40.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 738, 745, -7.0, 902, 930, -28.0, 'AA', 309, 'N593AA', 'LGA', 'ORD', 118.0, 733.0, 7.0, 45.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 739, 740, -1.0, 925, 927, -2.0, 'EV', 4099, 'N22971', 'EWR', 'STL', 145.0, 872.0, 7.0, 40.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 742, 747, -5.0, 1113, 1126, -13.0, 'B6', 643, 'N768JB', 'JFK', 'SFO', 367.0, 2586.0, 7.0, 47.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 742, 745, -3.0, 1214, 1234, -20.0, 'UA', 1481, 'N75854', 'EWR', 'SJU', 189.0, 1608.0, 7.0, 45.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 742, 745, -3.0, 901, 922, -21.0, 'UA', 560, 'N570UA', 'EWR', 'ORD', 119.0, 719.0, 7.0, 45.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 743, 630, 73.0, 915, 810, 65.0, 'B6', 905, 'N193JB', 'JFK', 'ORD', 128.0, 740.0, 6.0, 30.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 746, 750, -4.0, 925, 940, -15.0, '9E', 3611, 'N801AY', 'JFK', 'PIT', 69.0, 340.0, 7.0, 50.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 746, 753, -7.0, 936, 1006, -30.0, 'DL', 2119, 'N334NB', 'LGA', 'MSP', 153.0, 1020.0, 7.0, 53.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 747, 757, -10.0, 907, 910, -3.0, 'B6', 44, 'N623JB', 'JFK', 'SYR', 49.0, 209.0, 7.0, 57.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 748, 755, -7.0, 945, 1012, -27.0, '9E', 4023, 'N8855A', 'EWR', 'CVG', 96.0, 569.0, 7.0, 55.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 749, 759, -10.0, 1015, 1010, 5.0, 'EV', 4214, 'N11137', 'EWR', 'MSP', 182.0, 1008.0, 7.0, 59.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 749, 759, -10.0, 855, 916, -21.0, 'EV', 4392, 'N17560', 'EWR', 'SYR', 38.0, 195.0, 7.0, 59.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 751, 755, -4.0, 1055, 1110, -15.0, 'AA', 2267, 'N3DYAA', 'LGA', 'MIA', 156.0, 1096.0, 7.0, 55.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 754, 759, -5.0, 1024, 1039, -15.0, 'DL', 2047, 'N687DL', 'LGA', 'ATL', 116.0, 762.0, 7.0, 59.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 755, 800, -5.0, 1121, 1125, -4.0, 'UA', 397, 'N512UA', 'JFK', 'SFO', 358.0, 2586.0, 8.0, 0.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 755, 759, -4.0, 1002, 1011, -9.0, 'US', 1733, 'N180US', 'LGA', 'CLT', 87.0, 544.0, 7.0, 59.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 755, 800, -5.0, 851, 908, -17.0, 'US', 2118, 'N949UW', 'LGA', 'BOS', 35.0, 184.0, 8.0, 0.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 755, 800, -5.0, 858, 917, -19.0, 'US', 2165, 'N711UW', 'LGA', 'DCA', 44.0, 214.0, 8.0, 0.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 756, 755, 1.0, 917, 930, -13.0, 'WN', 3935, 'N291WN', 'LGA', 'MDW', 122.0, 725.0, 7.0, 55.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 756, 759, -3.0, 1022, 1025, -3.0, 'UA', 429, 'N545UA', 'LGA', 'DEN', 238.0, 1620.0, 7.0, 59.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 757, 803, -6.0, 1007, 1025, -18.0, 'EV', 4393, 'N27152', 'EWR', 'OMA', 172.0, 1134.0, 8.0, 3.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 757, 759, -2.0, 1101, 1115, -14.0, 'UA', 1539, 'N15710', 'EWR', 'DFW', 209.0, 1372.0, 7.0, 59.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 758, 803, -5.0, 908, 918, -10.0, 'EV', 4233, 'N16919', 'EWR', 'BTV', 47.0, 266.0, 8.0, 3.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 758, 759, -1.0, 916, 909, 7.0, 'EV', 4457, 'N15572', 'EWR', 'MHT', 49.0, 209.0, 7.0, 59.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 758, 800, -2.0, 1018, 1054, -36.0, 'B6', 517, 'N565JB', 'EWR', 'MCO', 128.0, 937.0, 8.0, 0.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 758, 800, -2.0, 1051, 1122, -31.0, 'DL', 1271, 'N937DL', 'JFK', 'FLL', 147.0, 1069.0, 8.0, 0.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 759, 807, -8.0, 947, 1010, -23.0, 'B6', 219, 'N249JB', 'JFK', 'CLT', 85.0, 541.0, 8.0, 7.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 759, 810, -11.0, 1036, 1044, -8.0, 'FL', 346, 'N960AT', 'LGA', 'ATL', 117.0, 762.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 800, 810, -10.0, 900, 924, -24.0, 'B6', 1172, 'N229JB', 'EWR', 'BOS', 40.0, 200.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 800, 805, -5.0, 1101, 1113, -12.0, 'B6', 17, 'N715JB', 'JFK', 'FLL', 149.0, 1069.0, 8.0, 5.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 800, 800, 0.0, 1056, 1124, -28.0, 'DL', 2143, 'N358NW', 'JFK', 'MIA', 154.0, 1089.0, 8.0, 0.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 800, 800, 0.0, 1131, 1140, -9.0, 'WN', 1558, 'N400WN', 'EWR', 'PHX', 312.0, 2133.0, 8.0, 0.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 802, 745, 17.0, 1144, 1125, 19.0, 'AA', 59, 'N332AA', 'JFK', 'SFO', 379.0, 2586.0, 7.0, 45.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 803, 810, -7.0, 937, 955, -18.0, 'MQ', 4406, 'N835MQ', 'JFK', 'RDU', 69.0, 427.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 804, 810, -6.0, 958, 1007, -9.0, 'EV', 4537, 'N16961', 'EWR', 'MEM', 153.0, 946.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 805, 805, 0.0, 1016, 1029, -13.0, '9E', 3538, 'N602LR', 'JFK', 'MSP', 170.0, 1029.0, 8.0, 5.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 805, 700, 65.0, 1044, 957, 47.0, 'B6', 203, 'N521JB', 'JFK', 'LAS', 309.0, 2248.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 805, 810, -5.0, 1044, 1116, -32.0, 'DL', 1959, 'N993DL', 'JFK', 'MCO', 129.0, 944.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 806, 822, -16.0, 1004, 1019, -15.0, 'EV', 4691, 'N18557', 'EWR', 'DAY', 92.0, 533.0, 8.0, 22.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 806, 815, -9.0, 955, 1010, -15.0, 'MQ', 4490, 'N737MQ', 'LGA', 'CMH', 84.0, 479.0, 8.0, 15.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 806, 809, -3.0, 1116, 1112, 4.0, 'UA', 1626, 'N24211', 'EWR', 'SAN', 344.0, 2425.0, 8.0, 9.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 807, 810, -3.0, 1247, 1315, -28.0, 'AA', 655, 'N5FLAA', 'JFK', 'STT', 194.0, 1623.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 807, 812, -5.0, 948, 950, -2.0, 'B6', 1051, 'N206JB', 'JFK', 'PIT', 71.0, 340.0, 8.0, 12.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 808, 810, -2.0, 913, 925, -12.0, 'AA', 1838, 'N3CJAA', 'JFK', 'BOS', 38.0, 187.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 808, 815, -7.0, 1006, 1015, -9.0, 'US', 675, 'N647AW', 'EWR', 'CLT', 86.0, 529.0, 8.0, 15.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 809, 815, -6.0, 947, 958, -11.0, '9E', 3521, 'N914XJ', 'JFK', 'ORD', 127.0, 740.0, 8.0, 15.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 809, 810, -1.0, 1041, 1042, -1.0, 'DL', 269, 'N361NB', 'JFK', 'ATL', 111.0, 760.0, 8.0, 10.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 809, 817, -8.0, 1101, 1127, -26.0, 'DL', 1109, 'N309US', 'LGA', 'TPA', 145.0, 1010.0, 8.0, 17.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 809, 815, -6.0, 1043, 1118, -35.0, 'DL', 1429, 'N3736C', 'JFK', 'LAS', 315.0, 2248.0, 8.0, 15.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 809, 815, -6.0, 1046, 1131, -45.0, 'DL', 1167, 'N303DQ', 'JFK', 'TPA', 143.0, 1005.0, 8.0, 15.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 810, 827, -17.0, 955, 1031, -36.0, 'EV', 4652, 'N14173', 'EWR', 'MYR', 81.0, 550.0, 8.0, 27.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 814, 820, -6.0, 924, 939, -15.0, '9E', 4051, 'N8836A', 'JFK', 'BWI', 39.0, 184.0, 8.0, 20.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 814, 817, -3.0, 1037, 1058, -21.0, 'DL', 914, 'N376NW', 'LGA', 'DEN', 229.0, 1620.0, 8.0, 17.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 815, 820, -5.0, 943, 958, -15.0, '9E', 3317, 'N904XJ', 'JFK', 'BUF', 61.0, 301.0, 8.0, 20.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 818, 819, -1.0, 1251, 1307, -16.0, 'B6', 717, 'N729JB', 'JFK', 'SJU', 189.0, 1598.0, 8.0, 19.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 818, 820, -2.0, 943, 955, -12.0, 'MQ', 4655, 'N500MQ', 'LGA', 'BNA', 121.0, 764.0, 8.0, 20.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 820, 825, -5.0, 929, 945, -16.0, 'MQ', 4418, 'N854MQ', 'JFK', 'DCA', 51.0, 213.0, 8.0, 25.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 822, 830, -8.0, 951, 1015, -24.0, 'AA', 313, 'N4XNAA', 'LGA', 'ORD', 121.0, 733.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 822, 828, -6.0, 1056, 1105, -9.0, 'B6', 611, 'N317JB', 'JFK', 'JAX', 122.0, 828.0, 8.0, 28.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 823, 834, -11.0, 1041, 1039, 2.0, 'EV', 4230, 'N12924', 'EWR', 'GRR', 106.0, 605.0, 8.0, 34.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 823, 830, -7.0, 1010, 1025, -15.0, 'AA', 1855, 'N476AA', 'LGA', 'STL', 143.0, 888.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 823, 825, -2.0, 1027, 1026, 1.0, 'US', 487, 'N675AW', 'JFK', 'CLT', 93.0, 541.0, 8.0, 25.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 824, 829, -5.0, 1001, 1012, -11.0, 'EV', 3815, 'N21537', 'EWR', 'GSO', 72.0, 445.0, 8.0, 29.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 824, 830, -6.0, 953, 1023, -30.0, '9E', 4220, 'N8907A', 'JFK', 'RDU', 68.0, 427.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 825, 825, 0.0, 1128, 1137, -9.0, 'B6', 181, 'N655JB', 'JFK', 'SAN', 341.0, 2446.0, 8.0, 25.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 825, 827, -2.0, 1122, 1140, -18.0, 'DL', 2395, 'N331NW', 'LGA', 'PBI', 141.0, 1035.0, 8.0, 27.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 825, 830, -5.0, 1113, 1154, -41.0, 'UA', 112, 'N48127', 'JFK', 'LAX', 325.0, 2475.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 826, 830, -4.0, 950, 950, 0.0, 'WN', 369, 'N221WN', 'EWR', 'MDW', 123.0, 711.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 827, 830, -3.0, 1103, 1106, -3.0, 'F9', 835, 'N214FR', 'LGA', 'DEN', 236.0, 1620.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 827, 835, -8.0, 1058, 1105, -7.0, 'MQ', 4610, 'N3AEMQ', 'LGA', 'ATL', 115.0, 762.0, 8.0, 35.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 827, 835, -8.0, 1200, 1215, -15.0, 'UA', 1480, 'N33294', 'EWR', 'SFO', 373.0, 2565.0, 8.0, 35.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 828, 830, -2.0, 1258, 1335, -37.0, 'DL', 301, 'N633DL', 'JFK', 'SJU', 184.0, 1598.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 828, 830, -2.0, 1130, 1146, -16.0, 'UA', 1601, 'N73291', 'EWR', 'FLL', 148.0, 1065.0, 8.0, 30.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 829, 835, -6.0, 1122, 1150, -28.0, 'AA', 717, 'N3ERAA', 'LGA', 'DFW', 187.0, 1389.0, 8.0, 35.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 830, 829, 1.0, 947, 955, -8.0, 'EV', 3259, 'N12922', 'EWR', 'PWM', 52.0, 284.0, 8.0, 29.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 833, 840, -7.0, 936, 1003, -27.0, '9E', 3422, 'N605LR', 'JFK', 'BOS', 36.0, 187.0, 8.0, 40.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 835, 834, 1.0, 1124, 1137, -13.0, 'UA', 1117, 'N37456', 'EWR', 'MCO', 134.0, 937.0, 8.0, 34.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 836, 840, -4.0, 944, 959, -15.0, 'UA', 1268, 'N87513', 'EWR', 'BOS', 38.0, 200.0, 8.0, 40.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 838, 843, -5.0, 1118, 1115, 3.0, 'EV', 4388, 'N26549', 'EWR', 'JAX', 124.0, 820.0, 8.0, 43.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 838, 840, -2.0, 1023, 1030, -7.0, 'EV', 4548, 'N19966', 'EWR', 'RDU', 71.0, 416.0, 8.0, 40.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 839, 845, -6.0, 1013, 1006, 7.0, 'EV', 4409, 'N14568', 'EWR', 'RIC', 52.0, 277.0, 8.0, 45.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 839, 845, -6.0, 940, 1015, -35.0, '9E', 3405, 'N928XJ', 'JFK', 'DCA', 44.0, 213.0, 8.0, 45.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 839, 840, -1.0, 1135, 1204, -29.0, 'B6', 553, 'N627JB', 'EWR', 'RSW', 145.0, 1068.0, 8.0, 40.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 839, 845, -6.0, 1036, 1057, -21.0, 'US', 1429, 'N722US', 'LGA', 'CLT', 87.0, 544.0, 8.0, 45.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 843, 845, -2.0, 1316, 1350, -34.0, 'AA', 1357, 'N5FFAA', 'JFK', 'SJU', 191.0, 1598.0, 8.0, 45.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 847, 855, -8.0, 1111, 1101, 10.0, 'EV', 4383, 'N14158', 'EWR', 'DTW', 102.0, 488.0, 8.0, 55.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 847, 850, -3.0, 1120, 1113, 7.0, 'EV', 4376, 'N11109', 'EWR', 'XNA', 173.0, 1131.0, 8.0, 50.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 850, 855, -5.0, 1051, 1102, -11.0, 'EV', 4913, 'N134EV', 'EWR', 'DTW', 84.0, 488.0, 8.0, 55.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 851, 858, -7.0, 1134, 1118, 16.0, 'EV', 4364, 'N27190', 'EWR', 'MCI', 173.0, 1092.0, 8.0, 58.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 851, 855, -4.0, 1200, 1217, -17.0, 'B6', 1061, 'N281JB', 'JFK', 'AUS', 234.0, 1521.0, 8.0, 55.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 852, 900, -8.0, 1004, 1020, -16.0, 'US', 2120, 'N957UW', 'LGA', 'BOS', 37.0, 184.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 852, 900, -8.0, 1004, 1022, -18.0, 'US', 2167, 'N760US', 'LGA', 'DCA', 44.0, 214.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 854, 903, -9.0, 1127, 1146, -19.0, 'UA', 565, 'N571UA', 'EWR', 'LAS', 296.0, 2227.0, 9.0, 3.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 855, 900, -5.0, 1234, 1227, 7.0, 'DL', 120, 'N727TW', 'JFK', 'LAX', 354.0, 2475.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 855, 900, -5.0, 1056, 1116, -20.0, 'DL', 181, 'N318US', 'LGA', 'DTW', 89.0, 502.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 855, 857, -2.0, 1206, 1209, -3.0, 'UA', 714, 'N410UA', 'EWR', 'MIA', 146.0, 1085.0, 8.0, 57.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 855, 900, -5.0, 1213, 1216, -3.0, 'UA', 1405, 'N27724', 'LGA', 'IAH', 212.0, 1416.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 855, 900, -5.0, 1034, 1048, -14.0, 'UA', 225, 'N821UA', 'EWR', 'ORD', 123.0, 719.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 856, 900, -4.0, 1159, 1220, -21.0, 'AA', 1, 'N336AA', 'JFK', 'LAX', 328.0, 2475.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 857, 900, -3.0, 1130, 1135, -5.0, 'DL', 485, 'N306DQ', 'EWR', 'ATL', 119.0, 746.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 857, 840, 17.0, 1040, 1030, 10.0, 'MQ', 4521, 'N713MQ', 'LGA', 'RDU', 73.0, 431.0, 8.0, 40.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 857, 900, -3.0, 1137, 1133, 4.0, 'UA', 1643, 'N33103', 'EWR', 'DEN', 236.0, 1605.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 858, 900, -2.0, 1142, 1159, -17.0, 'B6', 59, 'N657JB', 'JFK', 'TPA', 144.0, 1005.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 858, 859, -1.0, 1133, 1145, -12.0, 'DL', 1747, 'N665DN', 'LGA', 'ATL', 115.0, 762.0, 8.0, 59.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 858, 859, -1.0, 1153, 1159, -6.0, 'UA', 430, 'N458UA', 'EWR', 'TPA', 142.0, 997.0, 8.0, 59.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 859, 900, -1.0, 1449, 1530, -41.0, 'HA', 51, 'N388HA', 'JFK', 'HNL', 633.0, 4983.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 859, 900, -1.0, 1155, 1205, -10.0, 'DL', 1885, 'N344NW', 'LGA', 'MCO', 132.0, 950.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 859, 905, -6.0, 1118, 1115, 3.0, 'MQ', 4478, 'N730MQ', 'LGA', 'DTW', 103.0, 502.0, 9.0, 5.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 859, 904, -5.0, 1058, 1053, 5.0, 'UA', 1602, 'N77518', 'EWR', 'CLE', 75.0, 404.0, 9.0, 4.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 900, 900, 0.0, 1205, 1220, -15.0, 'AA', 647, 'N5DEAA', 'JFK', 'MIA', 151.0, 1089.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 900, 905, -5.0, 1219, 1226, -7.0, 'DL', 2379, 'N347NB', 'LGA', 'FLL', 157.0, 1076.0, 9.0, 5.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 904, 908, -4.0, 1115, 1120, -5.0, 'EV', 4638, 'N36915', 'EWR', 'CVG', 94.0, 569.0, 9.0, 8.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 904, 906, -2.0, 1216, 1216, 0.0, 'UA', 634, 'N435UA', 'EWR', 'PBI', 152.0, 1023.0, 9.0, 6.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 907, 915, -8.0, 1053, 1101, -8.0, 'B6', 1103, 'N239JB', 'JFK', 'RDU', 74.0, 427.0, 9.0, 15.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 907, 857, 10.0, 1219, 1204, 15.0, 'UA', 1194, 'N37464', 'EWR', 'IAH', 213.0, 1400.0, 8.0, 57.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 907, 908, -1.0, 1403, 1409, -6.0, 'UA', 1519, 'N75435', 'EWR', 'STT', 196.0, 1634.0, 9.0, 8.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 908, 905, 3.0, 1019, 1029, -10.0, 'B6', 20, 'N346JB', 'JFK', 'ROC', 57.0, 264.0, 9.0, 5.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 909, 905, 4.0, 1018, 1023, -5.0, 'B6', 56, 'N298JB', 'JFK', 'BTV', 52.0, 266.0, 9.0, 5.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 910, 920, -10.0, 1113, 1125, -12.0, 'MQ', 4582, 'N503MQ', 'LGA', 'CLT', 84.0, 544.0, 9.0, 20.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 912, 915, -3.0, 1219, 1225, -6.0, 'B6', 25, 'N595JB', 'JFK', 'FLL', 157.0, 1069.0, 9.0, 15.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 914, 920, -6.0, 1216, 1245, -29.0, 'AA', 721, 'N576AA', 'LGA', 'DFW', 206.0, 1389.0, 9.0, 20.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 914, 920, -6.0, 1221, 1240, -19.0, 'AA', 1589, 'N596AA', 'EWR', 'DFW', 202.0, 1372.0, 9.0, 20.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 916, 929, -13.0, 1035, 1044, -9.0, 'EV', 4636, 'N14907', 'EWR', 'DCA', 42.0, 199.0, 9.0, 29.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 916, 920, -4.0, 1237, 1233, 4.0, 'UA', 1275, 'N77871', 'EWR', 'LAX', 331.0, 2454.0, 9.0, 20.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 917, 921, -4.0, 1010, 1029, -19.0, 'B6', 1004, 'N665JB', 'JFK', 'BOS', 38.0, 187.0, 9.0, 21.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 917, 655, 142.0, 1144, 927, 137.0, 'B6', 117, 'N643JB', 'JFK', 'MSY', 188.0, 1182.0, 6.0, 55.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, 919, 929, -10.0, 1425, 1427, -2.0, 'B6', 215, 'N658JB', 'EWR', 'SJU', 194.0, 1608.0, 9.0, 29.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 920, 929, -9.0, 1200, 1206, -6.0, 'EV', 4140, 'N12967', 'EWR', 'ATL', 122.0, 746.0, 9.0, 29.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 921, 930, -9.0, 1050, 1103, -13.0, '9E', 3661, 'N8623A', 'JFK', 'ROC', 56.0, 264.0, 9.0, 30.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 921, 935, -14.0, 1202, 1235, -33.0, 'VX', 251, 'N848VA', 'JFK', 'LAS', 324.0, 2248.0, 9.0, 35.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 923, 924, -1.0, 1125, 1118, 7.0, 'EV', 4234, 'N13979', 'EWR', 'STL', 141.0, 872.0, 9.0, 24.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 923, 928, -5.0, 1040, 1051, -11.0, 'B6', 4, 'N632JB', 'JFK', 'BUF', 61.0, 301.0, 9.0, 28.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 926, 855, 31.0, 1132, 1104, 28.0, '9E', 3353, 'N906XJ', 'JFK', 'DTW', 90.0, 509.0, 8.0, 55.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 929, 731, 118.0, 1240, 1045, 115.0, 'B6', 1601, 'N597JB', 'LGA', 'RSW', 156.0, 1080.0, 7.0, 31.0, '2013-01-10T12:00:00Z'), #> (2013, 1, 10, 932, 930, 2.0, 1225, 1246, -21.0, 'B6', 375, 'N556JB', 'LGA', 'FLL', 152.0, 1076.0, 9.0, 30.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 935, 940, -5.0, 1228, 1250, -22.0, 'AA', 1871, 'N3DXAA', 'LGA', 'MIA', 145.0, 1096.0, 9.0, 40.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 938, 950, -12.0, 1052, 1104, -12.0, 'B6', 600, 'N337JB', 'JFK', 'PWM', 50.0, 273.0, 9.0, 50.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 939, 945, -6.0, 1105, 1130, -25.0, 'AA', 319, 'N4YKAA', 'LGA', 'ORD', 118.0, 733.0, 9.0, 45.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 939, 905, 34.0, 1259, 1235, 24.0, 'VX', 407, 'N622VA', 'JFK', 'LAX', 349.0, 2475.0, 9.0, 5.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 940, 950, -10.0, 1208, 1210, -2.0, '9E', 3961, 'N8808H', 'LGA', 'GRR', 107.0, 618.0, 9.0, 50.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 945, 945, 0.0, 1102, 1135, -33.0, 'WN', 469, 'N474WN', 'LGA', 'BNA', 117.0, 764.0, 9.0, 45.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 945, 850, 55.0, 1119, 1035, 44.0, 'MQ', 4558, 'N723MQ', 'LGA', 'CLE', 68.0, 419.0, 8.0, 50.0, '2013-01-10T13:00:00Z'), #> (2013, 1, 10, 945, 955, -10.0, 1236, 1246, -10.0, 'UA', 1597, 'N38727', 'EWR', 'EGE', 267.0, 1726.0, 9.0, 55.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 948, 957, -9.0, 1101, 1125, -24.0, 'EV', 4187, 'N17169', 'EWR', 'BNA', 110.0, 748.0, 9.0, 57.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 949, 935, 14.0, 1217, 1231, -14.0, 'B6', 41, 'N568JB', 'JFK', 'MCO', 127.0, 944.0, 9.0, 35.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 949, 950, -1.0, 1119, 1130, -11.0, 'WN', 1964, 'N7702A', 'LGA', 'MKE', 127.0, 738.0, 9.0, 50.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 951, 958, -7.0, 1125, 1137, -12.0, 'UA', 258, 'N818UA', 'LGA', 'ORD', 123.0, 733.0, 9.0, 58.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 952, 1000, -8.0, 1051, 1108, -17.0, 'US', 2122, 'N945UW', 'LGA', 'BOS', 34.0, 184.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 953, 1000, -7.0, 1239, 1305, -26.0, 'B6', 503, 'N589JB', 'EWR', 'FLL', 146.0, 1065.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 953, 959, -6.0, 1128, 1129, -1.0, 'MQ', 4670, 'N526MQ', 'LGA', 'BNA', 118.0, 764.0, 9.0, 59.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 954, 955, -1.0, 1046, 1100, -14.0, '9E', 3667, 'N8974C', 'JFK', 'PHL', 29.0, 94.0, 9.0, 55.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 955, 1006, -11.0, 1205, 1219, -14.0, 'EV', 4250, 'N13949', 'EWR', 'IND', 114.0, 645.0, 10.0, 6.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 955, 925, 30.0, 1203, 1150, 13.0, 'WN', 3494, 'N790SW', 'EWR', 'DEN', 240.0, 1605.0, 9.0, 25.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 955, 955, 0.0, 1241, 1220, 21.0, 'MQ', 4654, 'N537MQ', 'LGA', 'ATL', 120.0, 762.0, 9.0, 55.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 956, 1000, -4.0, 1254, 1321, -27.0, 'UA', 499, 'N430UA', 'EWR', 'SEA', 332.0, 2402.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 957, 959, -2.0, 1314, 1248, 26.0, 'B6', 197, 'N603JB', 'JFK', 'LAS', 319.0, 2248.0, 9.0, 59.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 957, 1000, -3.0, 1245, 1239, 6.0, 'DL', 1847, 'N623DL', 'LGA', 'ATL', 130.0, 762.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 957, 1000, -3.0, 1202, 1209, -7.0, 'US', 1277, 'N769US', 'LGA', 'CLT', 89.0, 544.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 958, 1005, -7.0, 1243, 1303, -20.0, 'DL', 1529, 'N385DN', 'JFK', 'LAS', 325.0, 2248.0, 10.0, 5.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 958, 1000, -2.0, 1104, 1121, -17.0, 'US', 2169, 'N756US', 'LGA', 'DCA', 43.0, 214.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 959, 1000, -1.0, 1304, 1310, -6.0, 'UA', 789, 'N498UA', 'EWR', 'FLL', 165.0, 1065.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 959, 959, 0.0, 1319, 1333, -14.0, 'US', 450, 'N665AW', 'JFK', 'PHX', 294.0, 2153.0, 9.0, 59.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 1000, 1000, 0.0, 1239, 1254, -15.0, 'UA', 1623, 'N76508', 'EWR', 'MCO', 134.0, 937.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1004, 1010, -6.0, 1127, 1140, -13.0, 'MQ', 3795, 'N509MQ', 'EWR', 'ORD', 117.0, 719.0, 10.0, 10.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1006, 1000, 6.0, 1328, 1341, -13.0, 'DL', 1765, 'N722TW', 'JFK', 'SFO', 356.0, 2586.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1007, 1015, -8.0, 1323, 1334, -11.0, 'UA', 1171, 'N14629', 'LGA', 'IAH', 210.0, 1416.0, 10.0, 15.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1008, 1015, -7.0, 1321, 1340, -19.0, 'US', 75, 'N663AW', 'EWR', 'PHX', 291.0, 2133.0, 10.0, 15.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1009, 1015, -6.0, 1121, 1131, -10.0, 'EV', 4663, 'N15980', 'EWR', 'IAD', 49.0, 212.0, 10.0, 15.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1009, 1016, -7.0, 1228, 1230, -2.0, 'DL', 2319, 'N909DE', 'LGA', 'MSP', 161.0, 1020.0, 10.0, 16.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1009, 1015, -6.0, 1218, 1216, 2.0, 'US', 1427, 'N725UW', 'JFK', 'CLT', 100.0, 541.0, 10.0, 15.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1016, 1020, -4.0, 1319, 1330, -11.0, 'AA', 731, 'N3CCAA', 'LGA', 'DFW', 201.0, 1389.0, 10.0, 20.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1016, 1023, -7.0, 1259, 1255, 4.0, 'FL', 347, 'N948AT', 'LGA', 'ATL', 122.0, 762.0, 10.0, 23.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1017, 1021, -4.0, 1329, 1342, -13.0, 'DL', 1903, 'N919DL', 'LGA', 'SRQ', 155.0, 1047.0, 10.0, 21.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1018, 1030, -12.0, 1236, 1252, -16.0, 'DL', 2343, 'N339NB', 'EWR', 'ATL', 117.0, 746.0, 10.0, 30.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1022, 1025, -3.0, 1159, 1231, -32.0, 'EV', 5026, 'N712EV', 'EWR', 'DTW', 84.0, 488.0, 10.0, 25.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1024, 1006, 18.0, 1135, 1121, 14.0, 'EV', 5711, 'N826AS', 'JFK', 'IAD', 47.0, 228.0, 10.0, 6.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1025, 1030, -5.0, 1330, 1340, -10.0, 'AA', 19, 'N338AA', 'JFK', 'LAX', 342.0, 2475.0, 10.0, 30.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1026, 1031, -5.0, 1358, 1403, -5.0, 'B6', 641, 'N625JB', 'JFK', 'SFO', 358.0, 2586.0, 10.0, 31.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1026, 1030, -4.0, 1358, 1415, -17.0, 'VX', 23, 'N841VA', 'JFK', 'SFO', 372.0, 2586.0, 10.0, 30.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1029, 1030, -1.0, 1208, 1215, -7.0, 'MQ', 4471, 'N736MQ', 'LGA', 'RDU', 71.0, 431.0, 10.0, 30.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1034, 1015, 19.0, 1217, 1208, 9.0, 'US', 1103, 'N559UW', 'EWR', 'CLT', 83.0, 529.0, 10.0, 15.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1037, 1039, -2.0, 1306, 1330, -24.0, 'B6', 31, 'N613JB', 'JFK', 'MCO', 129.0, 944.0, 10.0, 39.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1038, 1042, -4.0, 1158, 1206, -8.0, 'EV', 4694, 'N12569', 'EWR', 'MKE', 124.0, 725.0, 10.0, 42.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1040, 1045, -5.0, 1231, 1252, -21.0, 'DL', 1573, 'N316US', 'LGA', 'MEM', 144.0, 963.0, 10.0, 45.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1041, 1043, -2.0, 1318, 1340, -22.0, 'UA', 406, 'N667UA', 'EWR', 'IAH', 196.0, 1400.0, 10.0, 43.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1042, 1030, 12.0, 1428, 1355, 33.0, 'AA', 179, 'N361AA', 'JFK', 'SFO', 371.0, 2586.0, 10.0, 30.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1043, 1050, -7.0, 1212, 1227, -15.0, 'EV', 4662, 'N13133', 'EWR', 'RDU', 72.0, 416.0, 10.0, 50.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1046, 1050, -4.0, 1338, 1340, -2.0, 'UA', 1277, 'N12225', 'EWR', 'LAS', 328.0, 2227.0, 10.0, 50.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1046, 1052, -6.0, 1344, 1414, -30.0, 'UA', 343, 'N413UA', 'EWR', 'RSW', 160.0, 1068.0, 10.0, 52.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1048, 1055, -7.0, 1323, 1405, -42.0, 'AA', 739, 'N3EHAA', 'LGA', 'DFW', 191.0, 1389.0, 10.0, 55.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1052, 1100, -8.0, 1206, 1223, -17.0, 'EV', 4240, 'N14998', 'EWR', 'BUF', 53.0, 282.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1052, 1025, 27.0, 1146, 1131, 15.0, 'B6', 1026, 'N653JB', 'JFK', 'BOS', 36.0, 187.0, 10.0, 25.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1052, 1100, -8.0, 1354, 1424, -30.0, 'DL', 2044, 'N976DL', 'LGA', 'MIA', 150.0, 1096.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1054, 1100, -6.0, 1332, 1338, -6.0, 'DL', 1647, 'N618DL', 'LGA', 'ATL', 115.0, 762.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1054, 1100, -6.0, 1153, 1209, -16.0, 'US', 2124, 'N961UW', 'LGA', 'BOS', 37.0, 184.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1055, 1056, -1.0, 1155, 1207, -12.0, 'UA', 570, 'N434UA', 'EWR', 'BOS', 40.0, 200.0, 10.0, 56.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1056, 1100, -4.0, 1409, 1425, -16.0, 'UA', 642, 'N505UA', 'JFK', 'SFO', 342.0, 2586.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1056, 1100, -4.0, 1154, 1214, -20.0, 'US', 2171, 'N749US', 'LGA', 'DCA', 38.0, 214.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1059, 1100, -1.0, 1210, 1215, -5.0, 'MQ', 3792, 'N542MQ', 'JFK', 'DCA', 48.0, 213.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1103, 1105, -2.0, 1223, 1245, -22.0, 'WN', 542, 'N294WN', 'LGA', 'MDW', 119.0, 725.0, 11.0, 5.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1104, 1110, -6.0, 1215, 1221, -6.0, 'B6', 24, 'N283JB', 'JFK', 'BTV', 51.0, 266.0, 11.0, 10.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1104, 935, 89.0, 1357, 1238, 79.0, 'B6', 361, 'N583JB', 'LGA', 'PBI', 141.0, 1035.0, 9.0, 35.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 1104, 1115, -11.0, 1407, 1425, -18.0, 'AA', 2099, 'N3HYAA', 'LGA', 'MIA', 146.0, 1096.0, 11.0, 15.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1104, 1050, 14.0, 1316, 1250, 26.0, 'MQ', 4589, 'N0EGMQ', 'LGA', 'DTW', 91.0, 502.0, 10.0, 50.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1105, 1100, 5.0, 1252, 1300, -8.0, 'WN', 1873, 'N935WN', 'LGA', 'STL', 143.0, 888.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1105, 1100, 5.0, 1434, 1432, 2.0, 'UA', 1120, 'N36247', 'EWR', 'SFO', 370.0, 2565.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1106, 1115, -9.0, 1234, 1257, -23.0, 'EV', 5273, 'N755EV', 'LGA', 'PIT', 57.0, 335.0, 11.0, 15.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1107, 1114, -7.0, 1251, 1315, -24.0, 'DL', 1031, 'N318NB', 'LGA', 'DTW', 77.0, 502.0, 11.0, 14.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1109, 1115, -6.0, 1258, 1310, -12.0, 'MQ', 4485, 'N725MQ', 'LGA', 'CMH', 79.0, 479.0, 11.0, 15.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1113, 1116, -3.0, 1347, 1414, -27.0, 'UA', 1143, 'N87507', 'EWR', 'PBI', 139.0, 1023.0, 11.0, 16.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1113, 1114, -1.0, 1341, 1345, -4.0, 'UA', 1654, 'N77510', 'LGA', 'DEN', 236.0, 1620.0, 11.0, 14.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1114, 1000, 74.0, 1240, 1123, 77.0, 'EV', 5736, 'N829AS', 'LGA', 'IAD', 52.0, 229.0, 10.0, 0.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1119, 1125, -6.0, 1248, 1305, -17.0, 'AA', 327, 'N3BCAA', 'LGA', 'ORD', 118.0, 733.0, 11.0, 25.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1120, 1032, 48.0, 1320, 1240, 40.0, 'EV', 4269, 'N10156', 'EWR', 'CHS', 99.0, 628.0, 10.0, 32.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1121, 1635, 1126.0, 1239, 1810, 1109.0, 'MQ', 3695, 'N517MQ', 'EWR', 'ORD', 111.0, 719.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1122, 1125, -3.0, 1555, 1620, -25.0, 'DL', 315, 'N3759', 'JFK', 'SJU', 188.0, 1598.0, 11.0, 25.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1123, 1129, -6.0, 1350, 1419, -29.0, 'B6', 523, 'N562JB', 'EWR', 'MCO', 134.0, 937.0, 11.0, 29.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1125, 1130, -5.0, 1336, 1334, 2.0, 'US', 1625, 'N179UW', 'LGA', 'CLT', 96.0, 544.0, 11.0, 30.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1126, 1129, -3.0, 1430, 1438, -8.0, 'B6', 133, 'N760JB', 'JFK', 'RSW', 164.0, 1074.0, 11.0, 29.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1126, 1130, -4.0, 1400, 1430, -30.0, 'DL', 695, 'N913DE', 'JFK', 'MCO', 132.0, 944.0, 11.0, 30.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1126, 1130, -4.0, 1305, 1315, -10.0, 'WN', 145, 'N651SW', 'EWR', 'STL', 143.0, 872.0, 11.0, 30.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1126, 1130, -4.0, 1439, 1445, -6.0, 'UA', 703, 'N525UA', 'JFK', 'LAX', 349.0, 2475.0, 11.0, 30.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1127, 1135, -8.0, 1315, 1330, -15.0, 'MQ', 4553, 'N846MQ', 'LGA', 'CLE', 73.0, 419.0, 11.0, 35.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1128, 1134, -6.0, 1339, 1345, -6.0, 'DL', 2219, 'N355NB', 'LGA', 'MSP', 158.0, 1020.0, 11.0, 34.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1130, 1130, 0.0, 1409, 1422, -13.0, 'UA', 1230, 'N19117', 'EWR', 'MCO', 135.0, 937.0, 11.0, 30.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1132, 1100, 32.0, 1448, 1420, 28.0, 'DL', 1275, 'N3763D', 'JFK', 'SLC', 287.0, 1990.0, 11.0, 0.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1133, 1144, -11.0, 1244, 1255, -11.0, 'EV', 4264, 'N16919', 'EWR', 'BTV', 51.0, 266.0, 11.0, 44.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1133, 1127, 6.0, 1350, 1353, -3.0, 'UA', 1625, 'N27213', 'EWR', 'DEN', 236.0, 1605.0, 11.0, 27.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1138, 1140, -2.0, 1452, 1450, 2.0, 'DL', 930, 'N324NB', 'LGA', 'FLL', 155.0, 1076.0, 11.0, 40.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1138, 1145, -7.0, 1430, 1454, -24.0, 'DL', 1875, 'N975DL', 'LGA', 'TPA', 143.0, 1010.0, 11.0, 45.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1139, 1125, 14.0, 1449, 1439, 10.0, 'B6', 673, 'N638JB', 'JFK', 'LAX', 351.0, 2475.0, 11.0, 25.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1139, 1144, -5.0, 1427, 1445, -18.0, 'UA', 1707, 'N77295', 'EWR', 'TPA', 147.0, 997.0, 11.0, 44.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1142, 1140, 2.0, 1423, 1445, -22.0, 'AA', 1623, 'N3CFAA', 'EWR', 'MIA', 138.0, 1085.0, 11.0, 40.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1143, 1145, -2.0, 1356, 1410, -14.0, 'DL', 401, 'N304DQ', 'EWR', 'ATL', 112.0, 746.0, 11.0, 45.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1144, 1145, -1.0, 1446, 1453, -7.0, 'DL', 1174, 'N327NB', 'LGA', 'PBI', 150.0, 1035.0, 11.0, 45.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1145, 1152, -7.0, 1252, 1307, -15.0, 'EV', 4349, 'N14904', 'EWR', 'ORF', 49.0, 284.0, 11.0, 52.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1145, 1145, 0.0, 1322, 1321, 1.0, 'FL', 353, 'N966AT', 'LGA', 'CAK', 68.0, 397.0, 11.0, 45.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1146, 1120, 26.0, 1346, 1336, 10.0, 'EV', 4298, 'N11150', 'EWR', 'MCI', 167.0, 1092.0, 11.0, 20.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1146, 1155, -9.0, 1440, 1459, -19.0, 'B6', 625, 'N334JB', 'JFK', 'HOU', 215.0, 1428.0, 11.0, 55.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1148, 1150, -2.0, 1407, 1345, 22.0, 'MQ', 4646, 'N513MQ', 'LGA', 'MSP', 170.0, 1020.0, 11.0, 50.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1152, 1155, -3.0, 1254, 1304, -10.0, '9E', 3483, 'N601LR', 'JFK', 'BOS', 41.0, 187.0, 11.0, 55.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1152, 1200, -8.0, 1426, 1430, -4.0, 'MQ', 4658, 'N532MQ', 'LGA', 'ATL', 121.0, 762.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1152, 1200, -8.0, 1345, 1400, -15.0, 'US', 1443, 'N767UW', 'JFK', 'CLT', 94.0, 541.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1153, 1200, -7.0, 1244, 1304, -20.0, 'B6', 1174, 'N231JB', 'EWR', 'BOS', 38.0, 200.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1153, 1200, -7.0, 1531, 1529, 2.0, 'DL', 863, 'N712TW', 'JFK', 'LAX', 359.0, 2475.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1154, 1200, -6.0, 1434, 1438, -4.0, 'DL', 1947, 'N675DL', 'LGA', 'ATL', 122.0, 762.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1154, 1205, -11.0, 1350, 1345, 5.0, 'MQ', 4431, 'N734MQ', 'LGA', 'RDU', 72.0, 431.0, 12.0, 5.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1155, 1200, -5.0, 1300, 1315, -15.0, 'MQ', 4425, 'N854MQ', 'JFK', 'DCA', 50.0, 213.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1155, 1200, -5.0, 1441, 1459, -18.0, 'UA', 1461, 'N23721', 'EWR', 'IAH', 202.0, 1400.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1155, 1200, -5.0, 1313, 1309, 4.0, 'US', 2173, 'N747UW', 'LGA', 'DCA', 47.0, 214.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1156, 1200, -4.0, 1303, 1305, -2.0, 'US', 2126, 'N949UW', 'LGA', 'BOS', 35.0, 184.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1158, 1200, -2.0, 1507, 1510, -3.0, 'AA', 3, 'N339AA', 'JFK', 'LAX', 343.0, 2475.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1159, 1133, 26.0, 1329, 1309, 20.0, 'EV', 4671, 'N17108', 'EWR', 'RDU', 73.0, 416.0, 11.0, 33.0, '2013-01-10T16:00:00Z'), #> (2013, 1, 10, 1159, 1205, -6.0, 1441, 1520, -39.0, 'AA', 743, 'N539AA', 'LGA', 'DFW', 197.0, 1389.0, 12.0, 5.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1201, 1200, 1.0, 1422, 1432, -10.0, 'EV', 4090, 'N26545', 'EWR', 'JAX', 120.0, 820.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1204, 1210, -6.0, 1317, 1323, -6.0, 'B6', 42, 'N306JB', 'JFK', 'SYR', 47.0, 209.0, 12.0, 10.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1206, 1210, -4.0, 1256, 1310, -14.0, 'WN', 477, 'N404WN', 'EWR', 'BWI', 36.0, 169.0, 12.0, 10.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1206, 1205, 1.0, 1323, 1325, -2.0, 'WN', 644, 'N756SA', 'EWR', 'MDW', 121.0, 711.0, 12.0, 5.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1208, 1215, -7.0, 1321, 1328, -7.0, 'EV', 4087, 'N17560', 'EWR', 'PWM', 51.0, 284.0, 12.0, 15.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1213, 1218, -5.0, 1408, 1415, -7.0, 'EV', 4641, 'N12142', 'EWR', 'CLT', 90.0, 529.0, 12.0, 18.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1213, 1220, -7.0, 1325, 1350, -25.0, 'MQ', 3697, 'N546MQ', 'EWR', 'ORD', 114.0, 719.0, 12.0, 20.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1217, 1220, -3.0, 1523, 1533, -10.0, 'B6', 209, 'N703JB', 'JFK', 'LGB', 351.0, 2465.0, 12.0, 20.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1219, 1220, -1.0, 1341, 1343, -2.0, 'B6', 66, 'N274JB', 'JFK', 'BUF', 60.0, 301.0, 12.0, 20.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1220, 1221, -1.0, 1413, 1418, -5.0, 'EV', 4640, 'N14568', 'EWR', 'DAY', 90.0, 533.0, 12.0, 21.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1227, 1221, 6.0, 1528, 1555, -27.0, 'UA', 552, 'N817UA', 'EWR', 'SFO', 344.0, 2565.0, 12.0, 21.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1228, 1230, -2.0, 1357, 1405, -8.0, 'WN', 283, 'N245WN', 'LGA', 'MKE', 128.0, 738.0, 12.0, 30.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1228, 1235, -7.0, 1356, 1415, -19.0, 'MQ', 4404, 'N835MQ', 'JFK', 'RDU', 69.0, 427.0, 12.0, 35.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1233, 1216, 17.0, 1456, 1445, 11.0, 'EV', 3826, 'N12922', 'EWR', 'ATL', 127.0, 746.0, 12.0, 16.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1233, 1240, -7.0, 1426, 1445, -19.0, 'DL', 1131, 'N358NB', 'LGA', 'DTW', 90.0, 502.0, 12.0, 40.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1233, 1217, 16.0, 1614, 1556, 18.0, 'UA', 1227, 'N37274', 'EWR', 'PHX', 306.0, 2133.0, 12.0, 17.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1235, 1235, 0.0, 1515, 1535, -20.0, 'UA', 1000, 'N14219', 'EWR', 'MIA', 146.0, 1085.0, 12.0, 35.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1236, 1235, 1.0, 1549, 1606, -17.0, 'DL', 2174, 'N3768', 'JFK', 'SLC', 293.0, 1990.0, 12.0, 35.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1238, 1245, -7.0, 1514, 1550, -36.0, 'AA', 745, 'N3AHAA', 'LGA', 'DFW', 195.0, 1389.0, 12.0, 45.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1238, 1240, -2.0, 1525, 1540, -15.0, 'AA', 1853, 'N201AA', 'EWR', 'DFW', 202.0, 1372.0, 12.0, 40.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1239, 1245, -6.0, 1336, 1350, -14.0, 'AA', 1850, 'N3CJAA', 'JFK', 'BOS', 39.0, 187.0, 12.0, 45.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1240, 1245, -5.0, 1455, 1514, -19.0, 'EV', 4950, 'N738EV', 'EWR', 'ATL', 116.0, 746.0, 12.0, 45.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1243, 1245, -2.0, 1542, 1600, -18.0, 'AA', 2253, 'N3ACAA', 'LGA', 'MIA', 148.0, 1096.0, 12.0, 45.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1243, 1250, -7.0, 1340, 1355, -15.0, 'B6', 1006, 'N298JB', 'JFK', 'BOS', 35.0, 187.0, 12.0, 50.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1244, 1259, -15.0, 1350, 1420, -30.0, 'EV', 4158, 'N11192', 'EWR', 'RIC', 49.0, 277.0, 12.0, 59.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1246, 1251, -5.0, 1552, 1602, -10.0, 'UA', 428, 'N475UA', 'LGA', 'IAH', 205.0, 1416.0, 12.0, 51.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1247, 1300, -13.0, 1346, 1406, -20.0, 'US', 2128, 'N957UW', 'LGA', 'BOS', 39.0, 184.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1248, 1250, -2.0, 1537, 1550, -13.0, 'DL', 1685, 'N345NW', 'LGA', 'MCO', 128.0, 950.0, 12.0, 50.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1249, 1253, -4.0, 1522, 1555, -33.0, 'UA', 1641, 'N76269', 'EWR', 'MCO', 135.0, 937.0, 12.0, 53.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1250, 1255, -5.0, 1529, 1605, -36.0, 'UA', 1612, 'N21723', 'EWR', 'DFW', 203.0, 1372.0, 12.0, 55.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1252, 1300, -8.0, 1344, 1406, -22.0, '9E', 3638, 'N8506C', 'JFK', 'PHL', 26.0, 94.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1252, 1240, 12.0, 1542, 1555, -13.0, 'AA', 2041, 'N5BSAA', 'JFK', 'MIA', 149.0, 1089.0, 12.0, 40.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1254, 1259, -5.0, 1538, 1556, -18.0, 'B6', 991, 'N346JB', 'JFK', 'PBI', 143.0, 1028.0, 12.0, 59.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1254, 1300, -6.0, 1430, 1450, -20.0, 'MQ', 4426, 'N737MQ', 'LGA', 'CMH', 83.0, 479.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1254, 1300, -6.0, 1403, 1407, -4.0, 'US', 2175, 'N760US', 'LGA', 'DCA', 43.0, 214.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1255, 1300, -5.0, 1417, 1440, -23.0, 'AA', 329, 'N4XBAA', 'LGA', 'ORD', 117.0, 733.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1256, 1259, -3.0, 1443, 1456, -13.0, 'US', 1459, 'N178US', 'LGA', 'CLT', 85.0, 544.0, 12.0, 59.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1257, 1303, -6.0, 1416, 1424, -8.0, 'B6', 32, 'N249JB', 'JFK', 'ROC', 56.0, 264.0, 13.0, 3.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1259, 1300, -1.0, 1557, 1610, -13.0, 'WN', 2239, 'N253WN', 'EWR', 'HOU', 222.0, 1411.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1300, 1300, 0.0, 1453, 1506, -13.0, '9E', 3762, 'N8965E', 'EWR', 'CVG', 95.0, 569.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1304, 1320, -16.0, 1445, 1508, -23.0, 'EV', 4628, 'N18120', 'EWR', 'STL', 137.0, 872.0, 13.0, 20.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1305, 1200, 65.0, 1408, 1330, 38.0, 'MQ', 4601, 'N515MQ', 'LGA', 'BNA', 105.0, 764.0, 12.0, 0.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1306, 1315, -9.0, 1414, 1431, -17.0, 'EV', 4120, 'N16976', 'EWR', 'BUF', 53.0, 282.0, 13.0, 15.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1306, 1250, 16.0, 1524, 1520, 4.0, 'WN', 390, 'N445WN', 'LGA', 'DEN', 236.0, 1620.0, 12.0, 50.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1308, 1259, 9.0, 1412, 1402, 10.0, 'EV', 4129, 'N14907', 'EWR', 'DCA', 44.0, 199.0, 12.0, 59.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1309, 1315, -6.0, 1400, 1411, -11.0, 'EV', 4368, 'N13964', 'EWR', 'BDL', 24.0, 116.0, 13.0, 15.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1309, 1300, 9.0, 1602, 1606, -4.0, 'B6', 85, 'N659JB', 'JFK', 'FLL', 149.0, 1069.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1310, 1250, 20.0, 1449, 1449, 0.0, 'EV', 4893, 'N744EV', 'EWR', 'DTW', 81.0, 488.0, 12.0, 50.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1311, 1315, -4.0, 1503, 1520, -17.0, 'MQ', 4564, 'N713MQ', 'LGA', 'DTW', 85.0, 502.0, 13.0, 15.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1312, 1308, 4.0, 1538, 1542, -4.0, 'FL', 348, 'N992AT', 'LGA', 'ATL', 116.0, 762.0, 13.0, 8.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1313, 1325, -12.0, 1447, 1505, -18.0, 'MQ', 4475, 'N739MQ', 'LGA', 'RDU', 69.0, 431.0, 13.0, 25.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1314, 1315, -1.0, 1457, 1504, -7.0, 'US', 1643, 'N174US', 'EWR', 'CLT', 82.0, 529.0, 13.0, 15.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1315, 1320, -5.0, 1646, 1650, -4.0, 'VX', 411, 'N632VA', 'JFK', 'LAX', 356.0, 2475.0, 13.0, 20.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1317, 1259, 18.0, 1427, 1436, -9.0, 'UA', 1483, 'N34131', 'EWR', 'ORD', 112.0, 719.0, 12.0, 59.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1318, 1320, -2.0, 1628, 1633, -5.0, 'UA', 1110, 'N17104', 'EWR', 'LAX', 341.0, 2454.0, 13.0, 20.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1319, 1322, -3.0, 1613, 1624, -11.0, 'B6', 431, 'N644JB', 'LGA', 'SRQ', 150.0, 1047.0, 13.0, 22.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1320, 1329, -9.0, 1457, 1526, -29.0, 'EV', 3840, 'N11194', 'EWR', 'MEM', 141.0, 946.0, 13.0, 29.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1324, 1329, -5.0, 1436, 1439, -3.0, 'EV', 4432, 'N14173', 'EWR', 'BTV', 49.0, 266.0, 13.0, 29.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1324, 1324, 0.0, 1604, 1624, -20.0, 'B6', 505, 'N746JB', 'EWR', 'FLL', 146.0, 1065.0, 13.0, 24.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1324, 1330, -6.0, 1540, 1605, -25.0, 'DL', 2043, 'N379DA', 'JFK', 'ATL', 116.0, 760.0, 13.0, 30.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1329, 1330, -1.0, 1611, 1640, -29.0, 'AA', 753, 'N3BKAA', 'LGA', 'DFW', 199.0, 1389.0, 13.0, 30.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1335, 1259, 36.0, 1430, 1408, 22.0, 'UA', 750, 'N840UA', 'EWR', 'BOS', 36.0, 200.0, 12.0, 59.0, '2013-01-10T17:00:00Z'), #> (2013, 1, 10, 1336, 1345, -9.0, 1455, 1458, -3.0, 'B6', 602, 'N337JB', 'JFK', 'PWM', 56.0, 273.0, 13.0, 45.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1337, 1329, 8.0, 1630, 1647, -17.0, 'UA', 1164, 'N78509', 'EWR', 'FLL', 156.0, 1065.0, 13.0, 29.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1337, 1329, 8.0, 1623, 1626, -3.0, 'UA', 424, 'N563UA', 'EWR', 'PBI', 148.0, 1023.0, 13.0, 29.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1338, 1329, 9.0, 1430, 1431, -1.0, 'EV', 4280, 'N14570', 'EWR', 'BWI', 39.0, 169.0, 13.0, 29.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1338, 1335, 3.0, 1609, 1633, -24.0, 'B6', 1161, 'N559JB', 'LGA', 'PBI', 132.0, 1035.0, 13.0, 35.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1340, 1345, -5.0, 1649, 1705, -16.0, 'AA', 117, 'N324AA', 'JFK', 'LAX', 342.0, 2475.0, 13.0, 45.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1340, 1325, 15.0, 1814, 1810, 4.0, 'B6', 705, 'N612JB', 'JFK', 'SJU', 188.0, 1598.0, 13.0, 25.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1340, 1300, 40.0, 1610, 1537, 33.0, 'DL', 781, 'N662DN', 'LGA', 'ATL', 118.0, 762.0, 13.0, 0.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1341, 1330, 11.0, 1708, 1705, 3.0, 'WN', 1078, 'N211WN', 'EWR', 'PHX', 309.0, 2133.0, 13.0, 30.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1342, 1341, 1.0, 1935, 1935, 0.0, 'UA', 15, 'N76064', 'EWR', 'HNL', 624.0, 4963.0, 13.0, 41.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1342, 1345, -3.0, 1617, 1647, -30.0, 'UA', 385, 'N444UA', 'EWR', 'IAH', 196.0, 1400.0, 13.0, 45.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1344, 1350, -6.0, 1510, 1518, -8.0, 'EV', 4171, 'N22971', 'EWR', 'MSN', 129.0, 799.0, 13.0, 50.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1344, 1350, -6.0, 1533, 1545, -12.0, 'MQ', 4577, 'N504MQ', 'LGA', 'CLT', 91.0, 544.0, 13.0, 50.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1345, 1350, -5.0, 1605, 1624, -19.0, 'B6', 615, 'N239JB', 'JFK', 'JAX', 124.0, 828.0, 13.0, 50.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1345, 1350, -5.0, 1607, 1628, -21.0, 'DL', 1705, 'N317NB', 'LGA', 'MSY', 171.0, 1183.0, 13.0, 50.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1345, 1350, -5.0, 1703, 1715, -12.0, 'US', 186, 'N675AW', 'EWR', 'PHX', 295.0, 2133.0, 13.0, 50.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1346, 1345, 1.0, 1632, 1656, -24.0, 'B6', 83, 'N632JB', 'JFK', 'SEA', 321.0, 2422.0, 13.0, 45.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1347, 1345, 2.0, 1659, 1705, -6.0, 'AA', 1073, 'N3BFAA', 'LGA', 'MIA', 147.0, 1096.0, 13.0, 45.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1350, 1320, 30.0, 1503, 1436, 27.0, 'EV', 4464, 'N11544', 'EWR', 'IAD', 47.0, 212.0, 13.0, 20.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1352, 1357, -5.0, 1545, 1556, -11.0, 'EV', 4370, 'N12126', 'EWR', 'CHS', 97.0, 628.0, 13.0, 57.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1352, 1400, -8.0, 1509, 1509, 0.0, 'US', 2177, 'N756US', 'LGA', 'DCA', 41.0, 214.0, 14.0, 0.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1353, 1345, 8.0, 1628, 1641, -13.0, 'B6', 1783, 'N621JB', 'JFK', 'MCO', 134.0, 944.0, 13.0, 45.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1353, 1355, -2.0, 1702, 1708, -6.0, 'DL', 2079, 'N354NW', 'LGA', 'FLL', 159.0, 1076.0, 13.0, 55.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1354, 1400, -6.0, 1458, 1503, -5.0, 'US', 2130, 'N945UW', 'LGA', 'BOS', 39.0, 184.0, 14.0, 0.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1356, 1359, -3.0, 1516, 1517, -1.0, 'EV', 5712, 'N830AS', 'JFK', 'IAD', 51.0, 228.0, 13.0, 59.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1358, 1400, -2.0, 1630, 1636, -6.0, 'DL', 2247, 'N680DA', 'LGA', 'ATL', 111.0, 762.0, 14.0, 0.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1400, 1405, -5.0, 1645, 1705, -20.0, 'B6', 63, 'N645JB', 'JFK', 'TPA', 142.0, 1005.0, 14.0, 5.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1402, 1416, -14.0, 1629, 1650, -21.0, 'FL', 349, 'N960AT', 'LGA', 'ATL', 120.0, 762.0, 14.0, 16.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1402, 1410, -8.0, 1551, 1555, -4.0, 'MQ', 4491, 'N730MQ', 'LGA', 'CLE', 75.0, 419.0, 14.0, 10.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1406, 1050, 196.0, 1703, 1405, 178.0, 'B6', 373, 'N593JB', 'LGA', 'FLL', 144.0, 1076.0, 10.0, 50.0, '2013-01-10T15:00:00Z'), #> (2013, 1, 10, 1407, 1355, 12.0, 1540, 1530, 10.0, 'WN', 348, 'N430WN', 'LGA', 'MDW', 119.0, 725.0, 13.0, 55.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1408, 1415, -7.0, 1511, 1526, -15.0, 'B6', 1010, 'N198JB', 'JFK', 'BOS', 42.0, 187.0, 14.0, 15.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1408, 1420, -12.0, 1512, 1550, -38.0, 'MQ', 3728, 'N8EGMQ', 'EWR', 'ORD', 109.0, 719.0, 14.0, 20.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1412, 1415, -3.0, 1621, 1638, -17.0, 'DL', 935, 'N361NB', 'EWR', 'ATL', 112.0, 746.0, 14.0, 15.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1413, 1357, 16.0, 1511, 1507, 4.0, 'EV', 4434, 'N15986', 'EWR', 'MHT', 40.0, 209.0, 13.0, 57.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1415, 1415, 0.0, 1618, 1622, -4.0, 'EV', 4687, 'N15980', 'EWR', 'CVG', 96.0, 569.0, 14.0, 15.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1416, 1420, -4.0, 1633, 1620, 13.0, 'MQ', 4588, 'N500MQ', 'LGA', 'MSP', 168.0, 1020.0, 14.0, 20.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1419, 1425, -6.0, 1640, 1630, 10.0, 'EV', 5164, 'N748EV', 'EWR', 'MSP', 175.0, 1008.0, 14.0, 25.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1419, 1418, 1.0, 1548, 1553, -5.0, 'UA', 1734, 'N17719', 'EWR', 'ORD', 125.0, 719.0, 14.0, 18.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1420, 1420, 0.0, 1705, 1713, -8.0, 'UA', 1618, 'N67134', 'EWR', 'TPA', 143.0, 997.0, 14.0, 20.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1422, 1430, -8.0, 1659, 1735, -36.0, 'AA', 883, 'N591AA', 'EWR', 'DFW', 195.0, 1372.0, 14.0, 30.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1425, 1435, -10.0, 1632, 1701, -29.0, 'DL', 1344, 'N340NB', 'LGA', 'MCI', 155.0, 1107.0, 14.0, 35.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1427, 1435, -8.0, 1716, 1748, -32.0, 'B6', 347, 'N317JB', 'JFK', 'SRQ', 152.0, 1041.0, 14.0, 35.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1427, 1430, -3.0, 1812, 1815, -3.0, 'DL', 2126, 'N727TW', 'JFK', 'SFO', 374.0, 2586.0, 14.0, 30.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1427, 1435, -8.0, 1546, 1559, -13.0, 'YV', 3750, 'N515MJ', 'LGA', 'IAD', 49.0, 229.0, 14.0, 35.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1430, 1435, -5.0, 1729, 1742, -13.0, 'DL', 1902, 'N302NB', 'LGA', 'PBI', 147.0, 1035.0, 14.0, 35.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1431, 1436, -5.0, 1533, 1543, -10.0, 'EV', 4372, 'N11187', 'EWR', 'DCA', 43.0, 199.0, 14.0, 36.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1431, 1429, 2.0, 1656, 1642, 14.0, 'DL', 1819, 'N914DL', 'LGA', 'MSP', 165.0, 1020.0, 14.0, 29.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1435, 1440, -5.0, 1600, 1614, -14.0, 'UA', 1493, 'N37263', 'EWR', 'CLE', 69.0, 404.0, 14.0, 40.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1437, 1439, -2.0, 1738, 1751, -13.0, 'UA', 1175, 'N77296', 'EWR', 'RSW', 164.0, 1068.0, 14.0, 39.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1438, 1445, -7.0, 1634, 1634, 0.0, 'EV', 4596, 'N11107', 'EWR', 'STL', 149.0, 872.0, 14.0, 45.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1440, 1440, 0.0, 1538, 1549, -11.0, 'UA', 717, 'N834UA', 'EWR', 'BOS', 42.0, 200.0, 14.0, 40.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1441, 1446, -5.0, 1747, 1757, -10.0, 'UA', 337, 'N441UA', 'LGA', 'IAH', 215.0, 1416.0, 14.0, 46.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1441, 1445, -4.0, 1639, 1647, -8.0, 'US', 1445, 'N189UW', 'LGA', 'CLT', 79.0, 544.0, 14.0, 45.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1442, 1442, 0.0, 1659, 1658, 1.0, 'EV', 4181, 'N13124', 'EWR', 'MCI', 177.0, 1092.0, 14.0, 42.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1442, 1445, -3.0, 1711, 1710, 1.0, 'MQ', 4669, 'N503MQ', 'LGA', 'ATL', 113.0, 762.0, 14.0, 45.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1443, 1445, -2.0, 1551, 1606, -15.0, '9E', 3452, 'N917XJ', 'JFK', 'BOS', 41.0, 187.0, 14.0, 45.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1445, 1450, -5.0, 1628, 1645, -17.0, 'MQ', 4172, 'N631MQ', 'JFK', 'CLE', 78.0, 425.0, 14.0, 50.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1446, 1415, 31.0, 1801, 1724, 37.0, 'B6', 377, 'N510JB', 'LGA', 'FLL', 158.0, 1076.0, 14.0, 15.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1447, 1447, 0.0, 1637, 1654, -17.0, 'EV', 4572, 'N26549', 'EWR', 'GSP', 89.0, 594.0, 14.0, 47.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1447, 1450, -3.0, 1614, 1640, -26.0, 'MQ', 4403, 'N856MQ', 'JFK', 'RDU', 71.0, 427.0, 14.0, 50.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1449, 1455, -6.0, 1753, 1825, -32.0, 'AA', 1769, 'N5FAAA', 'JFK', 'MIA', 150.0, 1089.0, 14.0, 55.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1449, 1452, -3.0, 1655, 1655, 0.0, 'DL', 1231, 'N967DL', 'LGA', 'DTW', 79.0, 502.0, 14.0, 52.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1450, 1455, -5.0, 1608, 1637, -29.0, '9E', 3318, 'N928XJ', 'JFK', 'BUF', 56.0, 301.0, 14.0, 55.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1450, 1440, 10.0, 1740, 1746, -6.0, 'UA', 1579, 'N12216', 'EWR', 'MIA', 152.0, 1085.0, 14.0, 40.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1450, 1455, -5.0, 1804, 1805, -1.0, 'UA', 473, 'N465UA', 'EWR', 'FLL', 175.0, 1065.0, 14.0, 55.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1451, 1500, -9.0, 1559, 1619, -20.0, 'US', 2179, 'N749US', 'LGA', 'DCA', 43.0, 214.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1452, 1456, -4.0, 1608, 1624, -16.0, '9E', 4357, 'N8797A', 'JFK', 'ORF', 51.0, 290.0, 14.0, 56.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1452, 1459, -7.0, 1610, 1631, -21.0, 'B6', 8, 'N592JB', 'JFK', 'BUF', 54.0, 301.0, 14.0, 59.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1453, 1500, -7.0, 1602, 1608, -6.0, 'US', 2132, 'N961UW', 'LGA', 'BOS', 41.0, 184.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1454, 1330, 84.0, 1726, 1617, 69.0, 'B6', 525, 'N267JB', 'EWR', 'MCO', 130.0, 937.0, 13.0, 30.0, '2013-01-10T18:00:00Z'), #> (2013, 1, 10, 1455, 1459, -4.0, 1605, 1625, -20.0, 'B6', 12, 'N197JB', 'JFK', 'SYR', 47.0, 209.0, 14.0, 59.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1455, 1500, -5.0, 1642, 1655, -13.0, 'MQ', 4429, 'N722MQ', 'LGA', 'CMH', 78.0, 479.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1456, 1455, 1.0, 1645, 1645, 0.0, 'AA', 337, 'N598AA', 'LGA', 'ORD', 119.0, 733.0, 14.0, 55.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1456, 1457, -1.0, 1815, 1823, -8.0, 'UA', 1642, 'N37255', 'EWR', 'SFO', 355.0, 2565.0, 14.0, 57.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1458, 1450, 8.0, 1739, 1755, -16.0, 'AA', 1813, 'N5FPAA', 'JFK', 'MCO', 133.0, 944.0, 14.0, 50.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1458, 1500, -2.0, 1805, 1825, -20.0, 'AA', 1925, 'N3CHAA', 'LGA', 'MIA', 148.0, 1096.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1458, 1500, -2.0, 1740, 1742, -2.0, 'DL', 2347, 'N687DL', 'LGA', 'ATL', 113.0, 762.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1459, 1509, -10.0, 1729, 1741, -12.0, 'EV', 3817, 'N16559', 'EWR', 'JAX', 125.0, 820.0, 15.0, 9.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1459, 1459, 0.0, 1755, 1757, -2.0, 'B6', 393, 'N565JB', 'LGA', 'MCO', 133.0, 950.0, 14.0, 59.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1459, 1500, -1.0, 1830, 1837, -7.0, 'DL', 963, 'N624AG', 'JFK', 'LAX', 350.0, 2475.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1500, 1500, 0.0, 1636, 1653, -17.0, 'US', 720, 'N555AY', 'EWR', 'CLT', 77.0, 529.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1501, 1504, -3.0, 1629, 1640, -11.0, 'EV', 4125, 'N16961', 'EWR', 'RDU', 70.0, 416.0, 15.0, 4.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1501, 1444, 17.0, 1806, 1802, 4.0, 'UA', 471, 'N826UA', 'EWR', 'AUS', 224.0, 1504.0, 14.0, 44.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1502, 1510, -8.0, 1659, 1655, 4.0, 'MQ', 4447, 'N711MQ', 'LGA', 'RDU', 68.0, 431.0, 15.0, 10.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1503, 1506, -3.0, 1624, 1641, -17.0, 'UA', 1702, 'N37273', 'EWR', 'ORD', 117.0, 719.0, 15.0, 6.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1504, 1507, -3.0, 1648, 1704, -16.0, 'EV', 4326, 'N15983', 'EWR', 'CLT', 84.0, 529.0, 15.0, 7.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1504, 1505, -1.0, 1629, 1637, -8.0, '9E', 3393, 'N605LR', 'JFK', 'DCA', 49.0, 213.0, 15.0, 5.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1504, 1510, -6.0, 1654, 1710, -16.0, 'MQ', 4579, 'N507MQ', 'LGA', 'CLT', 82.0, 544.0, 15.0, 10.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1506, 1505, 1.0, 1810, 1820, -10.0, 'AA', 759, 'N3FRAA', 'LGA', 'DFW', 209.0, 1389.0, 15.0, 5.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1506, 1444, 22.0, 1753, 1745, 8.0, 'B6', 141, 'N784JB', 'JFK', 'PBI', 141.0, 1028.0, 14.0, 44.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1506, 1505, 1.0, 1712, 1734, -22.0, 'UA', 745, 'N579UA', 'LGA', 'DEN', 214.0, 1620.0, 15.0, 5.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1506, 1506, 0.0, 1821, 1819, 2.0, 'UA', 1600, 'N29124', 'EWR', 'LAX', 345.0, 2454.0, 15.0, 6.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1506, 1510, -4.0, 1744, 1801, -17.0, 'UA', 315, 'N574UA', 'EWR', 'MCO', 131.0, 937.0, 15.0, 10.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1510, 1510, 0.0, 1647, 1650, -3.0, 'WN', 323, 'N715SW', 'LGA', 'MKE', 124.0, 738.0, 15.0, 10.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1510, 1510, 0.0, 1737, 1745, -8.0, 'MQ', 4309, 'N636MQ', 'JFK', 'IND', 113.0, 665.0, 15.0, 10.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1511, 1517, -6.0, 1758, 1816, -18.0, 'B6', 537, 'N766JB', 'EWR', 'TPA', 139.0, 997.0, 15.0, 17.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1511, 1515, -4.0, 1649, 1700, -11.0, 'MQ', 4333, 'N635MQ', 'JFK', 'PIT', 70.0, 340.0, 15.0, 15.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1512, 1520, -8.0, 1625, 1654, -29.0, '9E', 4105, 'N8907A', 'JFK', 'IAD', 47.0, 228.0, 15.0, 20.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1513, 1459, 14.0, 1736, 1737, -1.0, 'B6', 119, 'N775JB', 'JFK', 'MSY', 179.0, 1182.0, 14.0, 59.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1514, 1520, -6.0, 1641, 1644, -3.0, 'EV', 4581, 'N13994', 'EWR', 'MKE', 124.0, 725.0, 15.0, 20.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1515, 1450, 25.0, 1704, 1645, 19.0, 'EV', 4381, 'N13913', 'EWR', 'DTW', 89.0, 488.0, 14.0, 50.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1515, 1520, -5.0, 1826, 1842, -16.0, 'DL', 2115, 'N338NW', 'LGA', 'MIA', 148.0, 1096.0, 15.0, 20.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1516, 1522, -6.0, 1744, 1727, 17.0, 'EV', 4576, 'N12552', 'EWR', 'GRR', 98.0, 605.0, 15.0, 22.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1518, 1502, 16.0, 1624, 1615, 9.0, 'EV', 4571, 'N36915', 'EWR', 'PWM', 48.0, 284.0, 15.0, 2.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1518, 1525, -7.0, 1633, 1655, -22.0, 'MQ', 3823, 'N528MQ', 'JFK', 'DCA', 52.0, 213.0, 15.0, 25.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1518, 1515, 3.0, 1831, 1805, 26.0, 'UA', 53, 'N66056', 'EWR', 'IAH', 218.0, 1400.0, 15.0, 15.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1520, 1530, -10.0, 1707, 1711, -4.0, '9E', 3719, 'N8808H', 'LGA', 'RIC', 51.0, 292.0, 15.0, 30.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1521, 1530, -9.0, 1729, 1725, 4.0, 'AA', 2223, 'N476AA', 'LGA', 'STL', 136.0, 888.0, 15.0, 30.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1522, 1527, -5.0, 1644, 1700, -16.0, 'EV', 3835, 'N48901', 'EWR', 'BNA', 116.0, 748.0, 15.0, 27.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1522, 1530, -8.0, 1727, 1734, -7.0, 'US', 1665, 'N725UW', 'LGA', 'CLT', 81.0, 544.0, 15.0, 30.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1523, 1528, -5.0, 1641, 1640, 1.0, 'EV', 3267, 'N16183', 'EWR', 'ORF', 47.0, 284.0, 15.0, 28.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1523, 1535, -12.0, 1757, 1743, 14.0, 'EV', 4352, 'N17169', 'EWR', 'CVG', 94.0, 569.0, 15.0, 35.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1524, 1530, -6.0, 1856, 1855, 1.0, 'AA', 1039, 'N3DWAA', 'JFK', 'FLL', 155.0, 1069.0, 15.0, 30.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1525, 1530, -5.0, 1800, 1805, -5.0, 'MQ', 4525, 'N736MQ', 'LGA', 'XNA', 169.0, 1147.0, 15.0, 30.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1525, 1429, 56.0, 1851, 1754, 57.0, 'UA', 257, 'N555UA', 'JFK', 'SFO', 356.0, 2586.0, 14.0, 29.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1525, 900, 385.0, 1713, 1039, 394.0, 'UA', 544, 'N419UA', 'LGA', 'ORD', 123.0, 733.0, 9.0, 0.0, '2013-01-10T14:00:00Z'), #> (2013, 1, 10, 1526, 1530, -4.0, 1908, 1910, -2.0, 'AA', 85, 'N395AA', 'JFK', 'SFO', 377.0, 2586.0, 15.0, 30.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1527, 1530, -3.0, 1711, 1725, -14.0, 'MQ', 4146, 'N623MQ', 'JFK', 'CMH', 80.0, 483.0, 15.0, 30.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1531, 1535, -4.0, 1845, 1850, -5.0, 'AA', 763, 'N3BSAA', 'LGA', 'DFW', 200.0, 1389.0, 15.0, 35.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1532, 1545, -13.0, 1652, 1703, -11.0, '9E', 3635, 'N8688C', 'JFK', 'BWI', 42.0, 184.0, 15.0, 45.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1536, 1540, -4.0, 1703, 1743, -40.0, '9E', 3523, 'N912XJ', 'JFK', 'ORD', 122.0, 740.0, 15.0, 40.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1536, 1540, -4.0, 1704, 1716, -12.0, '9E', 4178, 'N823AY', 'JFK', 'ROC', 53.0, 264.0, 15.0, 40.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1536, 1540, -4.0, 1851, 1909, -18.0, 'DL', 2027, 'N323US', 'JFK', 'FLL', 168.0, 1069.0, 15.0, 40.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1536, 1545, -9.0, 1729, 1744, -15.0, 'UA', 1710, 'N24702', 'LGA', 'CLE', 68.0, 419.0, 15.0, 45.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1537, 1545, -8.0, 1839, 1850, -11.0, 'DL', 2377, 'N370NW', 'LGA', 'MCO', 134.0, 950.0, 15.0, 45.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1539, 1529, 10.0, 1835, 1837, -2.0, 'UA', 1624, 'N24212', 'EWR', 'FLL', 156.0, 1065.0, 15.0, 29.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1540, 1540, 0.0, 1906, 1900, 6.0, 'UA', 161, 'N41140', 'JFK', 'LAX', 351.0, 2475.0, 15.0, 40.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1545, 1545, 0.0, 1846, 1910, -24.0, 'AA', 133, 'N323AA', 'JFK', 'LAX', 335.0, 2475.0, 15.0, 45.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1545, 1548, -3.0, 1817, 1830, -13.0, 'DL', 95, 'N3755D', 'JFK', 'ATL', 116.0, 760.0, 15.0, 48.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1546, 1550, -4.0, 1901, 1925, -24.0, 'DL', 1773, 'N3754A', 'JFK', 'SLC', 285.0, 1990.0, 15.0, 50.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1546, 1545, 1.0, 1828, 1815, 13.0, 'DL', 1942, 'N326NB', 'EWR', 'ATL', 117.0, 746.0, 15.0, 45.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1548, 1550, -2.0, 2030, 2050, -20.0, 'AA', 1635, 'N630AA', 'JFK', 'SJU', 186.0, 1598.0, 15.0, 50.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1550, 1550, 0.0, 1805, 1820, -15.0, '9E', 3355, 'N925XJ', 'JFK', 'MSP', 162.0, 1029.0, 15.0, 50.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1550, 1555, -5.0, 1855, 1907, -12.0, 'DL', 1695, 'N331NW', 'LGA', 'TPA', 146.0, 1010.0, 15.0, 55.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1550, 1555, -5.0, 1750, 1817, -27.0, 'DL', 1771, 'N336NB', 'JFK', 'DTW', 85.0, 509.0, 15.0, 55.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1552, 1555, -3.0, 1732, 1746, -14.0, 'B6', 1053, 'N184JB', 'JFK', 'PIT', 71.0, 340.0, 15.0, 55.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1552, 1549, 3.0, 1657, 1705, -8.0, 'UA', 1116, 'N33289', 'EWR', 'BOS', 41.0, 200.0, 15.0, 49.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1553, 1600, -7.0, 1848, 1910, -22.0, 'B6', 157, 'N590JB', 'JFK', 'MCO', 134.0, 944.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1553, 1550, 3.0, 1658, 1710, -12.0, 'WN', 4215, 'N700GS', 'EWR', 'MDW', 112.0, 711.0, 15.0, 50.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1553, 1600, -7.0, 1706, 1717, -11.0, 'US', 2181, 'N747UW', 'LGA', 'DCA', 41.0, 214.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1554, 1605, -11.0, 1715, 1754, -39.0, '9E', 3459, 'N904XJ', 'JFK', 'BNA', 114.0, 765.0, 16.0, 5.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1555, 1610, -15.0, 1744, 1756, -12.0, 'EV', 5486, 'N709EV', 'LGA', 'PIT', 54.0, 335.0, 16.0, 10.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1555, 1445, 70.0, 1844, 1745, 59.0, 'B6', 153, 'N657JB', 'JFK', 'MCO', 134.0, 944.0, 14.0, 45.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1555, 1555, 0.0, 2037, 2056, -19.0, 'B6', 703, 'N570JB', 'JFK', 'SJU', 188.0, 1598.0, 15.0, 55.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1555, 1600, -5.0, 1858, 1933, -35.0, 'DL', 161, 'N937DL', 'JFK', 'MIA', 152.0, 1089.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1556, 1600, -4.0, 1841, 1840, 1.0, 'DL', 847, 'N665DN', 'LGA', 'ATL', 117.0, 762.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1556, 1600, -4.0, 1836, 1834, 2.0, 'FL', 620, 'N969AT', 'LGA', 'ATL', 118.0, 762.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1556, 1600, -4.0, 1714, 1712, 2.0, 'US', 2134, 'N949UW', 'LGA', 'BOS', 43.0, 184.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1557, 1545, 12.0, 1914, 1857, 17.0, 'UA', 1200, 'N78501', 'EWR', 'SAN', 358.0, 2425.0, 15.0, 45.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1558, 1600, -2.0, 1805, 1850, -45.0, 'DL', 1331, 'N3743H', 'JFK', 'DEN', 220.0, 1626.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1558, 1605, -7.0, 1751, 1750, 1.0, 'MQ', 4415, 'N725MQ', 'LGA', 'RDU', 75.0, 431.0, 16.0, 5.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1558, 1600, -2.0, 1715, 1736, -21.0, 'UA', 630, 'N824UA', 'EWR', 'ORD', 120.0, 719.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1559, 1600, -1.0, 1717, 1732, -15.0, '9E', 3453, 'N601LR', 'JFK', 'BOS', 39.0, 187.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1559, 1600, -1.0, 1844, 1915, -31.0, 'AA', 565, 'N3DPAA', 'JFK', 'DFW', 196.0, 1391.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1559, 1600, -1.0, 1905, 1903, 2.0, 'B6', 985, 'N715JB', 'LGA', 'TPA', 146.0, 1010.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1559, 1605, -6.0, 1834, 1859, -25.0, 'UA', 559, 'N434UA', 'EWR', 'MCO', 130.0, 937.0, 16.0, 5.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1600, 1600, 0.0, 1848, 1912, -24.0, 'DL', 4, 'N37700', 'JFK', 'MCO', 134.0, 944.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1601, 1605, -4.0, 1856, 1925, -29.0, '9E', 3325, 'N919XJ', 'JFK', 'DFW', 202.0, 1391.0, 16.0, 5.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1601, 1555, 6.0, 1853, 1846, 7.0, 'UA', 1550, 'N78506', 'EWR', 'LAS', 329.0, 2227.0, 15.0, 55.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1602, 1555, 7.0, 1731, 1749, -18.0, 'B6', 917, 'N306JB', 'JFK', 'ORD', 117.0, 740.0, 15.0, 55.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1603, 1600, 3.0, 1927, 1925, 2.0, 'AA', 1467, 'N3JJAA', 'LGA', 'MIA', 154.0, 1096.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1604, 1610, -6.0, 1841, 1917, -36.0, 'DL', 91, 'N3746H', 'JFK', 'LAS', 312.0, 2248.0, 16.0, 10.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1604, 1445, 79.0, 1813, 1705, 68.0, 'UA', 407, 'N526UA', 'EWR', 'DEN', 223.0, 1605.0, 14.0, 45.0, '2013-01-10T19:00:00Z'), #> (2013, 1, 10, 1605, 1610, -5.0, 1748, 1800, -12.0, 'AA', 341, 'N4XMAA', 'LGA', 'ORD', 123.0, 733.0, 16.0, 10.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1610, 1615, -5.0, 1835, 1831, 4.0, 'DL', 1619, 'N344NW', 'LGA', 'MSP', 168.0, 1020.0, 16.0, 15.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1611, 1620, -9.0, 1745, 1750, -5.0, 'MQ', 4622, 'N526MQ', 'LGA', 'BNA', 115.0, 764.0, 16.0, 20.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1612, 1615, -3.0, 1843, 1845, -2.0, 'WN', 161, 'N423WN', 'EWR', 'DEN', 235.0, 1605.0, 16.0, 15.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1614, 1615, -1.0, 1754, 1815, -21.0, '9E', 3387, 'N935XJ', 'JFK', 'RDU', 62.0, 427.0, 16.0, 15.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1614, 1605, 9.0, 1926, 1944, -18.0, 'DL', 1508, 'N952DL', 'JFK', 'RSW', 163.0, 1074.0, 16.0, 5.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1615, 1625, -10.0, 1901, 1855, 6.0, 'MQ', 4661, 'N0EGMQ', 'LGA', 'ATL', 124.0, 762.0, 16.0, 25.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1617, 1602, 15.0, 1748, 1722, 26.0, 'YV', 3771, 'N505MJ', 'LGA', 'IAD', 46.0, 229.0, 16.0, 2.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1619, 1540, 39.0, 1831, 1744, 47.0, 'EV', 4667, 'N10156', 'EWR', 'MSP', 175.0, 1008.0, 15.0, 40.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1620, 1616, 4.0, 1804, 1813, -9.0, 'EV', 4092, 'N27190', 'EWR', 'DAY', 88.0, 533.0, 16.0, 16.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1621, 1630, -9.0, 1817, 1838, -21.0, 'DL', 2231, 'N373NW', 'LGA', 'DTW', 87.0, 502.0, 16.0, 30.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1621, 1620, 1.0, 1930, 2003, -33.0, 'US', 35, 'N553UW', 'JFK', 'PHX', 288.0, 2153.0, 16.0, 20.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1622, 1625, -3.0, 1928, 1954, -26.0, 'B6', 675, 'N779JB', 'JFK', 'LAX', 343.0, 2475.0, 16.0, 25.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1625, 1628, -3.0, 1729, 1735, -6.0, 'EV', 4588, 'N14952', 'EWR', 'MHT', 40.0, 209.0, 16.0, 28.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1625, 1633, -8.0, 1827, 1836, -9.0, 'EV', 4411, 'N14904', 'EWR', 'MEM', 149.0, 946.0, 16.0, 33.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1626, 1635, -9.0, 1828, 1856, -28.0, 'EV', 3805, 'N21537', 'EWR', 'SAV', 110.0, 708.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1626, 1630, -4.0, 1949, 2020, -31.0, 'VX', 27, 'N855VA', 'JFK', 'SFO', 359.0, 2586.0, 16.0, 30.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1626, 1600, 26.0, 1825, 1820, 5.0, 'MQ', 3985, 'N620MQ', 'JFK', 'CVG', 97.0, 589.0, 16.0, 0.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1627, 1629, -2.0, 1911, 1931, -20.0, 'B6', 369, 'N627JB', 'LGA', 'PBI', 140.0, 1035.0, 16.0, 29.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1629, 1640, -11.0, 1858, 1850, 8.0, 'MQ', 4540, 'N734MQ', 'LGA', 'DTW', 108.0, 502.0, 16.0, 40.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1629, 1629, 0.0, 1931, 2005, -34.0, 'UA', 1078, 'N76528', 'EWR', 'SAT', 224.0, 1569.0, 16.0, 29.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1630, 1635, -5.0, 1941, 2001, -20.0, 'US', 656, 'N657AW', 'EWR', 'PHX', 292.0, 2133.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1633, 1635, -2.0, 1926, 1945, -19.0, 'WN', 891, 'N936WN', 'EWR', 'HOU', 214.0, 1411.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1634, 1635, -1.0, 1815, 1841, -26.0, 'B6', 1085, 'N353JB', 'JFK', 'CLT', 81.0, 541.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1635, 1635, 0.0, 1932, 1952, -20.0, 'B6', 139, 'N274JB', 'JFK', 'RSW', 161.0, 1074.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1637, 1645, -8.0, 1849, 1906, -17.0, '9E', 4027, 'N825AY', 'EWR', 'CVG', 102.0, 569.0, 16.0, 45.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1638, 1640, -2.0, 1937, 1955, -18.0, 'AA', 773, 'N4YGAA', 'LGA', 'DFW', 202.0, 1389.0, 16.0, 40.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1640, 1645, -5.0, 1847, 1900, -13.0, 'DL', 1473, 'N347NB', 'LGA', 'MEM', 148.0, 963.0, 16.0, 45.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1641, 1640, 1.0, 1814, 1816, -2.0, 'EV', 4485, 'N29906', 'EWR', 'RDU', 68.0, 416.0, 16.0, 40.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1641, 1645, -4.0, 1829, 1853, -24.0, 'EV', 4997, 'N612QX', 'EWR', 'DTW', 87.0, 488.0, 16.0, 45.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1641, 1635, 6.0, 1817, 1816, 1.0, 'UA', 1638, 'N37437', 'EWR', 'CLE', 73.0, 404.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1642, 1645, -3.0, 1939, 2005, -26.0, 'AA', 181, 'N319AA', 'JFK', 'LAX', 340.0, 2475.0, 16.0, 45.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1645, 1635, 10.0, 1919, 1907, 12.0, 'EV', 4705, 'N14543', 'EWR', 'ATL', 123.0, 746.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1645, 1640, 5.0, 1837, 1835, 2.0, 'WN', 372, 'N736SA', 'LGA', 'STL', 137.0, 888.0, 16.0, 40.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1646, 1659, -13.0, 2000, 2046, -46.0, '9E', 3375, 'N902XJ', 'JFK', 'SAT', 221.0, 1587.0, 16.0, 59.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1646, 1635, 11.0, 1752, 1750, 2.0, 'B6', 1176, 'N231JB', 'EWR', 'BOS', 44.0, 200.0, 16.0, 35.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1647, 1650, -3.0, 1928, 1936, -8.0, 'UA', 733, 'N453UA', 'EWR', 'LAS', 319.0, 2227.0, 16.0, 50.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1649, 1610, 39.0, 1733, 1732, 1.0, '9E', 3689, 'N800AY', 'JFK', 'PHL', 26.0, 94.0, 16.0, 10.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1649, 1655, -6.0, 1958, 2029, -31.0, 'DL', 706, 'N318NB', 'JFK', 'AUS', 221.0, 1521.0, 16.0, 55.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1649, 1650, -1.0, 1811, 1826, -15.0, 'UA', 464, 'N815UA', 'EWR', 'ORD', 119.0, 719.0, 16.0, 50.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1650, 1655, -5.0, 2007, 2035, -28.0, 'VX', 413, 'N640VA', 'JFK', 'LAX', 358.0, 2475.0, 16.0, 55.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1652, 1700, -8.0, 1757, 1840, -43.0, 'MQ', 4323, 'N922MQ', 'JFK', 'ORF', 47.0, 290.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1653, 1700, -7.0, 1934, 1955, -21.0, 'AA', 257, 'N3JBAA', 'JFK', 'LAS', 322.0, 2248.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1653, 1700, -7.0, 1814, 1817, -3.0, 'US', 2183, 'N770UW', 'LGA', 'DCA', 43.0, 214.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1655, 1700, -5.0, 1948, 2006, -18.0, 'B6', 509, 'N597JB', 'EWR', 'FLL', 145.0, 1065.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1655, 1700, -5.0, 2125, 2204, -39.0, 'DL', 329, 'N388DA', 'JFK', 'SJU', 185.0, 1598.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1655, 1700, -5.0, 1810, 1813, -3.0, 'US', 2136, 'N952UW', 'LGA', 'BOS', 42.0, 184.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1656, 1700, -4.0, 1924, 1950, -26.0, 'AA', 575, 'N628AA', 'JFK', 'EGE', 247.0, 1747.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1656, 1700, -4.0, 1925, 1935, -10.0, 'DL', 2042, 'N307DQ', 'EWR', 'ATL', 116.0, 746.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1657, 1630, 27.0, 1831, 1807, 24.0, 'EV', 4702, 'N15985', 'EWR', 'GSO', 74.0, 445.0, 16.0, 30.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1658, 1700, -2.0, 2007, 2036, -29.0, 'DL', 127, 'N718TW', 'JFK', 'LAX', 344.0, 2475.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1659, 1700, -1.0, 2030, 2049, -19.0, 'DL', 31, 'N723TW', 'JFK', 'SFO', 368.0, 2586.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1659, 1705, -6.0, 1800, 1830, -30.0, 'MQ', 4410, 'N840MQ', 'JFK', 'DCA', 39.0, 213.0, 17.0, 5.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1700, 1705, -5.0, 1950, 2010, -20.0, 'AA', 1905, 'N599AA', 'EWR', 'DFW', 194.0, 1372.0, 17.0, 5.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1701, 1619, 42.0, 1808, 1726, 42.0, 'EV', 4299, 'N12921', 'EWR', 'DCA', 40.0, 199.0, 16.0, 19.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1701, 1703, -2.0, 1802, 1810, -8.0, 'EV', 4373, 'N13995', 'EWR', 'DCA', 38.0, 199.0, 17.0, 3.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1701, 1655, 6.0, 2020, 2015, 5.0, 'B6', 359, 'N579JB', 'JFK', 'BUR', 356.0, 2465.0, 16.0, 55.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1703, 1705, -2.0, 1913, 1905, 8.0, 'WN', 440, 'N486WN', 'EWR', 'STL', 135.0, 872.0, 17.0, 5.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1705, 1708, -3.0, 2003, 2023, -20.0, 'B6', 15, 'N249JB', 'JFK', 'FLL', 155.0, 1069.0, 17.0, 8.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1705, 1706, -1.0, 1823, 1834, -11.0, 'B6', 36, 'N624JB', 'JFK', 'ROC', 50.0, 264.0, 17.0, 6.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1706, 1700, 6.0, 1944, 1943, 1.0, 'DL', 1499, 'N655DL', 'LGA', 'ATL', 115.0, 762.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1706, 1710, -4.0, 2034, 2036, -2.0, 'UA', 1739, 'N12125', 'EWR', 'SFO', 361.0, 2565.0, 17.0, 10.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1707, 1710, -3.0, 1858, 1912, -14.0, 'US', 894, 'N179UW', 'LGA', 'CLT', 81.0, 544.0, 17.0, 10.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1708, 1550, 78.0, 1913, 1826, 47.0, '9E', 3427, 'N931XJ', 'JFK', 'IND', 108.0, 665.0, 15.0, 50.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1708, 1715, -7.0, 2013, 2040, -27.0, 'DL', 503, 'N3771K', 'JFK', 'SAN', 345.0, 2446.0, 17.0, 15.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1710, 1555, 75.0, 1926, 1810, 76.0, 'EV', 3820, 'N13964', 'EWR', 'SDF', 105.0, 642.0, 15.0, 55.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, 1710, 1715, -5.0, 2010, 2019, -9.0, 'DL', 1585, 'N949DL', 'LGA', 'MCO', 136.0, 950.0, 17.0, 15.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1711, 1710, 1.0, 1807, 1820, -13.0, 'EV', 4316, 'N10575', 'EWR', 'BWI', 34.0, 169.0, 17.0, 10.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1711, 1720, -9.0, 1902, 1910, -8.0, 'AA', 345, 'N4WWAA', 'LGA', 'ORD', 123.0, 733.0, 17.0, 20.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1714, 1700, 14.0, 1852, 1849, 3.0, 'EV', 4202, 'N16976', 'EWR', 'STL', 137.0, 872.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1714, 1720, -6.0, 2014, 2040, -26.0, 'AA', 1999, 'N5DEAA', 'EWR', 'MIA', 146.0, 1085.0, 17.0, 20.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1715, 1720, -5.0, 1910, 1905, 5.0, 'MQ', 4479, 'N719MQ', 'LGA', 'RDU', 73.0, 431.0, 17.0, 20.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1716, 1720, -4.0, 1851, 1915, -24.0, 'AA', 1351, 'N3FAAA', 'JFK', 'ORD', 126.0, 740.0, 17.0, 20.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1717, 1720, -3.0, 2017, 2033, -16.0, 'DL', 1779, 'N330NW', 'LGA', 'FLL', 149.0, 1076.0, 17.0, 20.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1719, 1725, -6.0, 1836, 1855, -19.0, 'MQ', 4255, 'N659MQ', 'JFK', 'BNA', 118.0, 765.0, 17.0, 25.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1719, 1705, 14.0, 2035, 2015, 20.0, 'UA', 1259, 'N24715', 'LGA', 'IAH', 222.0, 1416.0, 17.0, 5.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1719, 1719, 0.0, 1950, 1945, 5.0, 'UA', 509, 'N535UA', 'LGA', 'DEN', 225.0, 1620.0, 17.0, 19.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1719, 1725, -6.0, 2058, 2050, 8.0, 'UA', 512, 'N508UA', 'JFK', 'SFO', 347.0, 2586.0, 17.0, 25.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1720, 1725, -5.0, 2023, 2040, -17.0, 'AA', 145, 'N3CWAA', 'JFK', 'SAN', 346.0, 2446.0, 17.0, 25.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1721, 1725, -4.0, 1925, 1933, -8.0, 'EV', 4323, 'N14568', 'EWR', 'CVG', 102.0, 569.0, 17.0, 25.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1721, 1725, -4.0, 2002, 2017, -15.0, 'UA', 1109, 'N14102', 'EWR', 'MCO', 137.0, 937.0, 17.0, 25.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1722, 1729, -7.0, 1848, 1902, -14.0, 'EV', 4480, 'N12142', 'EWR', 'PIT', 60.0, 319.0, 17.0, 29.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1724, 1729, -5.0, 2029, 2046, -17.0, 'DL', 1185, 'N3740C', 'EWR', 'SLC', 281.0, 1969.0, 17.0, 29.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1726, 1735, -9.0, 1901, 1925, -24.0, 'WN', 408, 'N963WN', 'LGA', 'BNA', 115.0, 764.0, 17.0, 35.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1726, 1730, -4.0, 2005, 2004, 1.0, 'FL', 623, 'N318AT', 'LGA', 'ATL', 117.0, 762.0, 17.0, 30.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1726, 1730, -4.0, 1911, 1923, -12.0, 'US', 449, 'N651AW', 'EWR', 'CLT', 80.0, 529.0, 17.0, 30.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1727, 1734, -7.0, 1840, 1854, -14.0, 'B6', 74, 'N556JB', 'JFK', 'BTV', 46.0, 266.0, 17.0, 34.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1730, 1730, 0.0, 2001, 1957, 4.0, 'F9', 837, 'N216FR', 'LGA', 'DEN', 232.0, 1620.0, 17.0, 30.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1730, 1659, 31.0, 1844, 1822, 22.0, 'UA', 531, 'N435UA', 'EWR', 'BOS', 43.0, 200.0, 16.0, 59.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1731, 1655, 36.0, 2050, 2010, 40.0, 'B6', 185, 'N649JB', 'JFK', 'SAN', 352.0, 2446.0, 16.0, 55.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1733, 1725, 8.0, 2010, 2023, -13.0, 'UA', 1134, 'N29129', 'EWR', 'IAH', 193.0, 1400.0, 17.0, 25.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1733, 1727, 6.0, 2014, 2049, -35.0, 'UA', 1593, 'N77525', 'EWR', 'PDX', 314.0, 2434.0, 17.0, 27.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1735, 1730, 5.0, 1901, 1855, 6.0, 'WN', 216, 'N231WN', 'EWR', 'MDW', 115.0, 711.0, 17.0, 30.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1736, 1727, 9.0, 2038, 2038, 0.0, 'UA', 738, 'N466UA', 'EWR', 'SEA', 316.0, 2402.0, 17.0, 27.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1738, 1729, 9.0, 2033, 2049, -16.0, 'AA', 543, 'N351AA', 'JFK', 'MIA', 150.0, 1089.0, 17.0, 29.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1738, 1745, -7.0, 1939, 1953, -14.0, 'DL', 2331, 'N909DE', 'LGA', 'DTW', 84.0, 502.0, 17.0, 45.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1738, 1745, -7.0, 1957, 2020, -23.0, 'MQ', 4413, 'N723MQ', 'LGA', 'XNA', 165.0, 1147.0, 17.0, 45.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1738, 1700, 38.0, 1915, 1839, 36.0, 'UA', 689, 'N813UA', 'LGA', 'ORD', 117.0, 733.0, 17.0, 0.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1740, 1730, 10.0, 1944, 1936, 8.0, 'EV', 4382, 'N19966', 'EWR', 'DTW', 85.0, 488.0, 17.0, 30.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1740, 1730, 10.0, 2033, 2023, 10.0, 'UA', 1637, 'N37293', 'EWR', 'TPA', 134.0, 997.0, 17.0, 30.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1742, 1745, -3.0, 2035, 2055, -20.0, 'AA', 785, 'N3ERAA', 'LGA', 'DFW', 200.0, 1389.0, 17.0, 45.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1743, 1745, -2.0, 2103, 2120, -17.0, 'AA', 177, 'N320AA', 'JFK', 'SFO', 355.0, 2586.0, 17.0, 45.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1745, 1745, 0.0, 2049, 2117, -28.0, 'DL', 1394, 'N3745B', 'JFK', 'PDX', 332.0, 2454.0, 17.0, 45.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1748, 1753, -5.0, 2104, 2105, -1.0, 'UA', 535, 'N510UA', 'JFK', 'LAX', 343.0, 2475.0, 17.0, 53.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1750, 1750, 0.0, 2115, 2102, 13.0, 'UA', 1228, 'N16713', 'EWR', 'SAN', 352.0, 2425.0, 17.0, 50.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1751, 1710, 41.0, 2100, 2015, 45.0, 'AA', 695, 'N3CJAA', 'JFK', 'AUS', 217.0, 1521.0, 17.0, 10.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1753, 1755, -2.0, 2033, 2109, -36.0, 'B6', 989, 'N587JB', 'JFK', 'FLL', 137.0, 1069.0, 17.0, 55.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1753, 1800, -7.0, 1905, 1913, -8.0, 'US', 2138, 'N945UW', 'LGA', 'BOS', 39.0, 184.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1754, 1745, 9.0, 2051, 2042, 9.0, 'B6', 547, 'N589JB', 'EWR', 'PBI', 137.0, 1023.0, 17.0, 45.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1754, 1714, 40.0, 2137, 2030, 67.0, 'UA', 250, 'N840UA', 'EWR', 'LAX', 357.0, 2454.0, 17.0, 14.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1755, 1735, 20.0, 1925, 1922, 3.0, 'B6', 1111, 'N228JB', 'JFK', 'RDU', 67.0, 427.0, 17.0, 35.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1756, 1800, -4.0, 1854, 1915, -21.0, 'B6', 1016, 'N337JB', 'JFK', 'BOS', 34.0, 187.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1756, 1800, -4.0, 2030, 2058, -28.0, 'B6', 9, 'N651JB', 'JFK', 'MCO', 127.0, 944.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1756, 1800, -4.0, 1916, 1913, 3.0, 'US', 2185, 'N756US', 'LGA', 'DCA', 46.0, 214.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1757, 1800, -3.0, 2040, 2043, -3.0, 'DL', 1047, 'N618DL', 'LGA', 'ATL', 116.0, 762.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1757, 1800, -3.0, 1911, 1910, 1.0, 'WN', 808, 'N773SA', 'EWR', 'BWI', 35.0, 169.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1757, 1810, -13.0, 1946, 1945, 1.0, 'MQ', 4484, 'N737MQ', 'LGA', 'BNA', 117.0, 764.0, 18.0, 10.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1759, 1722, 37.0, 1929, 1844, 45.0, 'EV', 4300, 'N15973', 'EWR', 'RIC', 50.0, 277.0, 17.0, 22.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1759, 1805, -6.0, 2005, 1955, 10.0, 'MQ', 4626, 'N515MQ', 'LGA', 'CMH', 77.0, 479.0, 18.0, 5.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1800, 1800, 0.0, 2115, 2104, 11.0, 'UA', 1221, 'N23708', 'EWR', 'DFW', 213.0, 1372.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1801, 1619, 102.0, 1923, 1723, 120.0, 'EV', 4271, 'N14148', 'EWR', 'ALB', 32.0, 143.0, 16.0, 19.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1802, 1758, 4.0, 1943, 1936, 7.0, 'UA', 1139, 'N76508', 'EWR', 'ORD', 115.0, 719.0, 17.0, 58.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1804, 1705, 59.0, 2100, 2008, 52.0, 'B6', 143, 'N585JB', 'JFK', 'PBI', 145.0, 1028.0, 17.0, 5.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1804, 1810, -6.0, 2132, 2104, 28.0, 'UA', 812, 'N803UA', 'EWR', 'LAS', 334.0, 2227.0, 18.0, 10.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1805, 1807, -2.0, 2122, 2128, -6.0, 'B6', 217, 'N605JB', 'JFK', 'LGB', 350.0, 2465.0, 18.0, 7.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1805, 1810, -5.0, 2139, 2142, -3.0, 'B6', 173, 'N563JB', 'JFK', 'SJC', 361.0, 2569.0, 18.0, 10.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1806, 1759, 7.0, 2027, 2014, 13.0, 'EV', 4397, 'N14173', 'EWR', 'MCI', 151.0, 1092.0, 17.0, 59.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1806, 1815, -9.0, 2017, 2026, -9.0, 'DL', 2019, 'N351NW', 'LGA', 'MSP', 155.0, 1020.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1807, 1810, -3.0, 2109, 2130, -21.0, 'AA', 1611, 'N3JWAA', 'LGA', 'MIA', 151.0, 1096.0, 18.0, 10.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1807, 1810, -3.0, 2158, 2150, 8.0, 'UA', 979, 'N410UA', 'EWR', 'PHX', 305.0, 2133.0, 18.0, 10.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1809, 1810, -1.0, 2041, 2037, 4.0, '9E', 3542, 'N913XJ', 'JFK', 'MSP', 172.0, 1029.0, 18.0, 10.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1809, 1815, -6.0, 1927, 1952, -25.0, '9E', 4277, 'N8506C', 'JFK', 'ORF', 48.0, 290.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1810, 1815, -5.0, 1921, 1958, -37.0, '9E', 4019, 'N8444F', 'JFK', 'RIC', 50.0, 288.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1811, 1820, -9.0, 2149, 2150, -1.0, 'AA', 119, 'N3DHAA', 'EWR', 'LAX', 345.0, 2454.0, 18.0, 20.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1811, 1815, -4.0, 2111, 2130, -19.0, 'AS', 7, 'N402AS', 'EWR', 'SEA', 313.0, 2402.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1813, 1815, -2.0, 2058, 2050, 8.0, 'DL', 926, 'N304DQ', 'EWR', 'ATL', 117.0, 746.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1814, 1815, -1.0, 2105, 2032, 33.0, 'EV', 5054, 'N761ND', 'EWR', 'MSP', 174.0, 1008.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1814, 1820, -6.0, 2100, 2115, -15.0, 'B6', 711, 'N646JB', 'JFK', 'LAS', 318.0, 2248.0, 18.0, 20.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1815, 1800, 15.0, 2012, 2006, 6.0, 'US', 373, 'N523UW', 'JFK', 'CLT', 79.0, 541.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1816, 1820, -4.0, 1945, 2005, -20.0, 'AA', 353, 'N552AA', 'LGA', 'ORD', 115.0, 733.0, 18.0, 20.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1819, 1819, 0.0, 1955, 1932, 23.0, 'EV', 4520, 'N11150', 'EWR', 'PWM', 53.0, 284.0, 18.0, 19.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1821, 1830, -9.0, 2037, 2044, -7.0, 'EV', 5203, 'N755EV', 'EWR', 'DTW', 89.0, 488.0, 18.0, 30.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1821, 1815, 6.0, 2031, 2037, -6.0, '9E', 3424, 'N934XJ', 'JFK', 'DTW', 90.0, 509.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1821, 1819, 2.0, 2157, 2138, 19.0, 'UA', 593, 'N848UA', 'EWR', 'SNA', 355.0, 2434.0, 18.0, 19.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1821, 1800, 21.0, 1946, 1939, 7.0, 'UA', 691, 'N428UA', 'LGA', 'ORD', 118.0, 733.0, 18.0, 0.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1823, 1805, 18.0, 1941, 1935, 6.0, 'WN', 389, 'N259WN', 'LGA', 'MDW', 112.0, 725.0, 18.0, 5.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1824, 1830, -6.0, 1957, 2015, -18.0, 'MQ', 4674, 'N532MQ', 'LGA', 'CLE', 71.0, 419.0, 18.0, 30.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1824, 1829, -5.0, 2014, 2032, -18.0, 'US', 1973, 'N169UW', 'EWR', 'CLT', 77.0, 529.0, 18.0, 29.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1826, 1830, -4.0, 2144, 2202, -18.0, 'UA', 272, 'N517UA', 'JFK', 'SFO', 346.0, 2586.0, 18.0, 30.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1827, 1828, -1.0, 2031, 2026, 5.0, 'EV', 4410, 'N18557', 'EWR', 'CAE', 89.0, 602.0, 18.0, 28.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1827, 1650, 97.0, 1940, 1820, 80.0, 'AA', 1790, 'N3JPAA', 'JFK', 'BOS', 46.0, 187.0, 16.0, 50.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 1827, 1755, 32.0, 2104, 2053, 11.0, 'B6', 391, 'N583JB', 'LGA', 'MCO', 133.0, 950.0, 17.0, 55.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1827, 1835, -8.0, 1932, 1950, -18.0, 'MQ', 3944, 'N909MQ', 'JFK', 'BWI', 33.0, 184.0, 18.0, 35.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1829, 1827, 2.0, 2102, 2045, 17.0, 'UA', 612, 'N519UA', 'EWR', 'DEN', 221.0, 1605.0, 18.0, 27.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1829, 1810, 19.0, 2133, 2120, 13.0, 'UA', 1292, 'N37462', 'EWR', 'FLL', 139.0, 1065.0, 18.0, 10.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1830, 1830, 0.0, 2216, 2148, 28.0, 'UA', 1165, 'N27239', 'EWR', 'LAX', 354.0, 2454.0, 18.0, 30.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1832, 1808, 24.0, 2025, 1949, 36.0, 'UA', 1053, 'N27733', 'EWR', 'CLE', 62.0, 404.0, 18.0, 8.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1832, 1815, 17.0, 1951, 1939, 12.0, 'UA', 1703, 'N77530', 'EWR', 'BOS', 41.0, 200.0, 18.0, 15.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1833, 1835, -2.0, 2123, 2212, -49.0, 'DL', 1643, 'N3753', 'JFK', 'SEA', 327.0, 2422.0, 18.0, 35.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1833, 1840, -7.0, 2004, 2020, -16.0, 'MQ', 3730, 'N531MQ', 'EWR', 'ORD', 110.0, 719.0, 18.0, 40.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1838, 1846, -8.0, 1959, 2019, -20.0, 'B6', 130, 'N281JB', 'JFK', 'BUF', 54.0, 301.0, 18.0, 46.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1838, 1750, 48.0, 1949, 1908, 41.0, 'B6', 1307, 'N190JB', 'JFK', 'IAD', 51.0, 228.0, 17.0, 50.0, '2013-01-10T22:00:00Z'), #> (2013, 1, 10, 1838, 1840, -2.0, 2034, 2049, -15.0, 'DL', 2131, 'N358NW', 'LGA', 'DTW', 88.0, 502.0, 18.0, 40.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1838, 1808, 30.0, 2144, 2106, 38.0, 'UA', 1269, 'N37252', 'EWR', 'PBI', 142.0, 1023.0, 18.0, 8.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1839, 1845, -6.0, 2058, 2137, -39.0, '9E', 3369, 'N604LR', 'JFK', 'MSY', 176.0, 1182.0, 18.0, 45.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1841, 1845, -4.0, 2018, 2030, -12.0, 'MQ', 4517, 'N739MQ', 'LGA', 'CRW', 72.0, 444.0, 18.0, 45.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1844, 1850, -6.0, 2118, 2212, -54.0, 'DL', 2159, 'N3749D', 'JFK', 'MCO', 126.0, 944.0, 18.0, 50.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1844, 1845, -1.0, 2137, 2221, -44.0, 'DL', 2190, 'N328NW', 'JFK', 'MIA', 142.0, 1089.0, 18.0, 45.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1844, 1855, -11.0, 2052, 2100, -8.0, 'MQ', 4649, 'N504MQ', 'LGA', 'MSP', 165.0, 1020.0, 18.0, 55.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1849, 1855, -6.0, 2128, 2210, -42.0, 'DL', 2391, 'N364NW', 'JFK', 'TPA', 141.0, 1005.0, 18.0, 55.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1850, 1856, -6.0, 2125, 2204, -39.0, 'UA', 891, 'N425UA', 'LGA', 'IAH', 198.0, 1416.0, 18.0, 56.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1850, 1850, 0.0, 2034, 2055, -21.0, 'US', 1491, 'N560UW', 'LGA', 'CLT', 82.0, 544.0, 18.0, 50.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1852, 1855, -3.0, 2220, 2245, -25.0, 'VX', 29, 'N621VA', 'JFK', 'SFO', 362.0, 2586.0, 18.0, 55.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1853, 1850, 3.0, 2038, 2050, -12.0, 'AA', 2019, 'N484AA', 'LGA', 'STL', 131.0, 888.0, 18.0, 50.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1853, 1900, -7.0, 2131, 2146, -15.0, 'DL', 947, 'N675DL', 'LGA', 'ATL', 118.0, 762.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1853, 1855, -2.0, 2124, 2142, -18.0, 'DL', 951, 'N1602', 'JFK', 'ATL', 112.0, 760.0, 18.0, 55.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1853, 1900, -7.0, 2016, 2051, -35.0, 'DL', 1255, 'N323NB', 'LGA', 'PIT', 55.0, 335.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1853, 1900, -7.0, 2002, 2015, -13.0, 'US', 2187, 'N749US', 'LGA', 'DCA', 46.0, 214.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1854, 1858, -4.0, 2033, 2055, -22.0, 'EV', 5038, 'N708EV', 'LGA', 'BHM', 127.0, 866.0, 18.0, 58.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1854, 1904, -10.0, 2027, 2026, 1.0, 'EV', 4131, 'N36915', 'EWR', 'RIC', 50.0, 277.0, 19.0, 4.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1854, 1859, -5.0, 2201, 2225, -24.0, 'B6', 171, 'N648JB', 'JFK', 'SMF', 341.0, 2521.0, 18.0, 59.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1856, 1900, -4.0, 2029, 2057, -28.0, '9E', 3368, 'N917XJ', 'JFK', 'PIT', 66.0, 340.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1856, 1835, 21.0, 2152, 2128, 24.0, 'B6', 527, 'N608JB', 'EWR', 'MCO', 133.0, 937.0, 18.0, 35.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1856, 1900, -4.0, 2003, 2012, -9.0, 'US', 2140, 'N961UW', 'LGA', 'BOS', 39.0, 184.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1857, 1905, -8.0, 2152, 2225, -33.0, 'AA', 21, 'N328AA', 'JFK', 'LAX', 336.0, 2475.0, 19.0, 5.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1857, 1859, -2.0, 2226, 2247, -21.0, 'B6', 179, 'N524JB', 'JFK', 'PHX', 301.0, 2153.0, 18.0, 59.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1857, 1900, -3.0, 2208, 2238, -30.0, 'DL', 87, 'N721TW', 'JFK', 'LAX', 337.0, 2475.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1857, 1900, -3.0, 2239, 2301, -22.0, 'DL', 1465, 'N717TW', 'JFK', 'SFO', 360.0, 2586.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1858, 1905, -7.0, 2059, 2113, -14.0, 'EV', 4543, 'N17115', 'EWR', 'DSM', 142.0, 1017.0, 19.0, 5.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1900, 1900, 0.0, 2012, 2018, -6.0, 'EV', 5714, 'N829AS', 'JFK', 'IAD', 44.0, 228.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1902, 1905, -3.0, 2027, 2040, -13.0, 'WN', 981, 'N238WN', 'LGA', 'MKE', 121.0, 738.0, 19.0, 5.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1902, 1900, 2.0, 2135, 2134, 1.0, 'FL', 645, 'N996AT', 'LGA', 'ATL', 119.0, 762.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1902, 1900, 2.0, 2029, 2040, -11.0, 'UA', 954, 'N413UA', 'EWR', 'ORD', 109.0, 719.0, 19.0, 0.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1902, 1905, -3.0, 2230, 2235, -5.0, 'UA', 1111, 'N87507', 'EWR', 'SFO', 349.0, 2565.0, 19.0, 5.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1906, 1910, -4.0, 2200, 2215, -15.0, 'AA', 2075, 'N439AA', 'EWR', 'DFW', 192.0, 1372.0, 19.0, 10.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1908, 1915, -7.0, 2052, 2111, -19.0, '9E', 3525, 'N920XJ', 'JFK', 'ORD', 117.0, 740.0, 19.0, 15.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1909, 1845, 24.0, 2130, 2050, 40.0, 'EV', 4227, 'N13553', 'EWR', 'GRR', 101.0, 605.0, 18.0, 45.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1910, 1915, -5.0, 2147, 2212, -25.0, 'B6', 155, 'N712JB', 'JFK', 'MCO', 124.0, 944.0, 19.0, 15.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1910, 1910, 0.0, 2219, 2231, -12.0, 'B6', 87, 'N760JB', 'JFK', 'SLC', 281.0, 1990.0, 19.0, 10.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1911, 1915, -4.0, 2129, 2137, -8.0, 'EV', 4085, 'N13133', 'EWR', 'OMA', 163.0, 1134.0, 19.0, 15.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1913, 1920, -7.0, 2200, 2246, -46.0, 'DL', 83, 'N3769L', 'JFK', 'FLL', 143.0, 1069.0, 19.0, 20.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1916, 1920, -4.0, 2228, 2258, -30.0, 'DL', 6, 'N3750D', 'JFK', 'SLC', 279.0, 1990.0, 19.0, 20.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1917, 1920, -3.0, 2037, 2100, -23.0, 'AA', 359, 'N3HAAA', 'LGA', 'ORD', 110.0, 733.0, 19.0, 20.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1919, 1920, -1.0, 2047, 2121, -34.0, '9E', 3373, 'N600LR', 'JFK', 'RDU', 66.0, 427.0, 19.0, 20.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1919, 1925, -6.0, 2217, 2235, -18.0, 'DL', 2370, 'N324NB', 'LGA', 'PBI', 145.0, 1035.0, 19.0, 25.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1922, 1920, 2.0, 2242, 2315, -33.0, 'DL', 1345, 'N3757D', 'JFK', 'PHX', 302.0, 2153.0, 19.0, 20.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1922, 1925, -3.0, 2207, 2229, -22.0, 'DL', 1485, 'N975DL', 'LGA', 'MCO', 135.0, 950.0, 19.0, 25.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1922, 1925, -3.0, 2223, 2247, -24.0, 'DL', 2139, 'N976DL', 'LGA', 'MIA', 157.0, 1096.0, 19.0, 25.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1923, 1925, -2.0, 2203, 2243, -40.0, 'DL', 1729, 'N900PC', 'JFK', 'LAS', 309.0, 2248.0, 19.0, 25.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1925, 1930, -5.0, 2133, 2151, -18.0, '9E', 3798, 'N8797A', 'JFK', 'CLT', 81.0, 541.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1925, 1925, 0.0, 2042, 2045, -3.0, '9E', 4127, 'N8688C', 'JFK', 'IAD', 49.0, 228.0, 19.0, 25.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1925, 1930, -5.0, 2230, 2243, -13.0, 'DL', 1435, 'N934DL', 'LGA', 'TPA', 144.0, 1010.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1925, 1930, -5.0, 2150, 2213, -23.0, 'DL', 1715, 'N327NB', 'LGA', 'MSY', 170.0, 1183.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1926, 1930, -4.0, 2058, 2115, -17.0, 'EV', 3274, 'N13538', 'LGA', 'CLE', 69.0, 419.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1926, 1930, -4.0, 2127, 2131, -4.0, 'EV', 4532, 'N12126', 'EWR', 'CHS', 95.0, 628.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1928, 1936, -8.0, 2041, 2056, -15.0, 'EV', 5693, 'N820AS', 'LGA', 'IAD', 54.0, 229.0, 19.0, 36.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1928, 1930, -2.0, 2251, 2247, 4.0, 'DL', 1854, 'N369NB', 'LGA', 'FLL', 145.0, 1076.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1929, 1930, -1.0, 2052, 2103, -11.0, 'EV', 4670, 'N16919', 'EWR', 'BNA', 112.0, 748.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1929, 1930, -1.0, 2242, 2312, -30.0, 'B6', 91, 'N656JB', 'JFK', 'OAK', 353.0, 2576.0, 19.0, 30.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1931, 1935, -4.0, 2215, 2240, -25.0, 'AA', 791, 'N3CCAA', 'LGA', 'DFW', 203.0, 1389.0, 19.0, 35.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1932, 1935, -3.0, 2219, 2220, -1.0, 'EV', 4204, 'N16183', 'EWR', 'OKC', 192.0, 1325.0, 19.0, 35.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1933, 1904, 29.0, 2134, 2109, 25.0, 'EV', 4437, 'N11544', 'EWR', 'CLT', 79.0, 529.0, 19.0, 4.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1934, 1940, -6.0, 2047, 2100, -13.0, 'WN', 633, 'N467WN', 'EWR', 'MDW', 113.0, 711.0, 19.0, 40.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1934, 1935, -1.0, 2223, 2233, -10.0, 'UA', 1416, 'N12238', 'EWR', 'IAH', 202.0, 1400.0, 19.0, 35.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1935, 1940, -5.0, 2044, 2106, -22.0, '9E', 4091, 'N829AY', 'JFK', 'BWI', 39.0, 184.0, 19.0, 40.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1936, 1910, 26.0, 2130, 2055, 35.0, 'MQ', 4569, 'N711MQ', 'LGA', 'RDU', 71.0, 431.0, 19.0, 10.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1937, 1940, -3.0, 2224, 2240, -16.0, 'AA', 1787, 'N3DUAA', 'JFK', 'TPA', 147.0, 1005.0, 19.0, 40.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1938, 1943, -5.0, 2050, 2053, -3.0, 'EV', 4312, 'N12922', 'EWR', 'DCA', 42.0, 199.0, 19.0, 43.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1939, 1945, -6.0, 2059, 2105, -6.0, 'EV', 4108, 'N12564', 'EWR', 'IAD', 45.0, 212.0, 19.0, 45.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1941, 1940, 1.0, 2231, 2249, -18.0, 'B6', 381, 'N653JB', 'LGA', 'FLL', 146.0, 1076.0, 19.0, 40.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1944, 1945, -1.0, 2205, 2241, -36.0, '9E', 3314, 'N605LR', 'JFK', 'JAX', 120.0, 828.0, 19.0, 45.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1946, 1855, 51.0, 18, 2355, 23.0, 'AA', 1613, 'N5DMAA', 'JFK', 'SJU', 185.0, 1598.0, 18.0, 55.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 1947, 1950, -3.0, 2258, 2335, -37.0, 'B6', 645, 'N643JB', 'JFK', 'SFO', 349.0, 2586.0, 19.0, 50.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1950, 1959, -9.0, 2134, 2144, -10.0, 'MQ', 4423, 'N856MQ', 'JFK', 'RDU', 77.0, 427.0, 19.0, 59.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1950, 2000, -10.0, 2248, 2318, -30.0, 'UA', 890, 'N424UA', 'EWR', 'MIA', 152.0, 1085.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1951, 2000, -9.0, 2149, 2208, -19.0, 'EV', 3822, 'N15980', 'EWR', 'TYS', 98.0, 631.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1952, 2000, -8.0, 2106, 2117, -11.0, 'US', 2189, 'N747UW', 'LGA', 'DCA', 45.0, 214.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1953, 2000, -7.0, 2242, 2243, -1.0, 'DL', 1147, 'N645DL', 'LGA', 'ATL', 110.0, 762.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1953, 2000, -7.0, 2240, 2256, -16.0, 'UA', 1482, 'N38257', 'EWR', 'LAS', 317.0, 2227.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1954, 2000, -6.0, 2146, 2208, -22.0, 'EV', 4536, 'N13913', 'EWR', 'CVG', 90.0, 569.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1955, 2000, -5.0, 2124, 2137, -13.0, 'EV', 4106, 'N26549', 'EWR', 'GSO', 71.0, 445.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1955, 1955, 0.0, 2304, 2310, -6.0, 'AA', 1709, 'N3HYAA', 'LGA', 'MIA', 146.0, 1096.0, 19.0, 55.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 1955, 2000, -5.0, 2239, 2305, -26.0, 'B6', 21, 'N517JB', 'JFK', 'TPA', 141.0, 1005.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1955, 2000, -5.0, 2055, 2143, -48.0, 'DL', 402, 'N322NB', 'JFK', 'BOS', 36.0, 187.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1955, 2000, -5.0, 2311, 2329, -18.0, 'VX', 415, 'N641VA', 'JFK', 'LAX', 355.0, 2475.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1955, 2000, -5.0, 2152, 2139, 13.0, 'UA', 695, 'N490UA', 'LGA', 'ORD', 123.0, 733.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1955, 2000, -5.0, 2111, 2114, -3.0, 'US', 2142, 'N949UW', 'LGA', 'BOS', 39.0, 184.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1956, 2000, -4.0, 2144, 2224, -40.0, '9E', 3439, 'N918XJ', 'JFK', 'CVG', 85.0, 589.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 1958, 2000, -2.0, 2130, 2147, -17.0, '9E', 3320, 'N921XJ', 'JFK', 'BUF', 57.0, 301.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2000, 2005, -5.0, 2246, 2258, -12.0, 'UA', 711, 'N411UA', 'EWR', 'MCO', 132.0, 937.0, 20.0, 5.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2001, 2000, 1.0, 2114, 2125, -11.0, 'EV', 4412, 'N24103', 'EWR', 'BUF', 51.0, 282.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2001, 2005, -4.0, 2251, 2311, -20.0, 'UA', 983, 'N845UA', 'EWR', 'TPA', 141.0, 997.0, 20.0, 5.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2004, 2000, 4.0, 2223, 2232, -9.0, 'EV', 4333, 'N11155', 'EWR', 'TUL', 178.0, 1215.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2004, 2000, 4.0, 2131, 2139, -8.0, 'UA', 1094, 'N15710', 'EWR', 'CLE', 64.0, 404.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2005, 2005, 0.0, 2128, 2133, -5.0, 'EV', 4224, 'N12921', 'EWR', 'MKE', 116.0, 725.0, 20.0, 5.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2006, 1935, 31.0, 2147, 2145, 2.0, '9E', 3899, 'N8907A', 'JFK', 'CLE', 73.0, 425.0, 19.0, 35.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 2006, 1830, 96.0, 2300, 2205, 55.0, 'AA', 269, 'N3ECAA', 'JFK', 'SEA', 323.0, 2422.0, 18.0, 30.0, '2013-01-10T23:00:00Z'), #> (2013, 1, 10, 2006, 2015, -9.0, 2213, 2210, 3.0, 'MQ', 4555, 'N730MQ', 'LGA', 'CMH', 80.0, 479.0, 20.0, 15.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2015, 2020, -5.0, 2258, 2245, 13.0, 'MQ', 4662, 'N507MQ', 'LGA', 'ATL', 121.0, 762.0, 20.0, 20.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2018, 2025, -7.0, 2304, 2331, -27.0, 'UA', 299, 'N421UA', 'EWR', 'DFW', 207.0, 1372.0, 20.0, 25.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2020, 2000, 20.0, 2259, 2312, -13.0, 'B6', 801, 'N537JB', 'JFK', 'FLL', 139.0, 1069.0, 20.0, 0.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2020, 2025, -5.0, 2327, 2329, -2.0, 'UA', 771, 'N518UA', 'JFK', 'LAX', 335.0, 2475.0, 20.0, 25.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2021, 2029, -8.0, 2219, 2233, -14.0, 'EV', 4348, 'N11187', 'EWR', 'MSP', 153.0, 1008.0, 20.0, 29.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2023, 2030, -7.0, 2347, 2350, -3.0, 'B6', 1069, 'N334JB', 'JFK', 'AUS', 215.0, 1521.0, 20.0, 30.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2023, 2030, -7.0, 2200, 2206, -6.0, 'FL', 354, 'N929AT', 'LGA', 'CAK', 62.0, 397.0, 20.0, 30.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2026, 2005, 21.0, 2215, 2204, 11.0, 'EV', 4133, 'N14952', 'EWR', 'GSP', 91.0, 594.0, 20.0, 5.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2027, 2030, -3.0, 2307, 2338, -31.0, 'UA', 1225, 'N38727', 'EWR', 'PBI', 138.0, 1023.0, 20.0, 30.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2034, 2035, -1.0, 112, 126, -14.0, 'UA', 1071, 'N73283', 'EWR', 'BQN', 189.0, 1585.0, 20.0, 35.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2035, 2035, 0.0, 2138, 2154, -16.0, 'UA', 1243, 'N76517', 'EWR', 'BOS', 39.0, 200.0, 20.0, 35.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2037, 2040, -3.0, 2328, 2345, -17.0, 'B6', 629, 'N197JB', 'JFK', 'HOU', 210.0, 1428.0, 20.0, 40.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2037, 2040, -3.0, 2318, 2359, -41.0, 'B6', 165, 'N569JB', 'JFK', 'PDX', 322.0, 2454.0, 20.0, 40.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2038, 2045, -7.0, 2139, 2216, -37.0, '9E', 3395, 'N933XJ', 'JFK', 'DCA', 41.0, 213.0, 20.0, 45.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2038, 2045, -7.0, 2140, 2154, -14.0, 'B6', 1178, 'N640JB', 'EWR', 'BOS', 40.0, 200.0, 20.0, 45.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2039, 1940, 59.0, 2217, 2125, 52.0, 'MQ', 3783, 'N3AEMQ', 'JFK', 'CMH', 76.0, 483.0, 19.0, 40.0, '2013-01-11T00:00:00Z'), #> (2013, 1, 10, 2040, 2040, 0.0, 2351, 2357, -6.0, 'B6', 677, 'N809JB', 'JFK', 'LAX', 343.0, 2475.0, 20.0, 40.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2042, 2046, -4.0, 2308, 2318, -10.0, 'EV', 4645, 'N12552', 'EWR', 'JAX', 121.0, 820.0, 20.0, 46.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2044, 2005, 39.0, 2245, 2230, 15.0, '9E', 4033, 'N8533D', 'LGA', 'TYS', 94.0, 647.0, 20.0, 5.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2044, 2045, -1.0, 2212, 2225, -13.0, 'AA', 371, 'N4YHAA', 'LGA', 'ORD', 120.0, 733.0, 20.0, 45.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2050, 2100, -10.0, 2151, 2207, -16.0, 'EV', 4695, 'N13995', 'EWR', 'MHT', 39.0, 209.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2050, 2100, -10.0, 2345, 2349, -4.0, 'B6', 399, 'N644JB', 'LGA', 'MCO', 130.0, 950.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2052, 2055, -3.0, 2316, 2250, 26.0, 'MQ', 4573, 'N725MQ', 'LGA', 'DTW', 94.0, 502.0, 20.0, 55.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2053, 2100, -7.0, 2209, 2220, -11.0, 'MQ', 3744, 'N510MQ', 'EWR', 'ORD', 117.0, 719.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2054, 2100, -6.0, 2202, 2207, -5.0, 'US', 2144, 'N952UW', 'LGA', 'BOS', 34.0, 184.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2055, 2100, -5.0, 2216, 2211, 5.0, 'US', 2191, 'N770UW', 'LGA', 'DCA', 42.0, 214.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2056, 2100, -4.0, 2236, 2235, 1.0, 'MQ', 4507, 'N846MQ', 'LGA', 'RDU', 68.0, 431.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2058, 2100, -2.0, 2229, 2225, 4.0, 'WN', 530, 'N443WN', 'LGA', 'MDW', 117.0, 725.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2059, 2100, -1.0, 2256, 2250, 6.0, 'MQ', 4584, 'N542MQ', 'LGA', 'CLT', 80.0, 544.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2100, 2100, 0.0, 2201, 2209, -8.0, 'B6', 1020, 'N663JB', 'JFK', 'BOS', 36.0, 187.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2100, 2045, 15.0, 2321, 2310, 11.0, 'B6', 115, 'N283JB', 'JFK', 'MSY', 176.0, 1182.0, 20.0, 45.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2100, 2100, 0.0, 37, 31, 6.0, 'DL', 2363, 'N705TW', 'JFK', 'LAX', 343.0, 2475.0, 21.0, 0.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2104, 2107, -3.0, 2318, 2322, -4.0, 'EV', 3819, 'N16559', 'EWR', 'SDF', 110.0, 642.0, 21.0, 7.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2104, 2110, -6.0, 2337, 2355, -18.0, 'B6', 529, 'N507JB', 'EWR', 'MCO', 127.0, 937.0, 21.0, 10.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2109, 2029, 40.0, 2219, 2140, 39.0, '9E', 3609, 'N800AY', 'JFK', 'PHL', 25.0, 94.0, 20.0, 29.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2114, 2125, -11.0, 2230, 2240, -10.0, 'MQ', 4449, 'N840MQ', 'JFK', 'DCA', 53.0, 213.0, 21.0, 25.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2118, 2125, -7.0, 2206, 2224, -18.0, 'EV', 4404, 'N15985', 'EWR', 'PVD', 31.0, 160.0, 21.0, 25.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2119, 2129, -10.0, 2220, 2231, -11.0, 'EV', 4088, 'N11107', 'EWR', 'DCA', 39.0, 199.0, 21.0, 29.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2122, 2125, -3.0, 2234, 2250, -16.0, 'MQ', 4660, 'N500MQ', 'LGA', 'BNA', 109.0, 764.0, 21.0, 25.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2124, 2130, -6.0, 2334, 2, -28.0, 'B6', 97, 'N645JB', 'JFK', 'DEN', 221.0, 1626.0, 21.0, 30.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2127, 2038, 49.0, 2214, 2139, 35.0, 'EV', 4309, 'N13955', 'EWR', 'ALB', 28.0, 143.0, 20.0, 38.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2129, 2130, -1.0, 148, 218, -30.0, 'B6', 701, 'N193JB', 'JFK', 'SJU', 186.0, 1598.0, 21.0, 30.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2129, 2130, -1.0, 2, 25, -23.0, 'B6', 383, 'N746JB', 'LGA', 'FLL', 138.0, 1076.0, 21.0, 30.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2130, 2135, -5.0, 6, 24, -18.0, 'B6', 43, 'N661JB', 'JFK', 'MCO', 129.0, 944.0, 21.0, 35.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2133, 2129, 4.0, 2223, 2224, -1.0, 'EV', 3271, 'N12569', 'EWR', 'PHL', 30.0, 80.0, 21.0, 29.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2133, 2135, -2.0, 22, 36, -14.0, 'B6', 11, 'N624JB', 'JFK', 'FLL', 144.0, 1069.0, 21.0, 35.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2135, 2140, -5.0, 2251, 2306, -15.0, 'B6', 104, 'N239JB', 'JFK', 'BUF', 53.0, 301.0, 21.0, 40.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2137, 1630, 307.0, 17, 1925, 292.0, 'UA', 1178, 'N75435', 'EWR', 'IAH', 197.0, 1400.0, 16.0, 30.0, '2013-01-10T21:00:00Z'), #> (2013, 1, 10, 2141, 2042, 59.0, 2320, 2231, 49.0, 'EV', 3833, 'N12567', 'EWR', 'STL', 136.0, 872.0, 20.0, 42.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2142, 2154, -12.0, 37, 50, -13.0, 'B6', 515, 'N618JB', 'EWR', 'FLL', 136.0, 1065.0, 21.0, 54.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2145, 2135, 10.0, 45, 50, -5.0, 'AA', 185, 'N335AA', 'JFK', 'LAX', 341.0, 2475.0, 21.0, 35.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2145, 2135, 10.0, 34, 22, 12.0, 'B6', 199, 'N521JB', 'JFK', 'LAS', 321.0, 2248.0, 21.0, 35.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2150, 2015, 95.0, 2256, 2130, 86.0, 'AA', 1762, 'N3BUAA', 'JFK', 'BOS', 36.0, 187.0, 20.0, 15.0, '2013-01-11T01:00:00Z'), #> (2013, 1, 10, 2151, 2159, -8.0, 2250, 2315, -25.0, 'EV', 4162, 'N27190', 'EWR', 'BTV', 45.0, 266.0, 21.0, 59.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2155, 2159, -4.0, 2302, 2316, -14.0, 'DL', 2155, 'N360NW', 'LGA', 'PWM', 44.0, 269.0, 21.0, 59.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2159, 2159, 0.0, 2247, 2300, -13.0, 'EV', 4519, 'N13124', 'EWR', 'BWI', 33.0, 169.0, 21.0, 59.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2211, 2125, 46.0, 2303, 2234, 29.0, 'UA', 1066, 'N17244', 'EWR', 'BOS', 36.0, 200.0, 21.0, 25.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2228, 2159, 29.0, 2345, 2306, 39.0, 'EV', 4322, 'N14916', 'EWR', 'PWM', 52.0, 284.0, 21.0, 59.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2230, 2230, 0.0, 254, 313, -19.0, 'B6', 713, 'N655JB', 'JFK', 'SJU', 186.0, 1598.0, 22.0, 30.0, '2013-01-11T03:00:00Z'), #> (2013, 1, 10, 2241, 2250, -9.0, 2349, 2359, -10.0, 'B6', 608, 'N236JB', 'JFK', 'PWM', 48.0, 273.0, 22.0, 50.0, '2013-01-11T03:00:00Z'), #> (2013, 1, 10, 2245, 2245, 0.0, 18, 2357, 21.0, 'B6', 128, 'N556JB', 'JFK', 'BTV', 47.0, 266.0, 22.0, 45.0, '2013-01-11T03:00:00Z'), #> (2013, 1, 10, 2245, 2249, -4.0, 2346, 2357, -11.0, 'B6', 22, 'N281JB', 'JFK', 'SYR', 40.0, 209.0, 22.0, 49.0, '2013-01-11T03:00:00Z'), #> (2013, 1, 10, 2247, 2250, -3.0, 2357, 7, -10.0, 'B6', 30, 'N190JB', 'JFK', 'ROC', 47.0, 264.0, 22.0, 50.0, '2013-01-11T03:00:00Z'), #> (2013, 1, 10, 2249, 2105, 104.0, 2355, 2217, 98.0, 'EV', 4119, 'N17169', 'EWR', 'RIC', 47.0, 277.0, 21.0, 5.0, '2013-01-11T02:00:00Z'), #> (2013, 1, 10, 2250, 2253, -3.0, 6, 15, -9.0, 'B6', 112, 'N590JB', 'JFK', 'BUF', 53.0, 301.0, 22.0, 53.0, '2013-01-11T03:00:00Z'), #> (2013, 1, 10, 2320, 2250, 30.0, 16, 2354, 22.0, 'B6', 1018, 'N612JB', 'JFK', 'BOS', 35.0, 187.0, 22.0, 50.0, '2013-01-11T03:00:00Z'), #> (2013, 1, 10, NULL, 635, NULL, NULL, 940, NULL, 'AA', 711, 'N3CDAA', 'LGA', 'DFW', NULL, 1389.0, 6.0, 35.0, '2013-01-10T11:00:00Z'), #> (2013, 1, 10, NULL, 1500, NULL, NULL, 1639, NULL, 'UA', 685, NULL, 'LGA', 'ORD', NULL, 733.0, 15.0, 0.0, '2013-01-10T20:00:00Z'), #> (2013, 1, 10, NULL, 700, NULL, NULL, 1007, NULL, 'UA', 719, NULL, 'EWR', 'DFW', NULL, 1372.0, 7.0, 0.0, '2013-01-10T12:00:00Z'), #> (2013, 2, 10, 455, 500, -5.0, 625, 650, -25.0, 'US', 881, 'N420US', 'EWR', 'CLT', 76.0, 529.0, 5.0, 0.0, '2013-02-10T10:00:00Z'), #> (2013, 2, 10, 528, 525, 3.0, 816, 821, -5.0, 'UA', 1545, 'N77510', 'EWR', 'IAH', 211.0, 1400.0, 5.0, 25.0, '2013-02-10T10:00:00Z'), #> (2013, 2, 10, 542, 540, 2.0, 846, 850, -4.0, 'AA', 1141, 'N5CPAA', 'JFK', 'MIA', 141.0, 1089.0, 5.0, 40.0, '2013-02-10T10:00:00Z'), #> (2013, 2, 10, 549, 540, 9.0, 1036, 1016, 20.0, 'B6', 725, 'N618JB', 'JFK', 'BQN', 179.0, 1576.0, 5.0, 40.0, '2013-02-10T10:00:00Z'), #> (2013, 2, 10, 553, 600, -7.0, 826, 858, -32.0, 'B6', 507, 'N789JB', 'EWR', 'FLL', 137.0, 1065.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 556, 600, -4.0, 708, 716, -8.0, 'EV', 4201, 'N11121', 'EWR', 'IAD', 48.0, 212.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 556, 600, -4.0, 923, 910, 13.0, 'AA', 707, 'N3BTAA', 'LGA', 'DFW', 243.0, 1389.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 557, 600, -3.0, 854, 911, -17.0, 'B6', 135, 'N505JB', 'JFK', 'RSW', 154.0, 1074.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 557, 559, -2.0, 915, 930, -15.0, 'UA', 691, 'N525UA', 'JFK', 'SFO', 358.0, 2586.0, 5.0, 59.0, '2013-02-10T10:00:00Z'), #> (2013, 2, 10, 558, 600, -2.0, 810, 815, -5.0, 'FL', 345, 'N990AT', 'LGA', 'ATL', 111.0, 762.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 600, 600, 0.0, 849, 905, -16.0, 'B6', 125, 'N509JB', 'JFK', 'FLL', 141.0, 1069.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 601, 600, 1.0, 839, 903, -24.0, 'B6', 371, 'N633JB', 'LGA', 'FLL', 139.0, 1076.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 601, 600, 1.0, 824, 837, -13.0, 'DL', 461, 'N3766', 'LGA', 'ATL', 116.0, 762.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 602, 600, 2.0, 903, 927, -24.0, 'UA', 1737, 'N57855', 'EWR', 'LAX', 328.0, 2454.0, 6.0, 0.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 603, 610, -7.0, 850, 915, -25.0, 'AA', 1837, 'N3CUAA', 'LGA', 'MIA', 142.0, 1096.0, 6.0, 10.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 607, 610, -3.0, 811, 817, -6.0, 'DL', 1919, 'N326US', 'LGA', 'MSP', 159.0, 1020.0, 6.0, 10.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 610, 610, 0.0, 852, 910, -18.0, 'AA', 1895, 'N5CBAA', 'EWR', 'MIA', 141.0, 1085.0, 6.0, 10.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 612, 615, -3.0, 756, 820, -24.0, 'US', 1269, 'N709UW', 'JFK', 'CLT', 81.0, 541.0, 6.0, 15.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 613, 615, -2.0, 833, 842, -9.0, 'DL', 575, 'N346NB', 'EWR', 'ATL', 113.0, 746.0, 6.0, 15.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 618, 615, 3.0, 849, 855, -6.0, '9E', 3856, 'N146PQ', 'JFK', 'ATL', 109.0, 760.0, 6.0, 15.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 621, 610, 11.0, 855, 901, -6.0, 'B6', 145, 'N517JB', 'JFK', 'PBI', 135.0, 1028.0, 6.0, 10.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 621, 621, 0.0, 859, 930, -31.0, 'UA', 772, 'N586UA', 'EWR', 'MIA', 141.0, 1085.0, 6.0, 21.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 624, 625, -1.0, 853, 915, -22.0, 'B6', 79, 'N630JB', 'JFK', 'MCO', 128.0, 944.0, 6.0, 25.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 624, 630, -6.0, 819, 831, -12.0, 'US', 1507, 'N167US', 'EWR', 'CLT', 82.0, 529.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 625, 632, -7.0, 750, 804, -14.0, 'EV', 3271, 'N16963', 'EWR', 'BNA', 119.0, 748.0, 6.0, 32.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 625, 630, -5.0, 1124, 1140, -16.0, 'AA', 413, 'N3DGAA', 'JFK', 'SJU', 184.0, 1598.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 625, 630, -5.0, 754, 810, -16.0, 'AA', 303, 'N3GUAA', 'LGA', 'ORD', 120.0, 733.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 625, 625, 0.0, 910, 937, -27.0, 'UA', 304, 'N490UA', 'LGA', 'IAH', 207.0, 1416.0, 6.0, 25.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 625, 630, -5.0, 814, 843, -29.0, 'US', 1433, 'N187US', 'LGA', 'CLT', 82.0, 544.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 627, 630, -3.0, 842, 859, -17.0, 'DL', 2006, 'N339NB', 'LGA', 'MSY', 173.0, 1183.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 628, 635, -7.0, 904, 933, -29.0, 'B6', 983, 'N613JB', 'LGA', 'TPA', 139.0, 1010.0, 6.0, 35.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 629, 630, -1.0, 806, 809, -3.0, 'B6', 905, 'N292JB', 'JFK', 'ORD', 129.0, 740.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 631, 630, 1.0, 1009, 1014, -5.0, 'UA', 470, 'N453UA', 'EWR', 'PHX', 318.0, 2133.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 637, 636, 1.0, 915, 945, -30.0, 'UA', 1701, 'N76529', 'EWR', 'FLL', 140.0, 1065.0, 6.0, 36.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 640, 610, 30.0, 1103, 1050, 13.0, 'B6', 709, 'N594JB', 'JFK', 'SJU', 181.0, 1598.0, 6.0, 10.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 640, 645, -5.0, 820, 846, -26.0, 'US', 926, 'N556UW', 'EWR', 'CLT', 78.0, 529.0, 6.0, 45.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 643, 635, 8.0, 954, 1000, -6.0, 'UA', 421, 'N488UA', 'EWR', 'SFO', 344.0, 2565.0, 6.0, 35.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 648, 655, -7.0, 906, 926, -20.0, 'B6', 117, 'N651JB', 'JFK', 'MSY', 173.0, 1182.0, 6.0, 55.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 650, 649, 1.0, 946, 912, 34.0, 'UA', 311, 'N479UA', 'EWR', 'DEN', 275.0, 1605.0, 6.0, 49.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 654, 700, -6.0, 826, 836, -10.0, 'UA', 1277, 'N13718', 'EWR', 'ORD', 116.0, 719.0, 7.0, 0.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 655, 700, -5.0, 1007, 1045, -38.0, 'DL', 1865, 'N717TW', 'JFK', 'SFO', 346.0, 2586.0, 7.0, 0.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 655, 700, -5.0, 923, 952, -29.0, 'DL', 2285, 'N320NB', 'LGA', 'MCO', 129.0, 950.0, 7.0, 0.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 656, 700, -4.0, 1012, 1026, -14.0, 'B6', 671, 'N644JB', 'JFK', 'LAX', 352.0, 2475.0, 7.0, 0.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 700, 700, 0.0, 823, 839, -16.0, 'UA', 550, 'N848UA', 'LGA', 'ORD', 121.0, 733.0, 7.0, 0.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 701, 705, -4.0, 924, 937, -13.0, 'EV', 4304, 'N11106', 'EWR', 'MSY', 173.0, 1167.0, 7.0, 5.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 701, 700, 1.0, 950, 956, -6.0, 'B6', 203, 'N715JB', 'JFK', 'LAS', 323.0, 2248.0, 7.0, 0.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 701, 659, 2.0, 956, 959, -3.0, 'AA', 1815, 'N5EUAA', 'JFK', 'MCO', 133.0, 944.0, 6.0, 59.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 703, 700, 3.0, 1002, 1015, -13.0, 'AA', 2279, 'N3ETAA', 'LGA', 'MIA', 145.0, 1096.0, 7.0, 0.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 705, 705, 0.0, 937, 1001, -24.0, 'B6', 389, 'N709JB', 'LGA', 'MCO', 129.0, 950.0, 7.0, 5.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 708, 710, -2.0, 852, 850, 2.0, 'MQ', 3737, 'N527MQ', 'EWR', 'ORD', 133.0, 719.0, 7.0, 10.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 710, 715, -5.0, 1000, 1035, -35.0, 'AA', 825, 'N3EYAA', 'JFK', 'FLL', 145.0, 1069.0, 7.0, 15.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 710, 710, 0.0, 1153, 1202, -9.0, 'B6', 715, 'N637JB', 'JFK', 'SJU', 181.0, 1598.0, 7.0, 10.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 714, 720, -6.0, 854, 926, -32.0, 'DL', 731, 'N336NB', 'LGA', 'DTW', 83.0, 502.0, 7.0, 20.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 715, 705, 10.0, 1008, 1020, -12.0, 'B6', 981, 'N636JB', 'JFK', 'FLL', 144.0, 1069.0, 7.0, 5.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 716, 709, 7.0, 1011, 1021, -10.0, 'UA', 1525, 'N68452', 'EWR', 'RSW', 149.0, 1068.0, 7.0, 9.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 717, 715, 2.0, 1017, 1045, -28.0, 'AA', 443, 'N5EKAA', 'JFK', 'MIA', 142.0, 1089.0, 7.0, 15.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 717, 645, 32.0, 842, 807, 35.0, 'B6', 102, 'N665JB', 'JFK', 'BUF', 56.0, 301.0, 6.0, 45.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 717, 655, 22.0, 1025, 1030, -5.0, 'DL', 1415, 'N37700', 'JFK', 'SLC', 274.0, 1990.0, 6.0, 55.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 717, 720, -3.0, 952, 1018, -26.0, 'UA', 1627, 'N30401', 'EWR', 'PBI', 135.0, 1023.0, 7.0, 20.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 718, 710, 8.0, 946, 1003, -17.0, 'UA', 746, 'N509UA', 'EWR', 'MCO', 129.0, 937.0, 7.0, 10.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 720, 725, -5.0, 959, 1030, -31.0, 'AS', 11, 'N584AS', 'EWR', 'SEA', 315.0, 2402.0, 7.0, 25.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 724, 730, -6.0, 1027, 1100, -33.0, 'AA', 33, 'N327AA', 'JFK', 'LAX', 337.0, 2475.0, 7.0, 30.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 725, 730, -5.0, 812, 842, -30.0, 'US', 1153, 'N959UW', 'LGA', 'PHL', 28.0, 96.0, 7.0, 30.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 731, 735, -4.0, 1024, 1046, -22.0, 'B6', 341, 'N621JB', 'JFK', 'SRQ', 147.0, 1041.0, 7.0, 35.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 731, 730, 1.0, 1020, 1045, -25.0, 'UA', 1599, 'N16709', 'LGA', 'IAH', 211.0, 1416.0, 7.0, 30.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 732, 732, 0.0, 1034, 1045, -11.0, 'B6', 1601, 'N547JB', 'LGA', 'RSW', 155.0, 1080.0, 7.0, 32.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 732, 730, 2.0, 1053, 1115, -22.0, 'VX', 11, 'N836VA', 'JFK', 'SFO', 359.0, 2586.0, 7.0, 30.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 734, 730, 4.0, 1050, 1040, 10.0, 'AA', 715, 'N3CGAA', 'LGA', 'DFW', 224.0, 1389.0, 7.0, 30.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 734, 740, -6.0, 1021, 1105, -44.0, 'DL', 1889, 'N647DL', 'JFK', 'SEA', 322.0, 2422.0, 7.0, 40.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 735, 740, -5.0, 1018, 1040, -22.0, 'UA', 608, 'N469UA', 'EWR', 'TPA', 139.0, 997.0, 7.0, 40.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 738, 740, -2.0, 1041, 1049, -8.0, 'UA', 1740, 'N14704', 'EWR', 'IAH', 216.0, 1400.0, 7.0, 40.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 739, 750, -11.0, 916, 940, -24.0, '9E', 3611, 'N8783E', 'JFK', 'PIT', 69.0, 340.0, 7.0, 50.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 743, 745, -2.0, 925, 930, -5.0, 'AA', 309, 'N527AA', 'LGA', 'ORD', 129.0, 733.0, 7.0, 45.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 746, 745, 1.0, 1211, 1234, -23.0, 'UA', 1481, 'N75858', 'EWR', 'SJU', 181.0, 1608.0, 7.0, 45.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 751, 635, 76.0, 1053, 940, 73.0, 'AA', 711, 'N4YFAA', 'LGA', 'DFW', 221.0, 1389.0, 6.0, 35.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 751, 755, -4.0, 1046, 1110, -24.0, 'AA', 2267, 'N3GFAA', 'LGA', 'MIA', 146.0, 1096.0, 7.0, 55.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 752, 801, -9.0, 905, 916, -11.0, 'EV', 4372, 'N15980', 'EWR', 'BTV', 48.0, 266.0, 8.0, 1.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 753, 753, 0.0, 1035, 1006, 29.0, 'DL', 2119, 'N332NB', 'LGA', 'MSP', 195.0, 1020.0, 7.0, 53.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 754, 757, -3.0, 857, 909, -12.0, 'B6', 44, 'N603JB', 'JFK', 'SYR', 46.0, 209.0, 7.0, 57.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 755, 800, -5.0, 1019, 1040, -21.0, 'DL', 2047, 'N676DL', 'LGA', 'ATL', 114.0, 762.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 757, 759, -2.0, 931, 1011, -40.0, 'US', 978, 'N105UW', 'LGA', 'CLT', 78.0, 544.0, 7.0, 59.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 758, 800, -2.0, 1030, 1053, -23.0, 'B6', 517, 'N784JB', 'EWR', 'MCO', 127.0, 937.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 758, 800, -2.0, 1028, 1030, -2.0, 'WN', 692, 'N7730A', 'LGA', 'DEN', 241.0, 1620.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 759, 805, -6.0, 959, 1002, -3.0, 'EV', 4584, 'N14972', 'EWR', 'MEM', 158.0, 946.0, 8.0, 5.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 759, 800, -1.0, 1042, 1122, -40.0, 'DL', 1271, 'N947DL', 'JFK', 'FLL', 137.0, 1069.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 800, 800, 0.0, 1148, 1140, 8.0, 'WN', 1558, 'N934WN', 'EWR', 'PHX', 325.0, 2133.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 801, 756, 5.0, 1127, 1103, 24.0, 'UA', 669, 'N807UA', 'EWR', 'DFW', 231.0, 1372.0, 7.0, 56.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 802, 800, 2.0, 1049, 1124, -35.0, 'DL', 2143, 'N320US', 'JFK', 'MIA', 139.0, 1089.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 803, 810, -7.0, 930, 1000, -30.0, 'EV', 4424, 'N11181', 'EWR', 'RDU', 66.0, 416.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 803, 759, 4.0, 1037, 1030, 7.0, 'UA', 369, 'N520UA', 'LGA', 'DEN', 245.0, 1620.0, 7.0, 59.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 805, 810, -5.0, 1033, 1044, -11.0, 'FL', 346, 'N921AT', 'LGA', 'ATL', 114.0, 762.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 806, 805, 1.0, 1100, 1029, 31.0, '9E', 3538, 'N918XJ', 'JFK', 'MSP', 204.0, 1029.0, 8.0, 5.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 807, 809, -2.0, 951, 1013, -22.0, 'EV', 4479, 'N13997', 'EWR', 'MYR', 81.0, 550.0, 8.0, 9.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 807, 810, -3.0, 1237, 1315, -38.0, 'AA', 655, 'N5FLAA', 'JFK', 'STT', 183.0, 1623.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 807, 812, -5.0, 939, 950, -11.0, 'B6', 1051, 'N309JB', 'JFK', 'PIT', 69.0, 340.0, 8.0, 12.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 807, 810, -3.0, 928, 955, -27.0, 'MQ', 4406, 'N850MQ', 'JFK', 'RDU', 71.0, 427.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 808, 810, -2.0, 916, 925, -9.0, 'AA', 1838, 'N3GBAA', 'JFK', 'BOS', 38.0, 187.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 808, 815, -7.0, 949, 1015, -26.0, 'US', 675, 'N665AW', 'EWR', 'CLT', 79.0, 529.0, 8.0, 15.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 809, 810, -1.0, 1037, 1042, -5.0, 'DL', 269, 'N302NB', 'JFK', 'ATL', 111.0, 760.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 811, 820, -9.0, 942, 958, -16.0, '9E', 3317, 'N912XJ', 'JFK', 'BUF', 58.0, 301.0, 8.0, 20.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 811, 810, 1.0, 1121, 1116, 5.0, 'DL', 1959, 'N971DL', 'JFK', 'MCO', 129.0, 944.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 812, 815, -3.0, 1100, 1131, -31.0, 'DL', 1167, 'N308DE', 'JFK', 'TPA', 139.0, 1005.0, 8.0, 15.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 813, 821, -8.0, 945, 947, -2.0, 'EV', 3259, 'N12142', 'EWR', 'PWM', 51.0, 284.0, 8.0, 21.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 814, 817, -3.0, 1041, 1058, -17.0, 'DL', 914, 'N366NW', 'LGA', 'DEN', 244.0, 1620.0, 8.0, 17.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 815, 745, 30.0, 1133, 1125, 8.0, 'AA', 59, 'N361AA', 'JFK', 'SFO', 350.0, 2586.0, 7.0, 45.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 816, 819, -3.0, 1246, 1306, -20.0, 'B6', 717, 'N506JB', 'JFK', 'SJU', 181.0, 1598.0, 8.0, 19.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 817, 820, -3.0, 929, 939, -10.0, '9E', 4051, 'N8751D', 'JFK', 'BWI', 35.0, 184.0, 8.0, 20.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 820, 825, -5.0, 934, 945, -11.0, 'MQ', 4418, 'N856MQ', 'JFK', 'DCA', 48.0, 213.0, 8.0, 25.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 824, 824, 0.0, 943, 950, -7.0, 'UA', 278, 'N852UA', 'EWR', 'BOS', 37.0, 200.0, 8.0, 24.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 824, 830, -6.0, 1110, 1143, -33.0, 'UA', 1072, 'N47414', 'EWR', 'FLL', 144.0, 1065.0, 8.0, 30.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 824, 824, 0.0, 1110, 1130, -20.0, 'UA', 1492, 'N37413', 'EWR', 'MCO', 141.0, 937.0, 8.0, 24.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 825, 830, -5.0, 1015, 1023, -8.0, '9E', 4220, 'N830AY', 'JFK', 'RDU', 72.0, 427.0, 8.0, 30.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 826, 830, -4.0, 952, 950, 2.0, 'WN', 1477, 'N966WN', 'EWR', 'MDW', 125.0, 711.0, 8.0, 30.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 827, 830, -3.0, 1005, 1015, -10.0, 'AA', 313, 'N4YSAA', 'LGA', 'ORD', 121.0, 733.0, 8.0, 30.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 828, 830, -2.0, 1303, 1335, -32.0, 'DL', 301, 'N637DL', 'JFK', 'SJU', 180.0, 1598.0, 8.0, 30.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 828, 835, -7.0, 1047, 1105, -18.0, 'MQ', 4610, 'N534MQ', 'LGA', 'ATL', 113.0, 762.0, 8.0, 35.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 829, 830, -1.0, 1006, 1013, -7.0, 'EV', 3815, 'N16961', 'EWR', 'GSO', 71.0, 445.0, 8.0, 30.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 835, 815, 20.0, 1141, 1118, 23.0, 'DL', 1429, 'N396DA', 'JFK', 'LAS', 327.0, 2248.0, 8.0, 15.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 837, 840, -3.0, 1006, 1010, -4.0, 'EV', 4529, 'N19966', 'EWR', 'PIT', 57.0, 319.0, 8.0, 40.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 837, 840, -3.0, 1007, 1030, -23.0, 'MQ', 4521, 'N719MQ', 'LGA', 'RDU', 69.0, 431.0, 8.0, 40.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 837, 800, 37.0, 1228, 1125, 63.0, 'UA', 397, 'N502UA', 'JFK', 'SFO', 361.0, 2586.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 838, 845, -7.0, 1057, 1105, -8.0, 'EV', 4364, 'N11191', 'EWR', 'MCI', 172.0, 1092.0, 8.0, 45.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 838, 840, -2.0, 1154, 1151, 3.0, 'UA', 1626, 'N37287', 'EWR', 'SAN', 352.0, 2425.0, 8.0, 40.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 839, 848, -9.0, 1318, 1111, NULL, 'EV', 4625, 'N14116', 'EWR', 'XNA', NULL, 1131.0, 8.0, 48.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 841, 840, 1.0, 1144, 1203, -19.0, 'B6', 553, 'N521JB', 'EWR', 'RSW', 152.0, 1068.0, 8.0, 40.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 844, 845, -1.0, 1410, 1350, 20.0, 'AA', 1357, 'N625AA', 'JFK', 'SJU', 189.0, 1598.0, 8.0, 45.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 845, 845, 0.0, 953, 1015, -22.0, '9E', 3405, 'N915XJ', 'JFK', 'DCA', 40.0, 213.0, 8.0, 45.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 847, 847, 0.0, 1142, 1204, -22.0, 'UA', 238, 'N482UA', 'LGA', 'IAH', 215.0, 1416.0, 8.0, 47.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 849, 840, 9.0, 1006, 1003, 3.0, '9E', 3422, 'N910XJ', 'JFK', 'BOS', 43.0, 187.0, 8.0, 40.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 850, 855, -5.0, 1041, 1101, -20.0, 'EV', 4383, 'N17159', 'EWR', 'DTW', 87.0, 488.0, 8.0, 55.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 851, 855, -4.0, 1051, 1104, -13.0, '9E', 3353, 'N925XJ', 'JFK', 'DTW', 93.0, 509.0, 8.0, 55.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 852, 859, -7.0, 1125, 1142, -17.0, 'UA', 565, 'N541UA', 'EWR', 'LAS', 308.0, 2227.0, 8.0, 59.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 853, 855, -2.0, 1046, 1102, -16.0, 'EV', 4913, 'N708EV', 'EWR', 'DTW', 87.0, 488.0, 8.0, 55.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 854, 900, -6.0, 1120, 1146, -26.0, 'DL', 1747, 'N671DN', 'LGA', 'ATL', 113.0, 762.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 854, 900, -6.0, 947, 1022, -35.0, 'US', 2167, 'N770UW', 'LGA', 'DCA', 41.0, 214.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 856, 900, -4.0, 1155, 1220, -25.0, 'AA', 647, 'N5DWAA', 'JFK', 'MIA', 145.0, 1089.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 856, 850, 6.0, 1143, 1148, -5.0, 'B6', 59, 'N627JB', 'JFK', 'TPA', 137.0, 1005.0, 8.0, 50.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 856, 900, -4.0, 1049, 1116, -27.0, 'DL', 181, 'N354NW', 'LGA', 'DTW', 85.0, 502.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 856, 905, -9.0, 1101, 1115, -14.0, 'MQ', 4478, 'N722MQ', 'LGA', 'DTW', 98.0, 502.0, 9.0, 5.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 856, 857, -1.0, 1141, 1207, -26.0, 'UA', 524, 'N498UA', 'EWR', 'PBI', 139.0, 1023.0, 8.0, 57.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 857, 900, -3.0, 1440, 1540, -60.0, 'HA', 51, 'N384HA', 'JFK', 'HNL', 605.0, 4983.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 857, 805, 52.0, 1143, 1112, 31.0, 'B6', 17, 'N760JB', 'JFK', 'FLL', 145.0, 1069.0, 8.0, 5.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 857, 900, -3.0, 1205, 1227, -22.0, 'DL', 120, 'N710TW', 'JFK', 'LAX', 334.0, 2475.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 857, 900, -3.0, 1137, 1205, -28.0, 'DL', 1885, 'N330NW', 'LGA', 'MCO', 130.0, 950.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 857, 857, 0.0, 1200, 1210, -10.0, 'UA', 1202, 'N75433', 'EWR', 'MIA', 142.0, 1085.0, 8.0, 57.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 859, 900, -1.0, 1232, 1221, 11.0, 'B6', 1061, 'N197JB', 'JFK', 'AUS', 234.0, 1521.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 900, 900, 0.0, 1235, 1220, 15.0, 'AA', 1, 'N336AA', 'JFK', 'LAX', 362.0, 2475.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 901, 900, 1.0, 1043, 1048, -5.0, 'UA', 673, 'N483UA', 'EWR', 'ORD', 129.0, 719.0, 9.0, 0.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 903, 910, -7.0, 1139, 1147, -8.0, 'EV', 4140, 'N18556', 'EWR', 'ATL', 115.0, 746.0, 9.0, 10.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 904, 905, -1.0, 1016, 1022, -6.0, 'B6', 56, 'N316JB', 'JFK', 'BTV', 52.0, 266.0, 9.0, 5.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 904, 910, -6.0, 1035, 1055, -20.0, 'B6', 1103, 'N179JB', 'JFK', 'RDU', 74.0, 427.0, 9.0, 10.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 904, 905, -1.0, 1216, 1226, -10.0, 'DL', 2379, 'N335NB', 'LGA', 'FLL', 157.0, 1076.0, 9.0, 5.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 905, 910, -5.0, 1045, 1059, -14.0, 'UA', 1529, 'N87527', 'EWR', 'CLE', 72.0, 404.0, 9.0, 10.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 906, 857, 9.0, 1215, 1207, 8.0, 'UA', 1110, 'N33292', 'EWR', 'IAH', 218.0, 1400.0, 8.0, 57.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 907, 825, 42.0, 1111, 1026, 45.0, 'US', 487, 'N659AW', 'JFK', 'CLT', 80.0, 541.0, 8.0, 25.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 910, 835, 35.0, 1226, 1150, 36.0, 'AA', 717, 'N3GRAA', 'LGA', 'DFW', 233.0, 1389.0, 8.0, 35.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 913, 915, -2.0, 1211, 1224, -13.0, 'B6', 25, 'N554JB', 'JFK', 'FLL', 151.0, 1069.0, 9.0, 15.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 916, 729, 107.0, 1027, 849, 98.0, 'B6', 1305, 'N298JB', 'JFK', 'IAD', 46.0, 228.0, 7.0, 29.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, 917, 920, -3.0, 1236, 1240, -4.0, 'AA', 1589, 'N4XKAA', 'EWR', 'DFW', 231.0, 1372.0, 9.0, 20.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 917, 908, 9.0, 1346, 1409, -23.0, 'UA', 1519, 'N33714', 'EWR', 'STT', 184.0, 1634.0, 9.0, 8.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 920, 925, -5.0, 1025, 1040, -15.0, 'EV', 4636, 'N14998', 'EWR', 'DCA', 37.0, 199.0, 9.0, 25.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 922, 815, 67.0, 1114, 958, 76.0, '9E', 3521, 'N937XJ', 'JFK', 'ORD', 146.0, 740.0, 8.0, 15.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 922, 920, 2.0, 1256, 1245, 11.0, 'AA', 721, 'N3JWAA', 'LGA', 'DFW', 238.0, 1389.0, 9.0, 20.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 922, 925, -3.0, 1156, 1150, 6.0, 'WN', 3494, 'N413WN', 'EWR', 'DEN', 241.0, 1605.0, 9.0, 25.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 926, 920, 6.0, 1245, 1233, 12.0, 'UA', 1669, 'N57864', 'EWR', 'LAX', 343.0, 2454.0, 9.0, 20.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 927, 930, -3.0, 1103, 1103, 0.0, '9E', 3661, 'N826AY', 'JFK', 'ROC', 54.0, 264.0, 9.0, 30.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 928, 921, 7.0, 1038, 1028, 10.0, 'B6', 1004, 'N564JB', 'JFK', 'BOS', 38.0, 187.0, 9.0, 21.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 928, 928, 0.0, 1051, 1050, 1.0, 'B6', 4, 'N706JB', 'JFK', 'BUF', 54.0, 301.0, 9.0, 28.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 929, 935, -6.0, 1231, 1235, -4.0, 'VX', 251, 'N842VA', 'JFK', 'LAS', 325.0, 2248.0, 9.0, 35.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 931, 929, 2.0, 1404, 1426, -22.0, 'B6', 215, 'N794JB', 'EWR', 'SJU', 187.0, 1608.0, 9.0, 29.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 933, 935, -2.0, 1209, 1237, -28.0, 'B6', 361, 'N590JB', 'LGA', 'PBI', 137.0, 1035.0, 9.0, 35.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 935, 935, 0.0, 1211, 1230, -19.0, 'B6', 41, 'N519JB', 'JFK', 'MCO', 130.0, 944.0, 9.0, 35.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 936, 930, 6.0, 1220, 1245, -25.0, 'B6', 375, 'N662JB', 'LGA', 'FLL', 148.0, 1076.0, 9.0, 30.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 939, 940, -1.0, 1234, 1250, -16.0, 'AA', 1871, 'N3CSAA', 'LGA', 'MIA', 144.0, 1096.0, 9.0, 40.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 943, 945, -2.0, 1057, 1135, -38.0, 'WN', 469, 'N246LV', 'LGA', 'BNA', 119.0, 764.0, 9.0, 45.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 945, 945, 0.0, 1128, 1130, -2.0, 'AA', 319, 'N4WKAA', 'LGA', 'ORD', 142.0, 733.0, 9.0, 45.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 945, 950, -5.0, 1058, 1103, -5.0, 'B6', 600, 'N258JB', 'JFK', 'PWM', 51.0, 273.0, 9.0, 50.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 946, 955, -9.0, 1040, 1100, -20.0, '9E', 3667, 'N8928A', 'JFK', 'PHL', 27.0, 94.0, 9.0, 55.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 949, 1006, -17.0, 1124, 1121, 3.0, 'EV', 5711, 'N825AS', 'JFK', 'IAD', 43.0, 228.0, 10.0, 6.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 950, 1000, -10.0, 1112, 1128, -16.0, 'EV', 4187, 'N13553', 'EWR', 'BNA', 116.0, 748.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 952, 955, -3.0, 1159, 1220, -21.0, 'MQ', 4654, 'N514MQ', 'LGA', 'ATL', 111.0, 762.0, 9.0, 55.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 953, 959, -6.0, 1117, 1129, -12.0, 'MQ', 4670, 'N829MQ', 'LGA', 'BNA', 125.0, 764.0, 9.0, 59.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 954, 1000, -6.0, 1240, 1304, -24.0, 'B6', 503, 'N591JB', 'EWR', 'FLL', 150.0, 1065.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 955, 1000, -5.0, 1332, 1341, -9.0, 'DL', 1765, 'N722TW', 'JFK', 'SFO', 366.0, 2586.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 956, 1000, -4.0, 1134, 1209, -35.0, 'US', 1277, 'N562UW', 'LGA', 'CLT', 81.0, 544.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 957, 959, -2.0, 1245, 1247, -2.0, 'B6', 197, 'N558JB', 'JFK', 'LAS', 316.0, 2248.0, 9.0, 59.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 958, 959, -1.0, 1340, 1333, 7.0, 'US', 338, 'N679AW', 'JFK', 'PHX', 316.0, 2153.0, 9.0, 59.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 959, 1005, -6.0, 1253, 1315, -22.0, 'UA', 454, 'N444UA', 'EWR', 'FLL', 160.0, 1065.0, 10.0, 5.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1000, 1000, 0.0, 1251, 1321, -30.0, 'DL', 2044, 'N904DL', 'LGA', 'MIA', 144.0, 1096.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1002, 1000, 2.0, 1222, 1239, -17.0, 'DL', 1847, 'N646DL', 'LGA', 'ATL', 112.0, 762.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1002, 819, 103.0, 1305, 1203, 62.0, 'UA', 665, 'N814UA', 'EWR', 'SFO', 342.0, 2565.0, 8.0, 19.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 1003, 1005, -2.0, 1248, 1303, -15.0, 'DL', 1529, 'N3735D', 'JFK', 'LAS', 317.0, 2248.0, 10.0, 5.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1003, 1000, 3.0, 1243, 1251, -8.0, 'UA', 1177, 'N24702', 'EWR', 'EGE', 263.0, 1726.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1004, 1006, -2.0, 1210, 1219, -9.0, 'EV', 4175, 'N12924', 'EWR', 'IND', 107.0, 645.0, 10.0, 6.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1005, 1010, -5.0, 1140, 1140, 0.0, 'MQ', 3795, 'N502MQ', 'EWR', 'ORD', 133.0, 719.0, 10.0, 10.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1009, 1015, -6.0, 1205, 1216, -11.0, 'US', 1427, 'N711UW', 'JFK', 'CLT', 85.0, 541.0, 10.0, 15.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1010, 1020, -10.0, 1326, 1330, -4.0, 'AA', 731, 'N3HCAA', 'LGA', 'DFW', 231.0, 1389.0, 10.0, 20.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1011, 915, 56.0, 1131, 1038, 53.0, 'B6', 20, 'N190JB', 'JFK', 'ROC', 54.0, 264.0, 9.0, 15.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 1011, 1021, -10.0, 1325, 1342, -17.0, 'DL', 1903, 'N920DE', 'LGA', 'SRQ', 157.0, 1047.0, 10.0, 21.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1014, 1016, -2.0, 1247, 1230, 17.0, 'DL', 2319, 'N979DL', 'LGA', 'MSP', 186.0, 1020.0, 10.0, 16.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1018, 1015, 3.0, 1346, 1340, 6.0, 'US', 75, 'N648AW', 'EWR', 'PHX', 308.0, 2133.0, 10.0, 15.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1020, 1025, -5.0, 1208, 1231, -23.0, 'EV', 5026, 'N608QX', 'EWR', 'DTW', 84.0, 488.0, 10.0, 25.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1022, 1030, -8.0, 1155, 1215, -20.0, 'MQ', 4471, 'N725MQ', 'LGA', 'RDU', 72.0, 431.0, 10.0, 30.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1023, 1000, 23.0, 1127, 1125, 2.0, 'EV', 5736, 'N830AS', 'LGA', 'IAD', 42.0, 229.0, 10.0, 0.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1025, 1030, -5.0, 1237, 1252, -15.0, 'DL', 2343, 'N342NB', 'EWR', 'ATL', 116.0, 746.0, 10.0, 30.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1026, 1030, -4.0, 1335, 1340, -5.0, 'AA', 19, 'N338AA', 'JFK', 'LAX', 344.0, 2475.0, 10.0, 30.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1028, 1015, 13.0, 1132, 1131, 1.0, 'EV', 4663, 'N13995', 'EWR', 'IAD', 43.0, 212.0, 10.0, 15.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1029, 1030, -1.0, 1342, 1355, -13.0, 'AA', 179, 'N353AA', 'JFK', 'SFO', 349.0, 2586.0, 10.0, 30.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1029, 1031, -2.0, 1343, 1402, -19.0, 'B6', 641, 'N657JB', 'JFK', 'SFO', 350.0, 2586.0, 10.0, 31.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1029, 1015, 14.0, 1207, 1208, -1.0, 'US', 1103, 'N176UW', 'EWR', 'CLT', 81.0, 529.0, 10.0, 15.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1031, 1029, 2.0, 1140, 1152, -12.0, 'EV', 4240, 'N14568', 'EWR', 'BUF', 53.0, 282.0, 10.0, 29.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1032, 1044, -12.0, 1229, 1223, 6.0, 'EV', 4090, 'N17146', 'EWR', 'RDU', 72.0, 416.0, 10.0, 44.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1032, 950, 42.0, 1306, 1311, -5.0, 'UA', 499, 'N813UA', 'EWR', 'SEA', 316.0, 2402.0, 9.0, 50.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 1039, 1040, -1.0, 1329, 1350, -21.0, 'DL', 1174, 'N327NB', 'LGA', 'PBI', 151.0, 1035.0, 10.0, 40.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1040, 1047, -7.0, 1338, 1330, 8.0, 'UA', 448, 'N569UA', 'EWR', 'LAS', 312.0, 2227.0, 10.0, 47.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1042, 1030, 12.0, 1359, 1415, -16.0, 'VX', 23, 'N839VA', 'JFK', 'SFO', 353.0, 2586.0, 10.0, 30.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1044, 1050, -6.0, 1235, 1250, -15.0, 'MQ', 4589, 'N537MQ', 'LGA', 'DTW', 86.0, 502.0, 10.0, 50.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1045, 1036, 9.0, 1324, 1333, -9.0, 'UA', 927, 'N536UA', 'EWR', 'PBI', 144.0, 1023.0, 10.0, 36.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1046, 1047, -1.0, 1343, 1344, -1.0, 'UA', 575, 'N677UA', 'EWR', 'IAH', 209.0, 1400.0, 10.0, 47.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1050, 1050, 0.0, 1331, 1404, -33.0, 'B6', 373, 'N597JB', 'LGA', 'FLL', 148.0, 1076.0, 10.0, 50.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1053, 1045, 8.0, 1244, 1250, -6.0, 'DL', 1573, 'N332NW', 'LGA', 'MEM', 147.0, 963.0, 10.0, 45.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1054, 1039, 15.0, 1332, 1329, 3.0, 'B6', 31, 'N569JB', 'JFK', 'MCO', 128.0, 944.0, 10.0, 39.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1054, 1055, -1.0, 1213, 1235, -22.0, 'WN', 374, 'N8313F', 'LGA', 'MDW', 123.0, 725.0, 10.0, 55.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1055, 1100, -5.0, 1327, 1338, -11.0, 'DL', 1647, 'N678DL', 'LGA', 'ATL', 116.0, 762.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1056, 1100, -4.0, 1414, 1420, -6.0, 'DL', 1275, 'N3768', 'JFK', 'SLC', 291.0, 1990.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1056, 1100, -4.0, 1417, 1425, -8.0, 'UA', 642, 'N560UA', 'JFK', 'SFO', 358.0, 2586.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1057, 1015, 42.0, 1357, 1327, 30.0, 'UA', 680, 'N570UA', 'LGA', 'IAH', 220.0, 1416.0, 10.0, 15.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1057, 1100, -3.0, 1351, 1413, -22.0, 'UA', 952, 'N436UA', 'EWR', 'RSW', 156.0, 1068.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1058, 1100, -2.0, 1223, 1215, 8.0, 'MQ', 3792, 'N509MQ', 'JFK', 'DCA', 49.0, 213.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1059, 1100, -1.0, 1203, 1215, -12.0, 'US', 2171, 'N945UW', 'LGA', 'DCA', 44.0, 214.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1102, 1100, 2.0, 1248, 1300, -12.0, 'WN', 1873, 'N554WN', 'LGA', 'STL', 148.0, 888.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1103, 920, 103.0, 1239, 1125, 74.0, 'MQ', 4582, 'N522MQ', 'LGA', 'CLT', 77.0, 544.0, 9.0, 20.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 1106, 1115, -9.0, 1251, 1310, -19.0, 'MQ', 4485, 'N711MQ', 'LGA', 'CMH', 81.0, 479.0, 11.0, 15.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1109, 1114, -5.0, 1257, 1315, -18.0, 'DL', 1031, 'N348NB', 'LGA', 'DTW', 85.0, 502.0, 11.0, 14.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1111, 1115, -4.0, 1227, 1257, -30.0, 'EV', 5273, 'N709EV', 'LGA', 'PIT', 56.0, 335.0, 11.0, 15.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1112, 840, 152.0, 1410, 1204, 126.0, 'UA', 112, 'N26123', 'JFK', 'LAX', 335.0, 2475.0, 8.0, 40.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 1113, 1118, -5.0, 1326, 1334, -8.0, 'EV', 4279, 'N12201', 'EWR', 'MCI', 175.0, 1092.0, 11.0, 18.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1113, 905, 128.0, 1428, 1235, 113.0, 'VX', 407, 'N638VA', 'JFK', 'LAX', 352.0, 2475.0, 9.0, 5.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 1117, 1125, -8.0, 1303, 1305, -2.0, 'AA', 327, 'N3CXAA', 'LGA', 'ORD', 144.0, 733.0, 11.0, 25.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1122, 1130, -8.0, 1253, 1306, -13.0, 'EV', 4319, 'N12160', 'EWR', 'RDU', 69.0, 416.0, 11.0, 30.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1122, 1130, -8.0, 1315, 1334, -19.0, 'US', 975, 'N104UW', 'LGA', 'CLT', 79.0, 544.0, 11.0, 30.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1124, 1129, -5.0, 1344, 1418, -34.0, 'B6', 523, 'N649JB', 'EWR', 'MCO', 125.0, 937.0, 11.0, 29.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1124, 1125, -1.0, 1435, 1438, -3.0, 'B6', 673, 'N821JB', 'JFK', 'LAX', 353.0, 2475.0, 11.0, 25.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1125, 1130, -5.0, 1309, 1315, -6.0, 'WN', 145, 'N918WN', 'EWR', 'STL', 144.0, 872.0, 11.0, 30.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1125, 1100, 25.0, 1226, 1209, 17.0, 'UA', 1233, 'N16234', 'EWR', 'BOS', 42.0, 200.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1126, 1125, 1.0, 1550, 1620, -30.0, 'DL', 315, 'N3749D', 'JFK', 'SJU', 179.0, 1598.0, 11.0, 25.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1126, 1126, 0.0, 1332, 1345, -13.0, 'UA', 895, 'N465UA', 'EWR', 'DEN', 225.0, 1605.0, 11.0, 26.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1127, 1059, 28.0, 1342, 1324, 18.0, 'B6', 1925, 'N603JB', 'JFK', 'MSY', 169.0, 1182.0, 10.0, 59.0, '2013-02-10T15:00:00Z'), #> (2013, 2, 10, 1128, 1115, 13.0, 1410, 1425, -15.0, 'AA', 2099, 'N3FWAA', 'LGA', 'MIA', 145.0, 1096.0, 11.0, 15.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1130, 1130, 0.0, 1404, 1422, -18.0, 'UA', 1000, 'N14102', 'EWR', 'MCO', 131.0, 937.0, 11.0, 30.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1134, 1130, 4.0, 1420, 1430, -10.0, 'DL', 695, 'N986DL', 'JFK', 'MCO', 130.0, 944.0, 11.0, 30.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1134, 1140, -6.0, 1435, 1450, -15.0, 'DL', 930, 'N324NB', 'LGA', 'FLL', 154.0, 1076.0, 11.0, 40.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1135, 1132, 3.0, 1415, 1439, -24.0, 'UA', 1707, 'N73256', 'EWR', 'TPA', 140.0, 997.0, 11.0, 32.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1138, 1140, -2.0, 1302, 1255, 7.0, 'EV', 4264, 'N15983', 'EWR', 'BTV', 50.0, 266.0, 11.0, 40.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1142, 1145, -3.0, 1429, 1454, -25.0, 'DL', 1875, 'N908DL', 'LGA', 'TPA', 142.0, 1010.0, 11.0, 45.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1143, 1145, -2.0, 1359, 1432, -33.0, 'EV', 5371, 'N615QX', 'LGA', 'JAX', 114.0, 833.0, 11.0, 45.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1144, 1135, 9.0, 1323, 1330, -7.0, 'MQ', 4553, 'N736MQ', 'LGA', 'CLE', 71.0, 419.0, 11.0, 35.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1145, 1140, 5.0, 1457, 1445, 12.0, 'AA', 1623, 'N3HXAA', 'EWR', 'MIA', 139.0, 1085.0, 11.0, 40.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1146, 1145, 1.0, 1306, 1321, -15.0, 'FL', 353, 'N977AT', 'LGA', 'CAK', 65.0, 397.0, 11.0, 45.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1146, 1155, -9.0, 1249, 1304, -15.0, '9E', 3483, 'N936XJ', 'JFK', 'BOS', 36.0, 187.0, 11.0, 55.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1149, 1200, -11.0, 1309, 1330, -21.0, 'MQ', 4601, 'N518MQ', 'LGA', 'BNA', 114.0, 764.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1150, 914, 156.0, 1337, 1108, 149.0, 'EV', 4178, 'N17185', 'EWR', 'STL', 148.0, 872.0, 9.0, 14.0, '2013-02-10T14:00:00Z'), #> (2013, 2, 10, 1150, 1200, -10.0, 1249, 1303, -14.0, 'B6', 1174, 'N284JB', 'EWR', 'BOS', 40.0, 200.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1150, 1153, -3.0, 1505, 1522, -17.0, 'UA', 81, 'N37252', 'EWR', 'SFO', 356.0, 2565.0, 11.0, 53.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1152, 1129, 23.0, 1440, 1437, 3.0, 'B6', 133, 'N641JB', 'JFK', 'RSW', 153.0, 1074.0, 11.0, 29.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1152, 1134, 18.0, 1445, 1345, 60.0, 'DL', 2219, 'N325NB', 'LGA', 'MSP', 186.0, 1020.0, 11.0, 34.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1153, 1155, -2.0, 1449, 1458, -9.0, 'B6', 625, 'N247JB', 'JFK', 'HOU', 217.0, 1428.0, 11.0, 55.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1153, 1200, -7.0, 1246, 1305, -19.0, 'US', 2126, 'N958UW', 'LGA', 'BOS', 37.0, 184.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1155, 1200, -5.0, 1506, 1529, -23.0, 'DL', 863, 'N718TW', 'JFK', 'LAX', 334.0, 2475.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1155, 1200, -5.0, 1302, 1315, -13.0, 'MQ', 4425, 'N856MQ', 'JFK', 'DCA', 50.0, 213.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1156, 1200, -4.0, 1503, 1510, -7.0, 'AA', 3, 'N319AA', 'JFK', 'LAX', 342.0, 2475.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1157, 1200, -3.0, 1425, 1440, -15.0, 'DL', 1947, 'N926DL', 'LGA', 'ATL', 116.0, 762.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1157, 1200, -3.0, 1259, 1309, -10.0, 'US', 2173, 'N760US', 'LGA', 'DCA', 45.0, 214.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1158, 1205, -7.0, 1323, 1345, -22.0, 'MQ', 4431, 'N739MQ', 'LGA', 'RDU', 66.0, 431.0, 12.0, 5.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1158, 1200, -2.0, 1342, 1400, -18.0, 'US', 1443, 'N752US', 'JFK', 'CLT', 83.0, 541.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1201, 1205, -4.0, 1324, 1325, -1.0, 'WN', 644, 'N453WN', 'EWR', 'MDW', 125.0, 711.0, 12.0, 5.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1201, 1150, 11.0, 1503, 1345, 78.0, 'MQ', 4646, 'N513MQ', 'LGA', 'MSP', 172.0, 1020.0, 11.0, 50.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1203, 1203, 0.0, 1458, 1506, -8.0, 'UA', 1549, 'N33284', 'EWR', 'IAH', 218.0, 1400.0, 12.0, 3.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1208, 1210, -2.0, 1256, 1310, -14.0, 'WN', 477, 'N757LV', 'EWR', 'BWI', 34.0, 169.0, 12.0, 10.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1209, 1100, 69.0, 1507, 1439, 28.0, 'UA', 1120, 'N24211', 'EWR', 'SFO', 323.0, 2565.0, 11.0, 0.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1214, 1220, -6.0, 1417, 1350, 27.0, 'MQ', 3697, 'N517MQ', 'EWR', 'ORD', 147.0, 719.0, 12.0, 20.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1219, 1210, 9.0, 1321, 1322, -1.0, 'B6', 42, 'N309JB', 'JFK', 'SYR', 45.0, 209.0, 12.0, 10.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1220, 1205, 15.0, 1326, 1318, 8.0, 'EV', 4087, 'N14570', 'EWR', 'PWM', 53.0, 284.0, 12.0, 5.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1220, 1230, -10.0, 1409, 1427, -18.0, 'EV', 4640, 'N12967', 'EWR', 'DAY', 91.0, 533.0, 12.0, 30.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1221, 1225, -4.0, 1406, 1410, -4.0, 'EV', 4446, 'N13908', 'EWR', 'CMH', 83.0, 463.0, 12.0, 25.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1221, 1152, 29.0, 1434, 1424, 10.0, 'EV', 4679, 'N22909', 'EWR', 'JAX', 118.0, 820.0, 11.0, 52.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1228, 1230, -2.0, 1345, 1405, -20.0, 'WN', 283, 'N252WN', 'LGA', 'MKE', 120.0, 738.0, 12.0, 30.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1228, 1235, -7.0, 1355, 1415, -20.0, 'MQ', 4404, 'N850MQ', 'JFK', 'RDU', 69.0, 427.0, 12.0, 35.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1229, 1232, -3.0, 1405, 1429, -24.0, 'EV', 4135, 'N12142', 'EWR', 'CLT', 77.0, 529.0, 12.0, 32.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1229, 1230, -1.0, 1545, 1543, 2.0, 'UA', 1734, 'N77518', 'LGA', 'IAH', 218.0, 1416.0, 12.0, 30.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1230, 1205, 25.0, 1549, 1520, 29.0, 'AA', 743, 'N539AA', 'LGA', 'DFW', 219.0, 1389.0, 12.0, 5.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1230, 1200, 30.0, 1506, 1430, 36.0, 'MQ', 4658, 'N515MQ', 'LGA', 'ATL', 114.0, 762.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1232, 1220, 12.0, 1349, 1342, 7.0, 'B6', 66, 'N187JB', 'JFK', 'BUF', 60.0, 301.0, 12.0, 20.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1237, 1240, -3.0, 1443, 1445, -2.0, 'DL', 1131, 'N364NB', 'LGA', 'DTW', 90.0, 502.0, 12.0, 40.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1240, 1110, 90.0, 1407, 1220, 107.0, 'B6', 24, 'N298JB', 'JFK', 'BTV', 58.0, 266.0, 11.0, 10.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, 1243, 1240, 3.0, 1534, 1540, -6.0, 'AA', 1853, 'N472AA', 'EWR', 'DFW', 211.0, 1372.0, 12.0, 40.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1243, 1245, -2.0, 1348, 1350, -2.0, 'AA', 1850, 'N3GBAA', 'JFK', 'BOS', 38.0, 187.0, 12.0, 45.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1244, 1245, -1.0, 1608, 1550, 18.0, 'AA', 745, 'N3JNAA', 'LGA', 'DFW', 226.0, 1389.0, 12.0, 45.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1246, 1250, -4.0, 1436, 1449, -13.0, 'EV', 4893, 'N710EV', 'EWR', 'DTW', 82.0, 488.0, 12.0, 50.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1246, 1250, -4.0, 1545, 1605, -20.0, 'UA', 1612, 'N73283', 'EWR', 'DFW', 224.0, 1372.0, 12.0, 50.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1248, 1250, -2.0, 1353, 1354, -1.0, 'B6', 1006, 'N316JB', 'JFK', 'BOS', 43.0, 187.0, 12.0, 50.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1248, 1250, -2.0, 1540, 1550, -10.0, 'DL', 1685, 'N327NW', 'LGA', 'MCO', 129.0, 950.0, 12.0, 50.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1248, 1230, 18.0, 1534, 1527, 7.0, 'UA', 726, 'N559UA', 'EWR', 'MIA', 147.0, 1085.0, 12.0, 30.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1249, 1245, 4.0, 1553, 1600, -7.0, 'AA', 2253, 'N3BCAA', 'LGA', 'MIA', 145.0, 1096.0, 12.0, 45.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1249, 1250, -1.0, 1525, 1520, 5.0, 'WN', 390, 'N946WN', 'LGA', 'DEN', 241.0, 1620.0, 12.0, 50.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1251, 1300, -9.0, 1457, 1450, 7.0, 'MQ', 4426, 'N719MQ', 'LGA', 'CMH', 83.0, 479.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1253, 1257, -4.0, 1339, 1354, -15.0, 'EV', 4368, 'N12157', 'EWR', 'BDL', 26.0, 116.0, 12.0, 57.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1253, 1300, -7.0, 1514, 1529, -15.0, 'EV', 4950, 'N741EV', 'EWR', 'ATL', 118.0, 746.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1255, 1259, -4.0, 1408, 1420, -12.0, 'EV', 4158, 'N14998', 'EWR', 'RIC', 50.0, 277.0, 12.0, 59.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1255, 1305, -10.0, 1357, 1405, -8.0, 'EV', 4129, 'N14959', 'EWR', 'DCA', 43.0, 199.0, 13.0, 5.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1255, 1259, -4.0, 1526, 1555, -29.0, 'B6', 991, 'N249JB', 'JFK', 'PBI', 135.0, 1028.0, 12.0, 59.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1255, 1259, -4.0, 1455, 1456, -1.0, 'US', 1459, 'N180US', 'LGA', 'CLT', 83.0, 544.0, 12.0, 59.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1258, 1300, -2.0, 1351, 1406, -15.0, '9E', 3638, 'N8758D', 'JFK', 'PHL', 27.0, 94.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1259, 1300, -1.0, 1425, 1407, 18.0, 'US', 2175, 'N749US', 'LGA', 'DCA', 43.0, 214.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1300, 1259, 1.0, 1452, 1436, 16.0, 'UA', 1137, 'N17122', 'EWR', 'ORD', 127.0, 719.0, 12.0, 59.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1301, 1310, -9.0, 1411, 1427, -16.0, 'EV', 4148, 'N19966', 'EWR', 'BUF', 52.0, 282.0, 13.0, 10.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1301, 1300, 1.0, 1509, 1506, 3.0, '9E', 3762, 'N8775A', 'EWR', 'CVG', 94.0, 569.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1301, 1305, -4.0, 1531, 1557, -26.0, 'UA', 1641, 'N12225', 'EWR', 'MCO', 130.0, 937.0, 13.0, 5.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1302, 1300, 2.0, 1615, 1610, 5.0, 'WN', 2239, 'N283WN', 'EWR', 'HOU', 234.0, 1411.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1304, 1229, 35.0, 1532, 1459, 33.0, 'EV', 3826, 'N14952', 'EWR', 'ATL', 123.0, 746.0, 12.0, 29.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1304, 1305, -1.0, 1501, 1450, 11.0, 'EV', 4306, 'N14158', 'LGA', 'CLE', 69.0, 419.0, 13.0, 5.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1304, 1308, -4.0, 1553, 1542, 11.0, 'FL', 348, 'N927AT', 'LGA', 'ATL', 120.0, 762.0, 13.0, 8.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1304, 1315, -11.0, 1515, 1520, -5.0, 'MQ', 4564, 'N734MQ', 'LGA', 'DTW', 88.0, 502.0, 13.0, 15.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1305, 1240, 25.0, 1548, 1555, -7.0, 'AA', 2041, 'N5DAAA', 'JFK', 'MIA', 141.0, 1089.0, 12.0, 40.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, 1311, 1315, -4.0, 1449, 1504, -15.0, 'US', 1895, 'N189UW', 'EWR', 'CLT', 77.0, 529.0, 13.0, 15.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1311, 1315, -4.0, 1622, 1623, -1.0, 'UA', 1054, 'N29124', 'EWR', 'LAX', 344.0, 2454.0, 13.0, 15.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1313, 1300, 13.0, 1603, 1605, -2.0, 'B6', 85, 'N599JB', 'JFK', 'FLL', 150.0, 1069.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1314, 1320, -6.0, 1510, 1509, 1.0, 'EV', 4628, 'N11192', 'EWR', 'STL', 150.0, 872.0, 13.0, 20.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1315, 620, 415.0, 1459, 835, 384.0, 'EV', 4292, 'N15980', 'EWR', 'CLT', 83.0, 529.0, 6.0, 20.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, 1316, 1325, -9.0, 1501, 1505, -4.0, 'MQ', 4475, 'N723MQ', 'LGA', 'RDU', 67.0, 431.0, 13.0, 25.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1317, 1317, 0.0, 1426, 1425, 1.0, 'EV', 3829, 'N14905', 'EWR', 'BOS', 46.0, 200.0, 13.0, 17.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1319, 1320, -1.0, 1424, 1436, -12.0, 'EV', 4231, 'N13975', 'EWR', 'IAD', 41.0, 212.0, 13.0, 20.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1324, 1322, 2.0, 1630, 1623, 7.0, 'B6', 431, 'N708JB', 'LGA', 'SRQ', 151.0, 1047.0, 13.0, 22.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1327, 1330, -3.0, 1714, 1705, 9.0, 'WN', 1078, 'N714CB', 'EWR', 'PHX', 329.0, 2133.0, 13.0, 30.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1329, 1326, 3.0, 1430, 1425, 5.0, 'EV', 5683, 'N16559', 'EWR', 'BWI', 35.0, 169.0, 13.0, 26.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1329, 1330, -1.0, 1600, 1616, -16.0, 'B6', 525, 'N317JB', 'EWR', 'MCO', 128.0, 937.0, 13.0, 30.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1329, 1320, 9.0, 1659, 1650, 9.0, 'VX', 411, 'N624VA', 'JFK', 'LAX', 348.0, 2475.0, 13.0, 20.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1330, 1338, -8.0, 1515, 1506, 9.0, 'EV', 4171, 'N13964', 'EWR', 'MSN', 146.0, 799.0, 13.0, 38.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1331, 1330, 1.0, 1654, 1640, 14.0, 'AA', 753, 'N3EAAA', 'LGA', 'DFW', 227.0, 1389.0, 13.0, 30.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1333, 1325, 8.0, 1757, 1809, -12.0, 'B6', 705, 'N789JB', 'JFK', 'SJU', 180.0, 1598.0, 13.0, 25.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1334, 1330, 4.0, 1553, 1605, -12.0, 'DL', 2043, 'N3757D', 'JFK', 'ATL', 119.0, 760.0, 13.0, 30.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1336, 1320, 16.0, 1618, 1619, -1.0, 'B6', 505, 'N509JB', 'EWR', 'FLL', 144.0, 1065.0, 13.0, 20.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1341, 1345, -4.0, 1701, 1705, -4.0, 'AA', 117, 'N329AA', 'JFK', 'LAX', 357.0, 2475.0, 13.0, 45.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1346, 1300, 46.0, 1507, 1440, 27.0, 'AA', 329, 'N4WMAA', 'LGA', 'ORD', 120.0, 733.0, 13.0, 0.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1348, 1350, -2.0, 1634, 1657, -23.0, 'UA', 620, 'N588UA', 'EWR', 'FLL', 147.0, 1065.0, 13.0, 50.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1349, 1350, -1.0, 1600, 1628, -28.0, 'DL', 1705, 'N320NB', 'LGA', 'MSY', 167.0, 1183.0, 13.0, 50.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1350, 1354, -4.0, 1447, 1500, -13.0, 'EV', 4434, 'N14177', 'EWR', 'MHT', 40.0, 209.0, 13.0, 54.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1350, 1350, 0.0, 1710, 1715, -5.0, 'US', 186, 'N665AW', 'EWR', 'PHX', 305.0, 2133.0, 13.0, 50.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1354, 1305, 49.0, 1515, 1425, 50.0, 'B6', 32, 'N190JB', 'JFK', 'ROC', 53.0, 264.0, 13.0, 5.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1355, 1400, -5.0, 1504, 1503, 1.0, 'US', 2130, 'N956UW', 'LGA', 'BOS', 39.0, 184.0, 14.0, 0.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1355, 1400, -5.0, 1459, 1509, -10.0, 'US', 2177, 'N767UW', 'LGA', 'DCA', 47.0, 214.0, 14.0, 0.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1356, 1345, 11.0, 1625, 1640, -15.0, 'B6', 1783, 'N613JB', 'JFK', 'MCO', 127.0, 944.0, 13.0, 45.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1356, 1350, 6.0, 1543, 1545, -2.0, 'MQ', 4577, 'N501MQ', 'LGA', 'CLT', 78.0, 544.0, 13.0, 50.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1357, 1400, -3.0, 1640, 1636, 4.0, 'DL', 2247, 'N638DL', 'LGA', 'ATL', 127.0, 762.0, 14.0, 0.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1358, 1345, 13.0, 1646, 1655, -9.0, 'B6', 83, 'N706JB', 'JFK', 'SEA', 320.0, 2422.0, 13.0, 45.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1400, 1410, -10.0, 1616, 1555, 21.0, 'MQ', 4491, 'N722MQ', 'LGA', 'CLE', 84.0, 419.0, 14.0, 10.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1400, 1359, 1.0, 1639, 1659, -20.0, 'UA', 1122, 'N34222', 'EWR', 'PBI', 136.0, 1023.0, 13.0, 59.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1401, 1350, 11.0, 1626, 1623, 3.0, 'B6', 615, 'N179JB', 'JFK', 'JAX', 118.0, 828.0, 13.0, 50.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1404, 1345, 19.0, 1655, 1705, -10.0, 'AA', 1073, 'N3CUAA', 'LGA', 'MIA', 145.0, 1096.0, 13.0, 45.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1407, 1410, -3.0, 1609, 1617, -8.0, 'EV', 4687, 'N14568', 'EWR', 'CVG', 104.0, 569.0, 14.0, 10.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1407, 1335, 32.0, 1654, 1632, 22.0, 'B6', 1161, 'N517JB', 'LGA', 'PBI', 134.0, 1035.0, 13.0, 35.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1412, 1356, 16.0, 1714, 1654, 20.0, 'UA', 1604, 'N73445', 'EWR', 'IAH', 222.0, 1400.0, 13.0, 56.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1414, 1415, -1.0, 1519, 1525, -6.0, 'B6', 1010, 'N206JB', 'JFK', 'BOS', 37.0, 187.0, 14.0, 15.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1414, 1415, -1.0, 1641, 1638, 3.0, 'DL', 935, 'N340NB', 'EWR', 'ATL', 120.0, 746.0, 14.0, 15.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1414, 1420, -6.0, 1611, 1550, 21.0, 'MQ', 3728, 'N527MQ', 'EWR', 'ORD', 121.0, 719.0, 14.0, 20.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1417, 1359, 18.0, 1609, 1600, 9.0, 'EV', 4370, 'N11194', 'EWR', 'CHS', 92.0, 628.0, 13.0, 59.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1419, 1355, 24.0, 1556, 1530, 26.0, 'WN', 348, 'N772SW', 'LGA', 'MDW', 129.0, 725.0, 13.0, 55.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1424, 1345, 39.0, 1543, 1457, 46.0, 'B6', 602, 'N258JB', 'JFK', 'PWM', 53.0, 273.0, 13.0, 45.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1427, 1430, -3.0, 1741, 1755, -14.0, 'UA', 560, 'N557UA', 'JFK', 'SFO', 347.0, 2586.0, 14.0, 30.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1428, 1430, -2.0, 1739, 1735, 4.0, 'AA', 883, 'N4YJAA', 'EWR', 'DFW', 224.0, 1372.0, 14.0, 30.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1429, 1428, 1.0, 1558, 1605, -7.0, 'UA', 402, 'N812UA', 'EWR', 'CLE', 69.0, 404.0, 14.0, 28.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1431, 1429, 2.0, 1548, 1547, 1.0, 'EV', 5712, 'N835AS', 'JFK', 'IAD', 44.0, 228.0, 14.0, 29.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1431, 1435, -4.0, 1544, 1559, -15.0, 'EV', 5968, 'N13958', 'LGA', 'IAD', 49.0, 229.0, 14.0, 35.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1431, 1430, 1.0, 1753, 1815, -22.0, 'DL', 2126, 'N703TW', 'JFK', 'SFO', 347.0, 2586.0, 14.0, 30.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1432, 1420, 12.0, 1654, 1713, -19.0, 'UA', 1166, 'N33103', 'EWR', 'TPA', 127.0, 997.0, 14.0, 20.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1434, 1416, 18.0, 1654, 1650, 4.0, 'FL', 349, 'N992AT', 'LGA', 'ATL', 122.0, 762.0, 14.0, 16.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1438, 1445, -7.0, 1617, 1647, -30.0, 'US', 1445, 'N197UW', 'LGA', 'CLT', 81.0, 544.0, 14.0, 45.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1440, 1440, 0.0, 1715, 1752, -37.0, 'UA', 1183, 'N76529', 'EWR', 'RSW', 144.0, 1068.0, 14.0, 40.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1441, 1420, 21.0, 1656, 1620, 36.0, 'MQ', 4588, 'N505MQ', 'LGA', 'MSP', 164.0, 1020.0, 14.0, 20.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1441, 1444, -3.0, 1750, 1755, -5.0, 'UA', 275, 'N427UA', 'LGA', 'IAH', 222.0, 1416.0, 14.0, 44.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1442, 1445, -3.0, 1556, 1606, -10.0, '9E', 3452, 'N914XJ', 'JFK', 'BOS', 40.0, 187.0, 14.0, 45.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1443, 1445, -2.0, 1642, 1640, 2.0, 'EV', 4381, 'N12922', 'EWR', 'DTW', 96.0, 488.0, 14.0, 45.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1444, 1443, 1.0, 1811, 1801, 10.0, 'UA', 595, 'N472UA', 'EWR', 'AUS', 250.0, 1504.0, 14.0, 43.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1445, 1436, 9.0, 1553, 1543, 10.0, 'EV', 3832, 'N16919', 'EWR', 'DCA', 46.0, 199.0, 14.0, 36.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1445, 1456, -11.0, 1618, 1624, -6.0, '9E', 4357, 'N8694A', 'JFK', 'ORF', 57.0, 290.0, 14.0, 56.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1445, 1445, 0.0, 1730, 1710, 20.0, 'MQ', 4669, 'N526MQ', 'LGA', 'ATL', 123.0, 762.0, 14.0, 45.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1445, 1445, 0.0, 1715, 1711, 4.0, 'UA', 1107, 'N33289', 'EWR', 'DEN', 244.0, 1605.0, 14.0, 45.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1447, 1445, 2.0, 1727, 1744, -17.0, 'B6', 153, 'N651JB', 'JFK', 'MCO', 127.0, 944.0, 14.0, 45.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1447, 1450, -3.0, 1645, 1645, 0.0, 'MQ', 4172, 'N630MQ', 'JFK', 'CLE', 78.0, 425.0, 14.0, 50.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1449, 1450, -1.0, 1626, 1640, -14.0, 'MQ', 4403, 'N832MQ', 'JFK', 'RDU', 70.0, 427.0, 14.0, 50.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1451, 1450, 1.0, 1750, 1755, -5.0, 'AA', 1813, 'N5FSAA', 'JFK', 'MCO', 130.0, 944.0, 14.0, 50.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1451, 1435, 16.0, 1658, 1701, -3.0, 'DL', 1344, 'N365NB', 'LGA', 'MCI', 169.0, 1107.0, 14.0, 35.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1454, 1435, 19.0, 1736, 1742, -6.0, 'DL', 1902, 'N339NB', 'LGA', 'PBI', 139.0, 1035.0, 14.0, 35.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1455, 1500, -5.0, 1611, 1613, -2.0, 'EV', 4571, 'N13968', 'EWR', 'PWM', 51.0, 284.0, 15.0, 0.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1455, 1500, -5.0, 1635, 1655, -20.0, 'MQ', 4429, 'N737MQ', 'LGA', 'CMH', 82.0, 479.0, 15.0, 0.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1456, 1500, -4.0, 1639, 1653, -14.0, 'US', 720, 'N183UW', 'EWR', 'CLT', 79.0, 529.0, 15.0, 0.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1459, 1440, 19.0, 1715, 1656, 19.0, 'EV', 4181, 'N11106', 'EWR', 'MCI', 172.0, 1092.0, 14.0, 40.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1500, 1505, -5.0, 1610, 1637, -27.0, '9E', 3393, 'N910XJ', 'JFK', 'DCA', 48.0, 213.0, 15.0, 5.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1500, 1444, 16.0, 1749, 1744, 5.0, 'B6', 141, 'N618JB', 'JFK', 'PBI', 136.0, 1028.0, 14.0, 44.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1500, 1500, 0.0, 1745, 1742, 3.0, 'DL', 2347, 'N676DL', 'LGA', 'ATL', 123.0, 762.0, 15.0, 0.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1503, 1505, -2.0, 1636, 1645, -9.0, 'WN', 1197, 'N7726A', 'LGA', 'MKE', 128.0, 738.0, 15.0, 5.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1505, 1510, -5.0, 1725, 1745, -20.0, 'MQ', 4309, 'N660MQ', 'JFK', 'IND', 112.0, 665.0, 15.0, 10.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1506, 1510, -4.0, 1636, 1655, -19.0, 'MQ', 4447, 'N730MQ', 'LGA', 'RDU', 67.0, 431.0, 15.0, 10.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1508, 1432, 36.0, 1642, 1609, 33.0, 'UA', 1580, 'N14731', 'EWR', 'ORD', 139.0, 719.0, 14.0, 32.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1511, 1506, 5.0, 1832, 1819, 13.0, 'UA', 1600, 'N12125', 'EWR', 'LAX', 359.0, 2454.0, 15.0, 6.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1513, 1459, 14.0, 1744, 1807, -23.0, 'UA', 1601, 'N30401', 'EWR', 'FLL', 139.0, 1065.0, 14.0, 59.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1513, 1440, 33.0, 1620, 1549, 31.0, 'UA', 1687, 'N24729', 'EWR', 'BOS', 43.0, 200.0, 14.0, 40.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1514, 1520, -6.0, 1627, 1654, -27.0, '9E', 4105, 'N8907A', 'JFK', 'IAD', 48.0, 228.0, 15.0, 20.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1514, 1510, 4.0, 1700, 1710, -10.0, 'MQ', 4579, 'N537MQ', 'LGA', 'CLT', 87.0, 544.0, 15.0, 10.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1516, 1515, 1.0, 1820, 1807, 13.0, 'UA', 1205, 'N59053', 'EWR', 'IAH', 222.0, 1400.0, 15.0, 15.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1518, 1530, -12.0, 1704, 1711, -7.0, '9E', 3719, 'N8974C', 'LGA', 'RIC', 53.0, 292.0, 15.0, 30.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1519, 1526, -7.0, 1728, 1731, -3.0, 'EV', 4086, 'N15983', 'EWR', 'GRR', 108.0, 605.0, 15.0, 26.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1520, 1515, 5.0, 1647, 1700, -13.0, 'MQ', 4333, 'N695MQ', 'JFK', 'PIT', 71.0, 340.0, 15.0, 15.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1521, 1525, -4.0, 1635, 1655, -20.0, 'MQ', 3823, 'N509MQ', 'JFK', 'DCA', 52.0, 213.0, 15.0, 25.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1521, 1511, 10.0, 1743, 1740, 3.0, 'UA', 745, 'N595UA', 'LGA', 'DEN', 231.0, 1620.0, 15.0, 11.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1522, 1524, -2.0, 1646, 1648, -2.0, 'EV', 4581, 'N13132', 'EWR', 'MKE', 126.0, 725.0, 15.0, 24.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1523, 1530, -7.0, 1707, 1725, -18.0, 'AA', 2223, 'N4WNAA', 'LGA', 'STL', 141.0, 888.0, 15.0, 30.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1527, 1517, 10.0, 1804, 1815, -11.0, 'B6', 537, 'N547JB', 'EWR', 'TPA', 138.0, 997.0, 15.0, 17.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1527, 1510, 17.0, 1808, 1801, 7.0, 'UA', 750, 'N592UA', 'EWR', 'MCO', 126.0, 937.0, 15.0, 10.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1528, 1505, 23.0, 1748, 1737, 11.0, 'EV', 3817, 'N29917', 'EWR', 'JAX', 119.0, 820.0, 15.0, 5.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1529, 1505, 24.0, 1848, 1820, 28.0, 'AA', 759, 'N3BTAA', 'LGA', 'DFW', 237.0, 1389.0, 15.0, 5.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1529, 1415, 74.0, 1820, 1723, 57.0, 'B6', 377, 'N633JB', 'LGA', 'FLL', 152.0, 1076.0, 14.0, 15.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1529, 1530, -1.0, 1831, 1854, -23.0, 'UA', 161, 'N18119', 'JFK', 'LAX', 337.0, 2475.0, 15.0, 30.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1530, 1536, -6.0, 1741, 1744, -3.0, 'EV', 4352, 'N13553', 'EWR', 'CVG', 103.0, 569.0, 15.0, 36.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1531, 1455, 36.0, 1703, 1637, 26.0, '9E', 3318, 'N915XJ', 'JFK', 'BUF', 55.0, 301.0, 14.0, 55.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1531, 1535, -4.0, 1635, 1651, -16.0, 'UA', 627, 'N830UA', 'EWR', 'BOS', 44.0, 200.0, 15.0, 35.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1532, 1500, 32.0, 1645, 1620, 25.0, 'US', 2179, 'N958UW', 'LGA', 'DCA', 45.0, 214.0, 15.0, 0.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1534, 1459, 35.0, 1648, 1630, 18.0, 'B6', 8, 'N621JB', 'JFK', 'BUF', 53.0, 301.0, 14.0, 59.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1534, 1504, 30.0, 1706, 1640, 26.0, 'UA', 279, 'N429UA', 'EWR', 'ORD', 132.0, 719.0, 15.0, 4.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1535, 1535, 0.0, 1838, 1850, -12.0, 'AA', 763, 'N3CEAA', 'LGA', 'DFW', 217.0, 1389.0, 15.0, 35.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1535, 1459, 36.0, 1645, 1624, 21.0, 'B6', 12, 'N279JB', 'JFK', 'SYR', 46.0, 209.0, 14.0, 59.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1535, 1355, 100.0, 1839, 1708, 91.0, 'DL', 2079, 'N356NW', 'LGA', 'FLL', 162.0, 1076.0, 13.0, 55.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, 1539, 1550, -11.0, 1801, 1826, -25.0, '9E', 3427, 'N906XJ', 'JFK', 'IND', 113.0, 665.0, 15.0, 50.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1540, 1540, 0.0, 1830, 1845, -15.0, 'UA', 1624, 'N37293', 'EWR', 'FLL', 152.0, 1065.0, 15.0, 40.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1540, 1530, 10.0, 1735, 1734, 1.0, 'US', 1665, 'N763US', 'LGA', 'CLT', 77.0, 544.0, 15.0, 30.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1543, 1550, -7.0, 1808, 1820, -12.0, '9E', 3355, 'N936XJ', 'JFK', 'MSP', 169.0, 1029.0, 15.0, 50.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1543, 1545, -2.0, 1812, 1815, -3.0, 'DL', 1942, 'N355NB', 'EWR', 'ATL', 120.0, 746.0, 15.0, 45.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1543, 1515, 28.0, 1833, 1844, -11.0, 'UA', 1111, 'N68452', 'EWR', 'SFO', 331.0, 2565.0, 15.0, 15.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1544, 1508, 36.0, 1734, 1705, 29.0, 'EV', 4326, 'N14916', 'EWR', 'CLT', 81.0, 529.0, 15.0, 8.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1545, 1455, 50.0, 1933, 1825, 68.0, 'AA', 1769, 'N5FEAA', 'JFK', 'MIA', 147.0, 1089.0, 14.0, 55.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1546, 1504, 42.0, 1712, 1640, 32.0, 'EV', 4212, 'N17146', 'EWR', 'RDU', 65.0, 416.0, 15.0, 4.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1548, 1545, 3.0, 1913, 1910, 3.0, 'AA', 133, 'N320AA', 'JFK', 'LAX', 343.0, 2475.0, 15.0, 45.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1549, 1459, 50.0, 1835, 1756, 39.0, 'B6', 393, 'N556JB', 'LGA', 'MCO', 132.0, 950.0, 14.0, 59.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1550, 1555, -5.0, 1800, 1817, -17.0, 'DL', 1771, 'N334NB', 'JFK', 'DTW', 95.0, 509.0, 15.0, 55.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1552, 1526, 26.0, 1715, 1659, 16.0, 'EV', 3835, 'N13949', 'EWR', 'BNA', 125.0, 748.0, 15.0, 26.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1553, 1600, -7.0, 1825, 1820, 5.0, 'MQ', 3985, 'N638MQ', 'JFK', 'CVG', 120.0, 589.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1554, 1455, 59.0, 1749, 1654, 55.0, 'EV', 4572, 'N13913', 'EWR', 'GSP', 94.0, 594.0, 14.0, 55.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1554, 1555, -1.0, 1740, 1745, -5.0, 'B6', 1053, 'N334JB', 'JFK', 'PIT', 69.0, 340.0, 15.0, 55.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1554, 1555, -1.0, 2022, 2055, -33.0, 'B6', 703, 'N523JB', 'JFK', 'SJU', 180.0, 1598.0, 15.0, 55.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1554, 1600, -6.0, 1857, 1912, -15.0, 'DL', 4, 'N374DA', 'JFK', 'MCO', 124.0, 944.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1555, 1600, -5.0, 1801, 1732, 29.0, '9E', 3453, 'N917XJ', 'JFK', 'BOS', 47.0, 187.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1555, 1530, 25.0, 1909, 1855, 14.0, 'AA', 1039, 'N3DSAA', 'JFK', 'FLL', 155.0, 1069.0, 15.0, 30.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1555, 1520, 35.0, 1838, 1842, -4.0, 'DL', 2115, 'N341NW', 'LGA', 'MIA', 143.0, 1096.0, 15.0, 20.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1556, 1500, 56.0, 1927, 1837, 50.0, 'DL', 963, 'N624AG', 'JFK', 'LAX', 342.0, 2475.0, 15.0, 0.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1556, 1555, 1.0, 1826, 1847, -21.0, 'UA', 1197, 'N37298', 'EWR', 'LAS', 315.0, 2227.0, 15.0, 55.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1556, 1536, 20.0, 1724, 1731, -7.0, 'UA', 1710, 'N25705', 'LGA', 'CLE', 67.0, 419.0, 15.0, 36.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1557, 1600, -3.0, 1819, 1815, 4.0, 'EV', 3820, 'N27200', 'EWR', 'SDF', 119.0, 642.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1557, 1550, 7.0, 1732, 1710, 22.0, 'WN', 4215, 'N7735A', 'EWR', 'MDW', 134.0, 711.0, 15.0, 50.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1558, 1600, -2.0, 1707, 1712, -5.0, 'US', 2134, 'N945UW', 'LGA', 'BOS', 40.0, 184.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1559, 1605, -6.0, 1913, 1944, -31.0, 'DL', 1508, 'N913DE', 'JFK', 'RSW', 155.0, 1074.0, 16.0, 5.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1600, 1429, 91.0, 1756, 1642, 74.0, 'DL', 1819, 'N921DL', 'LGA', 'MSP', 151.0, 1020.0, 14.0, 29.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1601, 1600, 1.0, 1853, 1850, 3.0, 'DL', 1331, 'N379DA', 'JFK', 'DEN', 229.0, 1626.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1602, 1545, 17.0, 1720, 1703, 17.0, '9E', 3635, 'N8971A', 'JFK', 'BWI', 36.0, 184.0, 15.0, 45.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1603, 1530, 33.0, 1748, 1725, 23.0, 'MQ', 4146, 'N932MQ', 'JFK', 'CMH', 76.0, 483.0, 15.0, 30.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1605, 1525, 40.0, 1707, 1638, 29.0, 'EV', 4349, 'N12157', 'EWR', 'ORF', 50.0, 284.0, 15.0, 25.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1605, 1445, 80.0, 1756, 1634, 82.0, 'EV', 4596, 'N14977', 'EWR', 'STL', 151.0, 872.0, 14.0, 45.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1605, 1610, -5.0, 1718, 1732, -14.0, '9E', 3689, 'N8543F', 'JFK', 'PHL', 26.0, 94.0, 16.0, 10.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1605, 1605, 0.0, 1713, 1729, -16.0, 'YV', 3771, 'N519LR', 'LGA', 'IAD', 46.0, 229.0, 16.0, 5.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1605, 1600, 5.0, 1910, 1912, -2.0, 'UA', 1200, 'N76519', 'EWR', 'SAN', 349.0, 2425.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1609, 1600, 9.0, 1840, 1834, 6.0, 'FL', 620, 'N994AT', 'LGA', 'ATL', 125.0, 762.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1609, 1540, 29.0, 1919, 1909, 10.0, 'DL', 2027, 'N372NW', 'JFK', 'FLL', 144.0, 1069.0, 15.0, 40.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1609, 1452, 77.0, 1755, 1655, 60.0, 'DL', 1231, 'N914DL', 'LGA', 'DTW', 81.0, 502.0, 14.0, 52.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1609, 1434, 95.0, 1903, 1737, 86.0, 'UA', 404, 'N586UA', 'EWR', 'MIA', 155.0, 1085.0, 14.0, 34.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1611, 1610, 1.0, 1858, 1917, -19.0, 'DL', 91, 'N381DN', 'JFK', 'LAS', 313.0, 2248.0, 16.0, 10.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1612, 1600, 12.0, 1716, 1717, -1.0, 'US', 2181, 'N760US', 'LGA', 'DCA', 43.0, 214.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1614, 1405, 129.0, 1910, 1704, 126.0, 'B6', 63, 'N627JB', 'JFK', 'TPA', 139.0, 1005.0, 14.0, 5.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1614, 1600, 14.0, 1934, 1933, 1.0, 'DL', 161, 'N947DL', 'JFK', 'MIA', 145.0, 1089.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1616, 1615, 1.0, 1822, 1831, -9.0, 'DL', 1619, 'N330NW', 'LGA', 'MSP', 157.0, 1020.0, 16.0, 15.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1616, 1620, -4.0, 2010, 2003, 7.0, 'US', 35, 'N549UW', 'JFK', 'PHX', 319.0, 2153.0, 16.0, 20.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1617, 1619, -2.0, 1704, 1723, -19.0, 'EV', 4271, 'N14959', 'EWR', 'ALB', 30.0, 143.0, 16.0, 19.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1617, 1600, 17.0, 1914, 1925, -11.0, 'AA', 1467, 'N3GFAA', 'LGA', 'MIA', 148.0, 1096.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1621, 1625, -4.0, 1956, 1953, 3.0, 'B6', 675, 'N656JB', 'JFK', 'LAX', 345.0, 2475.0, 16.0, 25.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1623, 1627, -4.0, 1847, 1919, -32.0, 'UA', 1262, 'N38451', 'EWR', 'MCO', 129.0, 937.0, 16.0, 27.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1625, 1600, 25.0, 1917, 1909, 8.0, 'B6', 157, 'N594JB', 'JFK', 'MCO', 128.0, 944.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1626, 1550, 36.0, 2058, 2050, 8.0, 'AA', 1635, 'N5FAAA', 'JFK', 'SJU', 177.0, 1598.0, 15.0, 50.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1627, 1610, 17.0, 1823, 1800, 23.0, 'AA', 341, 'N437AA', 'LGA', 'ORD', 128.0, 733.0, 16.0, 10.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1628, 1639, -11.0, 1755, 1753, 2.0, 'B6', 1176, 'N292JB', 'EWR', 'BOS', 50.0, 200.0, 16.0, 39.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1628, 1600, 28.0, 1903, 1840, 23.0, 'DL', 847, 'N671DN', 'LGA', 'ATL', 127.0, 762.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1628, 1630, -2.0, 1925, 1922, 3.0, 'UA', 508, 'N675UA', 'EWR', 'IAH', 216.0, 1400.0, 16.0, 30.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1629, 1630, -1.0, 2007, 2015, -8.0, 'VX', 27, 'N843VA', 'JFK', 'SFO', 351.0, 2586.0, 16.0, 30.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1629, 1605, 24.0, 1749, 1750, -1.0, 'MQ', 4415, 'N736MQ', 'LGA', 'RDU', 66.0, 431.0, 16.0, 5.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1629, 1635, -6.0, 1950, 2001, -11.0, 'US', 656, 'N650AW', 'EWR', 'PHX', 299.0, 2133.0, 16.0, 35.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1630, 1630, 0.0, 1838, 1835, 3.0, 'B6', 1085, 'N187JB', 'JFK', 'CLT', 85.0, 541.0, 16.0, 30.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1630, 1615, 15.0, 1857, 1845, 12.0, 'WN', 171, 'N452WN', 'EWR', 'DEN', 239.0, 1605.0, 16.0, 15.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1630, 1633, -3.0, 1812, 1814, -2.0, 'UA', 1719, 'N37274', 'EWR', 'CLE', 75.0, 404.0, 16.0, 33.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1633, 1640, -7.0, 1948, 1955, -7.0, 'AA', 773, 'N477AA', 'LGA', 'DFW', 231.0, 1389.0, 16.0, 40.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1634, 1600, 34.0, 1951, 1915, 36.0, 'AA', 565, 'N3FRAA', 'JFK', 'DFW', 216.0, 1391.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1635, 1635, 0.0, 1952, 1951, 1.0, 'B6', 139, 'N298JB', 'JFK', 'RSW', 155.0, 1074.0, 16.0, 35.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1635, 1550, 45.0, 1957, 1925, 32.0, 'DL', 1773, 'N666DN', 'JFK', 'SLC', 275.0, 1990.0, 15.0, 50.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1637, 1500, 97.0, 1937, 1825, 72.0, 'AA', 1925, 'N3ETAA', 'LGA', 'MIA', 146.0, 1096.0, 15.0, 0.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1638, 1644, -6.0, 1807, 1820, -13.0, 'EV', 4485, 'N16961', 'EWR', 'RDU', 67.0, 416.0, 16.0, 44.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1639, 1629, 10.0, 1921, 1930, -9.0, 'B6', 369, 'N521JB', 'LGA', 'PBI', 140.0, 1035.0, 16.0, 29.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1639, 1640, -1.0, 1843, 1850, -7.0, 'MQ', 4540, 'N711MQ', 'LGA', 'DTW', 93.0, 502.0, 16.0, 40.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1640, 1540, 60.0, 1809, 1716, 53.0, '9E', 4178, 'N831AY', 'JFK', 'ROC', 50.0, 264.0, 15.0, 40.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1641, 1640, 1.0, 1905, 1835, 30.0, 'WN', 372, 'N707SA', 'LGA', 'STL', 151.0, 888.0, 16.0, 40.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1642, 1645, -3.0, 1856, 1900, -4.0, 'DL', 1473, 'N335NB', 'LGA', 'MEM', 153.0, 963.0, 16.0, 45.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1645, 1645, 0.0, 1942, 2005, -23.0, 'AA', 181, 'N323AA', 'JFK', 'LAX', 332.0, 2475.0, 16.0, 45.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1646, 1655, -9.0, 2019, 2029, -10.0, 'DL', 706, 'N348NB', 'JFK', 'AUS', 237.0, 1521.0, 16.0, 55.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1648, 1630, 18.0, 2028, 2006, 22.0, 'UA', 1078, 'N77295', 'EWR', 'SAT', 259.0, 1569.0, 16.0, 30.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1649, 1555, 54.0, 1932, 1907, 25.0, 'DL', 1695, 'N344NW', 'LGA', 'TPA', 138.0, 1010.0, 15.0, 55.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1650, 1659, -9.0, 2050, 2046, 4.0, '9E', 3375, 'N909XJ', 'JFK', 'SAT', 255.0, 1587.0, 16.0, 59.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1650, 1650, 0.0, 1926, 1945, -19.0, 'UA', 1615, 'N14219', 'EWR', 'LAS', 313.0, 2227.0, 16.0, 50.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1653, 1700, -7.0, 1814, 1840, -26.0, 'MQ', 4323, 'N902MQ', 'JFK', 'ORF', 54.0, 290.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1655, 1655, 0.0, 2003, 2014, -11.0, 'B6', 359, 'N705JB', 'JFK', 'BUR', 336.0, 2465.0, 16.0, 55.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1656, 1700, -4.0, 1955, 1955, 0.0, 'AA', 257, 'N3GAAA', 'JFK', 'LAS', 328.0, 2248.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1656, 1706, -10.0, 1814, 1833, -19.0, 'B6', 36, 'N804JB', 'JFK', 'ROC', 50.0, 264.0, 17.0, 6.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1657, 1655, 2.0, 2020, 2030, -10.0, 'VX', 413, 'N637VA', 'JFK', 'LAX', 349.0, 2475.0, 16.0, 55.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1658, 1700, -2.0, 2125, 2204, -39.0, 'DL', 329, 'N371DA', 'JFK', 'SJU', 173.0, 1598.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1658, 1635, 23.0, 2015, 1945, 30.0, 'WN', 891, 'N356SW', 'EWR', 'HOU', 242.0, 1411.0, 16.0, 35.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1659, 1700, -1.0, 1934, 2005, -31.0, 'B6', 509, 'N526JB', 'EWR', 'FLL', 136.0, 1065.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1701, 1702, -1.0, 2010, 2018, -8.0, 'UA', 250, 'N454UA', 'EWR', 'LAX', 349.0, 2454.0, 17.0, 2.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1702, 1615, 47.0, 1905, 1815, 50.0, '9E', 3387, 'N908XJ', 'JFK', 'RDU', 68.0, 427.0, 16.0, 15.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1702, 1705, -3.0, 2020, 2010, 10.0, 'AA', 1905, 'N4YBAA', 'EWR', 'DFW', 219.0, 1372.0, 17.0, 5.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1702, 1700, 2.0, 2042, 2049, -7.0, 'DL', 31, 'N705TW', 'JFK', 'SFO', 335.0, 2586.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1702, 1554, 68.0, 1835, 1728, 67.0, 'UA', 562, 'N401UA', 'EWR', 'ORD', 118.0, 719.0, 15.0, 54.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1703, 1600, 63.0, 1958, 1902, 56.0, 'B6', 985, 'N760JB', 'LGA', 'TPA', 142.0, 1010.0, 16.0, 0.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1703, 1650, 13.0, 1828, 1813, 15.0, 'UA', 531, 'N498UA', 'EWR', 'BOS', 41.0, 200.0, 16.0, 50.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1704, 1700, 4.0, 1947, 1943, 4.0, 'DL', 1499, 'N641DL', 'LGA', 'ATL', 135.0, 762.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1704, 1710, -6.0, 1900, 1912, -12.0, 'US', 894, 'N178US', 'LGA', 'CLT', 89.0, 544.0, 17.0, 10.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1706, 1650, 16.0, 1821, 1820, 1.0, 'AA', 1790, 'N3JMAA', 'JFK', 'BOS', 39.0, 187.0, 16.0, 50.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1706, 1630, 36.0, 1911, 1838, 33.0, 'DL', 2231, 'N351NW', 'LGA', 'DTW', 94.0, 502.0, 16.0, 30.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1708, 1708, 0.0, 2000, 2022, -22.0, 'B6', 15, 'N229JB', 'JFK', 'FLL', 142.0, 1069.0, 17.0, 8.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1708, 1705, 3.0, 1833, 1830, 3.0, 'MQ', 4410, 'N840MQ', 'JFK', 'DCA', 56.0, 213.0, 17.0, 5.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1709, 1710, -1.0, 2050, 2015, 35.0, 'AA', 695, 'N3GBAA', 'JFK', 'AUS', 248.0, 1521.0, 17.0, 10.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1710, 1645, 25.0, 1918, 1853, 25.0, 'EV', 4997, 'N752EV', 'EWR', 'DTW', 101.0, 488.0, 16.0, 45.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1714, 1605, 69.0, 1909, 1754, 75.0, '9E', 3459, 'N922XJ', 'JFK', 'BNA', 127.0, 765.0, 16.0, 5.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1714, 1715, -1.0, 2029, 2040, -11.0, 'DL', 503, 'N3750D', 'JFK', 'SAN', 335.0, 2446.0, 17.0, 15.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1716, 1707, 9.0, 1819, 1815, 4.0, 'EV', 4373, 'N13965', 'EWR', 'DCA', 41.0, 199.0, 17.0, 7.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1717, 1706, 11.0, 1832, 1808, 24.0, 'EV', 4316, 'N26141', 'EWR', 'BWI', 37.0, 169.0, 17.0, 6.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1718, 1725, -7.0, 1901, 1855, 6.0, 'MQ', 4255, 'N694MQ', 'JFK', 'BNA', 128.0, 765.0, 17.0, 25.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1719, 1653, 26.0, 2013, 1925, 48.0, 'EV', 4705, 'N19966', 'EWR', 'ATL', 147.0, 746.0, 16.0, 53.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1719, 1655, 24.0, 2039, 2009, 30.0, 'B6', 185, 'N646JB', 'JFK', 'SAN', 344.0, 2446.0, 16.0, 55.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1719, 1700, 19.0, 2113, 2036, 37.0, 'DL', 127, 'N706TW', 'JFK', 'LAX', 365.0, 2475.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1719, 1720, -1.0, 1853, 1905, -12.0, 'MQ', 4479, 'N713MQ', 'LGA', 'RDU', 65.0, 431.0, 17.0, 20.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1719, 1725, -6.0, 2025, 2050, -25.0, 'UA', 512, 'N554UA', 'JFK', 'SFO', 335.0, 2586.0, 17.0, 25.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1720, 1635, 45.0, 1945, 1856, 49.0, 'EV', 3805, 'N14905', 'EWR', 'SAV', 107.0, 708.0, 16.0, 35.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1720, 1724, -4.0, 1932, 1953, -21.0, 'UA', 509, 'N573UA', 'LGA', 'DEN', 231.0, 1620.0, 17.0, 24.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1721, 1705, 16.0, 2007, 2007, 0.0, 'B6', 143, 'N559JB', 'JFK', 'PBI', 132.0, 1028.0, 17.0, 5.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1722, 1706, 16.0, 2024, 2038, -14.0, 'UA', 1284, 'N41140', 'EWR', 'SFO', 334.0, 2565.0, 17.0, 6.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1724, 1700, 24.0, 1838, 1817, 21.0, 'US', 2183, 'N715UW', 'LGA', 'DCA', 55.0, 214.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1724, 1725, -1.0, 1945, 2032, -47.0, 'UA', 1100, 'N75433', 'EWR', 'SEA', 300.0, 2402.0, 17.0, 25.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1725, 1555, 90.0, 1859, 1748, 71.0, 'B6', 917, 'N306JB', 'JFK', 'ORD', 129.0, 740.0, 15.0, 55.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1726, 1634, 52.0, 1939, 1837, 62.0, 'EV', 4411, 'N15980', 'EWR', 'MEM', 153.0, 946.0, 16.0, 34.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1726, 1725, 1.0, 2043, 2040, 3.0, 'AA', 145, 'N3BGAA', 'JFK', 'SAN', 347.0, 2446.0, 17.0, 25.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1727, 1730, -3.0, 1938, 1957, -19.0, 'F9', 837, 'N216FR', 'LGA', 'DEN', 227.0, 1620.0, 17.0, 30.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1727, 1730, -3.0, 1904, 1855, 9.0, 'WN', 216, 'N913WN', 'EWR', 'MDW', 133.0, 711.0, 17.0, 30.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1727, 1705, 22.0, 1928, 1905, 23.0, 'WN', 440, 'N966WN', 'EWR', 'STL', 150.0, 872.0, 17.0, 5.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1730, 1455, 155.0, 1915, 1645, 150.0, 'AA', 337, 'N4YFAA', 'LGA', 'ORD', 120.0, 733.0, 14.0, 55.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, 1732, 1545, 107.0, 1959, 1850, 69.0, 'DL', 2377, 'N309US', 'LGA', 'MCO', 130.0, 950.0, 15.0, 45.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1733, 1735, -2.0, 1855, 1925, -30.0, 'WN', 408, 'N483WN', 'LGA', 'BNA', 129.0, 764.0, 17.0, 35.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1734, 1610, 84.0, 1851, 1756, 55.0, 'EV', 5486, 'N751EV', 'LGA', 'PIT', 59.0, 335.0, 16.0, 10.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1734, 1729, 5.0, 2038, 2046, -8.0, 'DL', 1185, 'N398DA', 'EWR', 'SLC', 277.0, 1969.0, 17.0, 29.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1737, 1623, 74.0, 1855, 1730, 85.0, 'EV', 4299, 'N14180', 'EWR', 'DCA', 47.0, 199.0, 16.0, 23.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1737, 1721, 16.0, 1953, 1929, 24.0, 'EV', 4323, 'N12967', 'EWR', 'CVG', 105.0, 569.0, 17.0, 21.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1737, 1559, 98.0, 1944, 1803, 101.0, 'EV', 4667, 'N11191', 'EWR', 'MSP', 157.0, 1008.0, 15.0, 59.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1737, 1700, 37.0, 2022, 1935, 47.0, 'DL', 2042, 'N309DE', 'EWR', 'ATL', 140.0, 746.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1738, 1706, 32.0, 1950, 1855, 55.0, 'EV', 4202, 'N13989', 'EWR', 'STL', 159.0, 872.0, 17.0, 6.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1739, 1725, 14.0, 2036, 2023, 13.0, 'UA', 1178, 'N12116', 'EWR', 'IAH', 213.0, 1400.0, 17.0, 25.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1740, 1729, 11.0, 1933, 1935, -2.0, 'EV', 4382, 'N12142', 'EWR', 'DTW', 89.0, 488.0, 17.0, 29.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1740, 1745, -5.0, 2024, 2117, -53.0, 'DL', 1394, 'N382DA', 'JFK', 'PDX', 307.0, 2454.0, 17.0, 45.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1743, 1730, 13.0, 1931, 1923, 8.0, 'US', 449, 'N654AW', 'EWR', 'CLT', 84.0, 529.0, 17.0, 30.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1745, 1745, 0.0, 2017, 2042, -25.0, 'B6', 391, 'N590JB', 'LGA', 'MCO', 130.0, 950.0, 17.0, 45.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1745, 1751, -6.0, 2104, 2103, 1.0, 'UA', 535, 'N510UA', 'JFK', 'LAX', 339.0, 2475.0, 17.0, 51.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1746, 1745, 1.0, 2048, 2120, -32.0, 'AA', 177, 'N328AA', 'JFK', 'SFO', 338.0, 2586.0, 17.0, 45.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1747, 1735, 12.0, 1915, 1854, 21.0, 'B6', 74, 'N662JB', 'JFK', 'BTV', 51.0, 266.0, 17.0, 35.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1749, 1750, -1.0, 1912, 1907, 5.0, 'B6', 1307, 'N231JB', 'JFK', 'IAD', 48.0, 228.0, 17.0, 50.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1749, 1745, 4.0, 2028, 2020, 8.0, 'MQ', 4413, 'N725MQ', 'LGA', 'XNA', 193.0, 1147.0, 17.0, 45.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1751, 1758, -7.0, 2009, 2014, -5.0, 'EV', 4397, 'N14177', 'EWR', 'MCI', 173.0, 1092.0, 17.0, 58.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1751, 1750, 1.0, 2049, 2107, -18.0, 'UA', 1228, 'N13716', 'EWR', 'SAN', 339.0, 2425.0, 17.0, 50.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1754, 1800, -6.0, 1900, 1913, -13.0, 'US', 2185, 'N767UW', 'LGA', 'DCA', 49.0, 214.0, 18.0, 0.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1756, 1800, -4.0, 1918, 1913, 5.0, 'US', 2138, 'N956UW', 'LGA', 'BOS', 39.0, 184.0, 18.0, 0.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1757, 1720, 37.0, 2045, 2040, 5.0, 'AA', 1999, 'N5DWAA', 'EWR', 'MIA', 140.0, 1085.0, 17.0, 20.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1757, 1800, -3.0, 2000, 2006, -6.0, 'US', 373, 'N523UW', 'JFK', 'CLT', 84.0, 541.0, 18.0, 0.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1759, 1625, 94.0, 1932, 1802, 90.0, 'EV', 4702, 'N16919', 'EWR', 'GSO', 70.0, 445.0, 16.0, 25.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1759, 1540, 139.0, 1955, 1743, 132.0, '9E', 3523, 'N904XJ', 'JFK', 'ORD', 130.0, 740.0, 15.0, 40.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1800, 1605, 115.0, 2152, 1925, 147.0, '9E', 3325, 'N903XJ', 'JFK', 'DFW', 231.0, 1391.0, 16.0, 5.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1800, 1800, 0.0, 2039, 2043, -4.0, 'DL', 1047, 'N678DL', 'LGA', 'ATL', 126.0, 762.0, 18.0, 0.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1800, 1805, -5.0, 1935, 1935, 0.0, 'WN', 389, 'N463WN', 'LGA', 'MDW', 129.0, 725.0, 18.0, 5.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1801, 1610, 111.0, 2000, 1807, 113.0, 'EV', 4092, 'N11137', 'EWR', 'DAY', 92.0, 533.0, 16.0, 10.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1802, 1735, 27.0, 1937, 1921, 16.0, 'B6', 1111, 'N190JB', 'JFK', 'RDU', 70.0, 427.0, 17.0, 35.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1802, 1715, 47.0, 2046, 2019, 27.0, 'DL', 1585, 'N956DL', 'LGA', 'MCO', 131.0, 950.0, 17.0, 15.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1802, 1800, 2.0, 1904, 1910, -6.0, 'WN', 808, 'N955WN', 'EWR', 'BWI', 37.0, 169.0, 18.0, 0.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1802, 1810, -8.0, 1935, 1945, -10.0, 'MQ', 4484, 'N723MQ', 'LGA', 'BNA', 125.0, 764.0, 18.0, 10.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1802, 1805, -3.0, 1942, 1955, -13.0, 'MQ', 4626, 'N518MQ', 'LGA', 'CMH', 80.0, 479.0, 18.0, 5.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1805, 1807, -2.0, 2057, 2127, -30.0, 'B6', 217, 'N552JB', 'JFK', 'LGB', 333.0, 2465.0, 18.0, 7.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1805, 1700, 65.0, 2117, 2011, 66.0, 'UA', 602, 'N805UA', 'LGA', 'IAH', 222.0, 1416.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1806, 1726, 40.0, 1930, 1859, 31.0, 'EV', 3843, 'N14542', 'EWR', 'PIT', 56.0, 319.0, 17.0, 26.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1808, 1815, -7.0, 1938, 1952, -14.0, '9E', 4277, 'N8758D', 'JFK', 'ORF', 53.0, 290.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1809, 1548, 141.0, 2044, 1830, 134.0, 'DL', 95, 'N395DN', 'JFK', 'ATL', 127.0, 760.0, 15.0, 48.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, 1810, 1755, 15.0, 2055, 2108, -13.0, 'B6', 989, 'N658JB', 'JFK', 'FLL', 140.0, 1069.0, 17.0, 55.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1811, 1745, 26.0, 2116, 2055, 21.0, 'AA', 785, 'N3GRAA', 'LGA', 'DFW', 226.0, 1389.0, 17.0, 45.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1811, 1819, -8.0, 2111, 2138, -27.0, 'UA', 593, 'N807UA', 'EWR', 'SNA', 334.0, 2434.0, 18.0, 19.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1812, 1810, 2.0, 2114, 2130, -16.0, 'AA', 1611, 'N3CSAA', 'LGA', 'MIA', 144.0, 1096.0, 18.0, 10.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1813, 1820, -7.0, 2142, 2150, -8.0, 'AA', 119, 'N3DRAA', 'EWR', 'LAX', 340.0, 2454.0, 18.0, 20.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1814, 1810, 4.0, 2159, 2150, 9.0, 'UA', 594, 'N852UA', 'EWR', 'PHX', 316.0, 2133.0, 18.0, 10.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1815, 1815, 0.0, 1944, 1958, -14.0, '9E', 4019, 'N824AY', 'JFK', 'RIC', 59.0, 288.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1816, 1730, 46.0, 2056, 2004, 52.0, 'FL', 623, 'N991AT', 'LGA', 'ATL', 137.0, 762.0, 17.0, 30.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1817, 1815, 2.0, 2013, 2026, -13.0, 'DL', 2019, 'N312US', 'LGA', 'MSP', 146.0, 1020.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1817, 1759, 18.0, 2136, 2105, 31.0, 'UA', 709, 'N843UA', 'EWR', 'DFW', 229.0, 1372.0, 17.0, 59.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1818, 1830, -12.0, 2025, 2044, -19.0, '9E', 3716, 'N8986B', 'EWR', 'DTW', 79.0, 488.0, 18.0, 30.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1818, 1820, -2.0, 2055, 2114, -19.0, 'B6', 711, 'N793JB', 'JFK', 'LAS', 308.0, 2248.0, 18.0, 20.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1818, 1829, -11.0, 1956, 2032, -36.0, 'US', 1973, 'N123UW', 'EWR', 'CLT', 78.0, 529.0, 18.0, 29.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1818, 1635, 103.0, 1949, 1810, 99.0, 'MQ', 3695, 'N512MQ', 'EWR', 'ORD', 116.0, 719.0, 16.0, 35.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1818, 1700, 78.0, 1938, 1839, 59.0, 'UA', 791, 'N827UA', 'LGA', 'ORD', 119.0, 733.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1818, 1811, 7.0, 1955, 1952, 3.0, 'UA', 1053, 'N29717', 'EWR', 'CLE', 67.0, 404.0, 18.0, 11.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1819, 1825, -6.0, 1955, 2008, -13.0, 'EV', 5073, 'N615QX', 'LGA', 'MSN', 133.0, 812.0, 18.0, 25.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1820, 1800, 20.0, 2104, 2057, 7.0, 'B6', 9, 'N506JB', 'JFK', 'MCO', 137.0, 944.0, 18.0, 0.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1823, 1810, 13.0, 2137, 2141, -4.0, 'B6', 173, 'N775JB', 'JFK', 'SJC', 342.0, 2569.0, 18.0, 10.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1823, 1830, -7.0, 2123, 2202, -39.0, 'UA', 272, 'N512UA', 'JFK', 'SFO', 333.0, 2586.0, 18.0, 30.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1824, 1810, 14.0, 2055, 2037, 18.0, '9E', 3542, 'N605LR', 'JFK', 'MSP', 155.0, 1029.0, 18.0, 10.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1824, 1830, -6.0, 2119, 2205, -46.0, 'AA', 269, 'N3EYAA', 'JFK', 'SEA', 318.0, 2422.0, 18.0, 30.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1824, 1815, 9.0, 2207, 2050, 77.0, 'DL', 926, 'N301DQ', 'EWR', 'ATL', 117.0, 746.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1826, 1822, 4.0, 1936, 1935, 1.0, 'EV', 4520, 'N12201', 'EWR', 'PWM', 46.0, 284.0, 18.0, 22.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1827, 1722, 65.0, 1959, 1844, 75.0, 'EV', 4300, 'N13566', 'EWR', 'RIC', 58.0, 277.0, 17.0, 22.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1828, 1815, 13.0, 2056, 2125, -29.0, 'AS', 7, 'N403AS', 'EWR', 'SEA', 306.0, 2402.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1829, 1835, -6.0, 1954, 1950, 4.0, 'MQ', 3944, 'N923MQ', 'JFK', 'BWI', 40.0, 184.0, 18.0, 35.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1829, 1827, 2.0, 2055, 2048, 7.0, 'UA', 1139, 'N37273', 'EWR', 'DEN', 237.0, 1605.0, 18.0, 27.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1830, 1745, 45.0, 2118, 2041, 37.0, 'B6', 547, 'N591JB', 'EWR', 'PBI', 133.0, 1023.0, 17.0, 45.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1830, 1620, 130.0, 1956, 1750, 126.0, 'MQ', 4622, 'N516MQ', 'LGA', 'BNA', 129.0, 764.0, 16.0, 20.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1831, 1836, -5.0, 2032, 2031, 1.0, 'EV', 4437, 'N10575', 'EWR', 'CAE', 95.0, 602.0, 18.0, 36.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1832, 1835, -3.0, 2149, 2212, -23.0, 'DL', 1643, 'N378DA', 'JFK', 'SEA', 325.0, 2422.0, 18.0, 35.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1838, 1720, 78.0, 2030, 1915, 75.0, 'AA', 1351, 'N3GTAA', 'JFK', 'ORD', 127.0, 740.0, 17.0, 20.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1838, 1850, -12.0, 2027, 2050, -23.0, 'AA', 2019, 'N425AA', 'LGA', 'STL', 149.0, 888.0, 18.0, 50.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1839, 1845, -6.0, 2121, 2137, -16.0, '9E', 3369, 'N932XJ', 'JFK', 'MSY', 194.0, 1182.0, 18.0, 45.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1842, 1826, 16.0, 2120, 2132, -12.0, 'UA', 1269, 'N13750', 'EWR', 'PBI', 134.0, 1023.0, 18.0, 26.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1845, 1850, -5.0, 2029, 2055, -26.0, 'US', 1491, 'N554UW', 'LGA', 'CLT', 84.0, 544.0, 18.0, 50.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1847, 1845, 2.0, 2020, 2030, -10.0, 'MQ', 4517, 'N734MQ', 'LGA', 'CRW', 79.0, 444.0, 18.0, 45.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1848, 1850, -2.0, 2122, 2212, -50.0, 'DL', 2159, 'N3742C', 'JFK', 'MCO', 135.0, 944.0, 18.0, 50.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1848, 1831, 17.0, 2132, 2144, -12.0, 'UA', 342, 'N536UA', 'EWR', 'LAX', 323.0, 2454.0, 18.0, 31.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1852, 1845, 7.0, 2108, 2050, 18.0, 'EV', 4227, 'N16918', 'EWR', 'GRR', 107.0, 605.0, 18.0, 45.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1852, 1730, 82.0, 2132, 2023, 69.0, 'UA', 1637, 'N77258', 'EWR', 'TPA', 137.0, 997.0, 17.0, 30.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1854, 1850, 4.0, 2215, 2235, -20.0, 'VX', 29, 'N642VA', 'JFK', 'SFO', 346.0, 2586.0, 18.0, 50.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1854, 1900, -6.0, 2012, 2016, -4.0, 'US', 2187, 'N958UW', 'LGA', 'DCA', 49.0, 214.0, 19.0, 0.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1854, 1857, -3.0, 2201, 2201, 0.0, 'UA', 891, 'N489UA', 'LGA', 'IAH', 229.0, 1416.0, 18.0, 57.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1855, 1900, -5.0, 2229, 2235, -6.0, 'DL', 87, 'N721TW', 'JFK', 'LAX', 340.0, 2475.0, 19.0, 0.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1856, 1720, 96.0, 2042, 1910, 92.0, 'AA', 345, 'N4XSAA', 'LGA', 'ORD', 124.0, 733.0, 17.0, 20.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1858, 1900, -2.0, 2132, 2146, -14.0, 'DL', 947, 'N615DL', 'LGA', 'ATL', 122.0, 762.0, 19.0, 0.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1858, 1855, 3.0, 2215, 2142, 33.0, 'DL', 951, 'N1609', 'JFK', 'ATL', 135.0, 760.0, 18.0, 55.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1858, 1900, -2.0, 2255, 2301, -6.0, 'DL', 1465, 'N704X', 'JFK', 'SFO', 360.0, 2586.0, 19.0, 0.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1858, 1658, 120.0, 2053, 1834, 139.0, 'UA', 326, 'N420UA', 'EWR', 'ORD', 118.0, 719.0, 16.0, 58.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, 1900, 1905, -5.0, 2026, 2040, -14.0, 'WN', 981, 'N429WN', 'LGA', 'MKE', 128.0, 738.0, 19.0, 5.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1903, 1906, -3.0, 2057, 2115, -18.0, 'EV', 4627, 'N13968', 'EWR', 'CLT', 87.0, 529.0, 19.0, 6.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1904, 1850, 14.0, 2132, 2142, -10.0, 'B6', 527, 'N605JB', 'EWR', 'MCO', 125.0, 937.0, 18.0, 50.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1906, 1729, 97.0, 2156, 2049, 67.0, 'AA', 543, 'N344AA', 'JFK', 'MIA', 141.0, 1089.0, 17.0, 29.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 1907, 1910, -3.0, 2147, 2204, -17.0, 'UA', 347, 'N441UA', 'EWR', 'LAS', 308.0, 2227.0, 19.0, 10.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1909, 1915, -6.0, 2141, 2137, 4.0, 'EV', 4085, 'N14188', 'EWR', 'OMA', 177.0, 1134.0, 19.0, 15.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1910, 1815, 55.0, 2114, 2037, 37.0, '9E', 3424, 'N927XJ', 'JFK', 'DTW', 89.0, 509.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1910, 1910, 0.0, 2034, 2055, -21.0, 'MQ', 4569, 'N722MQ', 'LGA', 'RDU', 62.0, 431.0, 19.0, 10.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1912, 1858, 14.0, 2051, 2055, -4.0, 'EV', 5038, 'N716EV', 'LGA', 'BHM', 135.0, 866.0, 18.0, 58.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1913, 1823, 50.0, 2138, 2140, -2.0, 'UA', 1462, 'N73278', 'EWR', 'PDX', 301.0, 2434.0, 18.0, 23.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1914, 1900, 14.0, 2036, 2051, -15.0, 'DL', 1255, 'N329NB', 'LGA', 'PIT', 62.0, 335.0, 19.0, 0.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1914, 1912, 2.0, 2200, 2222, -22.0, 'UA', 492, 'N436UA', 'EWR', 'FLL', 143.0, 1065.0, 19.0, 12.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1915, 1920, -5.0, 2202, 2246, -44.0, 'DL', 1385, 'N373DA', 'JFK', 'FLL', 142.0, 1069.0, 19.0, 20.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1916, 1830, 46.0, 2047, 2015, 32.0, 'MQ', 4674, 'N534MQ', 'LGA', 'CLE', 68.0, 419.0, 18.0, 30.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1917, 1915, 2.0, 2158, 2230, -32.0, 'DL', 1729, 'N385DN', 'JFK', 'LAS', 308.0, 2248.0, 19.0, 15.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1918, 1920, -2.0, 2221, 2258, -37.0, 'DL', 6, 'N3773D', 'JFK', 'SLC', 271.0, 1990.0, 19.0, 20.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1921, 1910, 11.0, 2229, 2215, 14.0, 'AA', 2075, 'N469AA', 'EWR', 'DFW', 220.0, 1372.0, 19.0, 10.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1923, 1930, -7.0, 2151, 2213, -22.0, 'DL', 1715, 'N327NB', 'LGA', 'MSY', 187.0, 1183.0, 19.0, 30.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1924, 1930, -6.0, 2130, 2151, -21.0, '9E', 3798, 'N8747B', 'JFK', 'CLT', 86.0, 541.0, 19.0, 30.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1924, 1859, 25.0, 2227, 2224, 3.0, 'B6', 171, 'N603JB', 'JFK', 'SMF', 316.0, 2521.0, 18.0, 59.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1924, 1929, -5.0, 2221, 2246, -25.0, 'DL', 1099, 'N321NB', 'LGA', 'RSW', 158.0, 1080.0, 19.0, 29.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1924, 1920, 4.0, 2301, 2315, -14.0, 'DL', 1345, 'N3767', 'JFK', 'PHX', 312.0, 2153.0, 19.0, 20.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1924, 1815, 69.0, 2041, 1939, 62.0, 'UA', 1703, 'N12221', 'EWR', 'BOS', 43.0, 200.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1925, 1925, 0.0, 2227, 2247, -20.0, 'DL', 2139, 'N904DL', 'LGA', 'MIA', 157.0, 1096.0, 19.0, 25.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1925, 1845, 40.0, 2230, 2221, 9.0, 'DL', 2190, 'N360NW', 'JFK', 'MIA', 152.0, 1089.0, 18.0, 45.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1927, 1925, 2.0, 2053, 2045, 8.0, '9E', 4127, 'N8577D', 'JFK', 'IAD', 47.0, 228.0, 19.0, 25.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1929, 1930, -1.0, 2301, 2311, -10.0, 'B6', 91, 'N779JB', 'JFK', 'OAK', 335.0, 2576.0, 19.0, 30.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1929, 1859, 30.0, 2323, 2246, 37.0, 'B6', 179, 'N562JB', 'JFK', 'PHX', 317.0, 2153.0, 18.0, 59.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1929, 1910, 19.0, 2301, 2230, 31.0, 'B6', 87, 'N712JB', 'JFK', 'SLC', 274.0, 1990.0, 19.0, 10.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1930, 1800, 90.0, 2053, 1914, 99.0, 'B6', 1016, 'N339JB', 'JFK', 'BOS', 43.0, 187.0, 18.0, 0.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1930, 1930, 0.0, 2228, 2243, -15.0, 'DL', 1435, 'N940DL', 'LGA', 'TPA', 147.0, 1010.0, 19.0, 30.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1934, 1935, -1.0, 2155, 2145, 10.0, '9E', 3899, 'N8907A', 'JFK', 'CLE', 78.0, 425.0, 19.0, 35.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1934, 1846, 48.0, 2108, 2018, 50.0, 'B6', 130, 'N197JB', 'JFK', 'BUF', 58.0, 301.0, 18.0, 46.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1934, 1915, 19.0, 2228, 2211, 17.0, 'B6', 155, 'N703JB', 'JFK', 'MCO', 137.0, 944.0, 19.0, 15.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1934, 1932, 2.0, 2231, 2230, 1.0, 'UA', 1416, 'N39728', 'EWR', 'IAH', 214.0, 1400.0, 19.0, 32.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1935, 1940, -5.0, 2042, 2100, -18.0, 'EV', 4108, 'N14952', 'EWR', 'IAD', 43.0, 212.0, 19.0, 40.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1936, 1940, -4.0, 2111, 2100, 11.0, 'WN', 633, 'N922WN', 'EWR', 'MDW', 126.0, 711.0, 19.0, 40.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1938, 1940, -2.0, 2220, 2240, -20.0, 'AA', 1787, 'N3EXAA', 'JFK', 'TPA', 145.0, 1005.0, 19.0, 40.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1943, 1934, 9.0, 2304, 2219, 45.0, 'EV', 4204, 'N11192', 'EWR', 'OKC', 230.0, 1325.0, 19.0, 34.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1943, 1945, -2.0, 2220, 2241, -21.0, '9E', 3314, 'N910XJ', 'JFK', 'JAX', 114.0, 828.0, 19.0, 45.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1944, 1940, 4.0, 2120, 2125, -5.0, 'MQ', 3783, 'N509MQ', 'JFK', 'CMH', 76.0, 483.0, 19.0, 40.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1947, 1940, 7.0, 2047, 2106, -19.0, '9E', 4091, 'N8543F', 'JFK', 'BWI', 40.0, 184.0, 19.0, 40.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1949, 1910, 39.0, 2153, 2118, 35.0, 'EV', 4543, 'N11194', 'EWR', 'DSM', 161.0, 1017.0, 19.0, 10.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1949, 1955, -6.0, 2223, 2310, -47.0, 'AA', 1709, 'N3FWAA', 'LGA', 'MIA', 139.0, 1096.0, 19.0, 55.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1949, 1940, 9.0, 2236, 2248, -12.0, 'B6', 381, 'N537JB', 'LGA', 'FLL', 140.0, 1076.0, 19.0, 40.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1950, 2000, -10.0, 2302, 2145, NULL, 'EV', 3272, 'N12540', 'LGA', 'CLE', NULL, 419.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 1951, 1959, -8.0, 2140, 2144, -4.0, 'MQ', 4423, 'N832MQ', 'JFK', 'RDU', 70.0, 427.0, 19.0, 59.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1952, 1925, 27.0, 2242, 2235, 7.0, 'DL', 2370, 'N324NB', 'LGA', 'PBI', 142.0, 1035.0, 19.0, 25.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1952, 2000, -8.0, 2108, 2117, -9.0, 'US', 2189, 'N760US', 'LGA', 'DCA', 47.0, 214.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 1953, 1946, 7.0, 2203, 2152, 11.0, 'EV', 4536, 'N14959', 'EWR', 'CVG', 105.0, 569.0, 19.0, 46.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1954, 2000, -6.0, 2123, 2114, 9.0, 'US', 2142, 'N945UW', 'LGA', 'BOS', 40.0, 184.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 1954, 1920, 34.0, 2251, 2251, 0.0, 'UA', 1482, 'N37413', 'EWR', 'SFO', 336.0, 2565.0, 19.0, 20.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1955, 1900, 55.0, 2142, 2057, 45.0, '9E', 3368, 'N914XJ', 'JFK', 'PIT', 68.0, 340.0, 19.0, 0.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 1955, 2000, -5.0, 2211, 2224, -13.0, '9E', 3439, 'N916XJ', 'JFK', 'CVG', 103.0, 589.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 1955, 2000, -5.0, 2234, 2243, -9.0, 'DL', 1147, 'N662DN', 'LGA', 'ATL', 118.0, 762.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 1956, 2000, -4.0, 2256, 2311, -15.0, 'B6', 801, 'N621JB', 'JFK', 'FLL', 143.0, 1069.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 1957, 2005, -8.0, 2044, 2109, -25.0, 'EV', 4309, 'N11165', 'EWR', 'ALB', 29.0, 143.0, 20.0, 5.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 1958, 1855, 63.0, 31, 2355, 36.0, 'AA', 1613, 'N625AA', 'JFK', 'SJU', 173.0, 1598.0, 18.0, 55.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 1959, 2005, -6.0, 2331, 2335, -4.0, 'VX', 415, 'N636VA', 'JFK', 'LAX', 343.0, 2475.0, 20.0, 5.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2001, 2005, -4.0, 2233, 2258, -25.0, 'UA', 405, 'N405UA', 'EWR', 'MCO', 130.0, 937.0, 20.0, 5.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2002, 1950, 12.0, 2316, 2334, -18.0, 'B6', 645, 'N641JB', 'JFK', 'SFO', 333.0, 2586.0, 19.0, 50.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2002, 2005, -3.0, 2238, 2311, -33.0, 'UA', 754, 'N812UA', 'EWR', 'TPA', 143.0, 997.0, 20.0, 5.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2003, 2005, -2.0, 2205, 2204, 1.0, 'EV', 4133, 'N18556', 'EWR', 'GSP', 99.0, 594.0, 20.0, 5.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2005, 1925, 40.0, 2303, 2229, 34.0, 'DL', 1485, 'N908DL', 'LGA', 'MCO', 133.0, 950.0, 19.0, 25.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2008, 2015, -7.0, 2208, 2210, -2.0, 'MQ', 4555, 'N739MQ', 'LGA', 'CMH', 85.0, 479.0, 20.0, 15.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2009, 1900, 69.0, 2244, 2134, 70.0, 'FL', 645, 'N943AT', 'LGA', 'ATL', 118.0, 762.0, 19.0, 0.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2010, 1745, 145.0, 2213, 1953, 140.0, 'DL', 2331, 'N979DL', 'LGA', 'DTW', 85.0, 502.0, 17.0, 45.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 2011, 1720, 171.0, 2257, 2033, 144.0, 'DL', 1779, 'N333NW', 'LGA', 'FLL', 144.0, 1076.0, 17.0, 20.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 2013, 2000, 13.0, 2141, 2143, -2.0, 'DL', 402, 'N369NB', 'JFK', 'BOS', 40.0, 187.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2015, 2000, 15.0, 2314, 2304, 10.0, 'B6', 21, 'N623JB', 'JFK', 'TPA', 142.0, 1005.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2017, 1910, 67.0, 2150, 2043, 67.0, 'EV', 4191, 'N14950', 'EWR', 'BNA', 128.0, 748.0, 19.0, 10.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2017, 2002, 15.0, 2143, 2140, 3.0, 'UA', 1018, 'N33714', 'EWR', 'CLE', 69.0, 404.0, 20.0, 2.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2018, 2022, -4.0, 2311, 2328, -17.0, 'UA', 299, 'N473UA', 'EWR', 'DFW', 217.0, 1372.0, 20.0, 22.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2023, 2025, -2.0, 2319, 2329, -10.0, 'UA', 771, 'N505UA', 'JFK', 'LAX', 321.0, 2475.0, 20.0, 25.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2025, 2029, -4.0, 2124, 2140, -16.0, '9E', 3609, 'N8971A', 'JFK', 'PHL', 26.0, 94.0, 20.0, 29.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2025, 2030, -5.0, 2347, 2349, -2.0, 'B6', 1069, 'N249JB', 'JFK', 'AUS', 245.0, 1521.0, 20.0, 30.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2026, 2000, 26.0, 2205, 2137, 28.0, 'EV', 4106, 'N13913', 'EWR', 'GSO', 69.0, 445.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2026, 2015, 11.0, 2149, 2130, 19.0, 'AA', 1762, 'N3DXAA', 'JFK', 'BOS', 41.0, 187.0, 20.0, 15.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2027, 2029, -2.0, 2215, 2218, -3.0, 'EV', 3833, 'N14568', 'EWR', 'STL', 148.0, 872.0, 20.0, 29.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2028, 1820, 128.0, 2200, 2005, 115.0, 'AA', 353, 'N3DFAA', 'LGA', 'ORD', 119.0, 733.0, 18.0, 20.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 2029, 2030, -1.0, 2200, 2206, -6.0, 'FL', 354, 'N928AT', 'LGA', 'CAK', 70.0, 397.0, 20.0, 30.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2030, 1952, 38.0, 2135, 2102, 33.0, 'EV', 4312, 'N12922', 'EWR', 'DCA', 43.0, 199.0, 19.0, 52.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2031, 2035, -4.0, 2323, 2349, -26.0, 'B6', 147, 'N608JB', 'JFK', 'RSW', 151.0, 1074.0, 20.0, 35.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2032, 1916, 76.0, 2147, 2038, 69.0, 'EV', 4131, 'N13978', 'EWR', 'RIC', 52.0, 277.0, 19.0, 16.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2032, 2005, 27.0, 2300, 2230, 30.0, '9E', 4033, 'N8598B', 'LGA', 'TYS', 102.0, 647.0, 20.0, 5.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2034, 2039, -5.0, 2140, 2143, -3.0, 'EV', 4695, 'N13553', 'EWR', 'MHT', 41.0, 209.0, 20.0, 39.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2035, 2020, 15.0, 2254, 2245, 9.0, 'MQ', 4662, 'N506MQ', 'LGA', 'ATL', 119.0, 762.0, 20.0, 20.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2036, 2045, -9.0, 2137, 2216, -39.0, '9E', 3395, 'N913XJ', 'JFK', 'DCA', 47.0, 213.0, 20.0, 45.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2037, 1947, 50.0, 2146, 2112, 34.0, 'EV', 4412, 'N14972', 'EWR', 'BUF', 49.0, 282.0, 19.0, 47.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2041, 2045, -4.0, 2159, 2153, 6.0, 'B6', 1178, 'N292JB', 'EWR', 'BOS', 44.0, 200.0, 20.0, 45.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2045, 2029, 16.0, 2241, 2233, 8.0, 'EV', 4348, 'N11193', 'EWR', 'MSP', 157.0, 1008.0, 20.0, 29.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2045, 2045, 0.0, 2309, 2309, 0.0, 'B6', 115, 'N334JB', 'JFK', 'MSY', 189.0, 1182.0, 20.0, 45.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2045, 2055, -10.0, 2233, 2250, -17.0, 'MQ', 4573, 'N736MQ', 'LGA', 'DTW', 85.0, 502.0, 20.0, 55.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2046, 2040, 6.0, 2354, 2344, 10.0, 'B6', 629, 'N309JB', 'JFK', 'HOU', 233.0, 1428.0, 20.0, 40.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2049, 2100, -11.0, 2224, 2211, 13.0, 'US', 2191, 'N730US', 'LGA', 'DCA', 45.0, 214.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2050, 2100, -10.0, 2227, 2235, -8.0, 'MQ', 4507, 'N719MQ', 'LGA', 'RDU', 71.0, 431.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2053, 2040, 13.0, 2342, 2356, -14.0, 'B6', 677, 'N644JB', 'JFK', 'LAX', 331.0, 2475.0, 20.0, 40.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2053, 1840, 133.0, 2255, 2049, 126.0, 'DL', 2131, 'N339NW', 'LGA', 'DTW', 86.0, 502.0, 18.0, 40.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 2053, 2100, -7.0, 2213, 2206, 7.0, 'US', 2144, 'N715UW', 'LGA', 'BOS', 40.0, 184.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2055, 2040, 15.0, 2318, 2312, 6.0, 'EV', 4645, 'N15983', 'EWR', 'JAX', 121.0, 820.0, 20.0, 40.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2055, 1930, 85.0, 2355, 2247, 68.0, 'DL', 1854, 'N325NB', 'LGA', 'FLL', 155.0, 1076.0, 19.0, 30.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2057, 2000, 57.0, 2224, 2147, 37.0, '9E', 3320, 'N917XJ', 'JFK', 'BUF', 54.0, 301.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2058, 2058, 0.0, 2236, 2206, 30.0, 'B6', 1020, 'N606JB', 'JFK', 'BOS', 40.0, 187.0, 20.0, 58.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2058, 2100, -2.0, 2233, 2225, 8.0, 'WN', 530, 'N287WN', 'LGA', 'MDW', 131.0, 725.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2059, 1920, 99.0, 2244, 2100, 104.0, 'AA', 359, 'N3JAAA', 'LGA', 'ORD', 130.0, 733.0, 19.0, 20.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2100, 2040, 20.0, 2330, 2358, -28.0, 'B6', 165, 'N568JB', 'JFK', 'PDX', 301.0, 2454.0, 20.0, 40.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2102, 2110, -8.0, 2209, 2222, -13.0, 'EV', 4119, 'N18557', 'EWR', 'RIC', 49.0, 277.0, 21.0, 10.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2102, 1700, 242.0, 2333, 1950, 223.0, 'AA', 575, 'N615AA', 'JFK', 'EGE', 246.0, 1747.0, 17.0, 0.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, 2102, 1909, 113.0, 2232, 2050, 102.0, 'UA', 120, 'N72405', 'EWR', 'ORD', 124.0, 719.0, 19.0, 9.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2106, 2000, 66.0, 2312, 2208, 64.0, 'EV', 3822, 'N12157', 'EWR', 'TYS', 109.0, 631.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2106, 2045, 21.0, 2249, 2225, 24.0, 'AA', 371, 'N501AA', 'LGA', 'ORD', 130.0, 733.0, 20.0, 45.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2106, 1810, 176.0, 2222, 1951, 151.0, 'UA', 1437, 'N77520', 'EWR', 'ORD', 119.0, 719.0, 18.0, 10.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 2108, 2100, 8.0, 45, 31, 14.0, 'DL', 2363, 'N717TW', 'JFK', 'LAX', 347.0, 2475.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2110, 2039, 31.0, 2342, 2338, 4.0, 'UA', 1225, 'N73251', 'EWR', 'PBI', 136.0, 1023.0, 20.0, 39.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2111, 2039, 32.0, 127, 130, -3.0, 'UA', 1071, 'N33286', 'EWR', 'BQN', 175.0, 1585.0, 20.0, 39.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2112, 2100, 12.0, 2350, 2348, 2.0, 'B6', 399, 'N708JB', 'LGA', 'MCO', 136.0, 950.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2114, 2102, 12.0, 2328, 2317, 11.0, 'EV', 3819, 'N29917', 'EWR', 'SDF', 115.0, 642.0, 21.0, 2.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2115, 2125, -10.0, 2251, 2250, 1.0, 'MQ', 4660, 'N537MQ', 'LGA', 'BNA', 135.0, 764.0, 21.0, 25.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2118, 2125, -7.0, 2229, 2240, -11.0, 'MQ', 4449, 'N840MQ', 'JFK', 'DCA', 50.0, 213.0, 21.0, 25.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2119, 2110, 9.0, 2350, 2354, -4.0, 'B6', 529, 'N527JB', 'EWR', 'MCO', 129.0, 937.0, 21.0, 10.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2126, 2125, 1.0, 2231, 2233, -2.0, 'UA', 963, 'N527UA', 'EWR', 'BOS', 48.0, 200.0, 21.0, 25.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2127, 2129, -2.0, 2209, 2224, -15.0, 'EV', 4619, 'N41104', 'EWR', 'PHL', 23.0, 80.0, 21.0, 29.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2127, 2035, 52.0, 2234, 2154, 40.0, 'UA', 1243, 'N87531', 'EWR', 'BOS', 43.0, 200.0, 20.0, 35.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2129, 2130, -1.0, 12, 24, -12.0, 'B6', 383, 'N509JB', 'LGA', 'FLL', 145.0, 1076.0, 21.0, 30.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2133, 2135, -2.0, 33, 50, -17.0, 'AA', 185, 'N327AA', 'JFK', 'LAX', 336.0, 2475.0, 21.0, 35.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2134, 1930, 124.0, 2238, 2050, 108.0, 'EV', 5693, 'N833AS', 'LGA', 'IAD', 48.0, 229.0, 19.0, 30.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2134, 2135, -1.0, 2256, 2300, -4.0, 'B6', 104, 'N279JB', 'JFK', 'BUF', 55.0, 301.0, 21.0, 35.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2134, 2135, -1.0, 25, 35, -10.0, 'B6', 11, 'N796JB', 'JFK', 'FLL', 143.0, 1069.0, 21.0, 35.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2142, 1920, 142.0, 2315, 2121, 114.0, '9E', 3373, 'N933XJ', 'JFK', 'RDU', 74.0, 427.0, 19.0, 20.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2149, 2150, -1.0, 2331, 2256, 35.0, 'B6', 1902, 'N651JB', 'JFK', 'BOS', 37.0, 187.0, 21.0, 50.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2150, 1855, 175.0, 30, 2210, 140.0, 'DL', 2391, 'N342NW', 'JFK', 'TPA', 141.0, 1005.0, 18.0, 55.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, 2153, 2159, -6.0, 2245, 2300, -15.0, 'EV', 4519, 'N11106', 'EWR', 'BWI', 36.0, 169.0, 21.0, 59.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2159, 2159, 0.0, 2303, 2315, -12.0, 'EV', 4162, 'N13979', 'EWR', 'BTV', 46.0, 266.0, 21.0, 59.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2200, 2125, 35.0, 2301, 2224, 37.0, 'EV', 4404, 'N16919', 'EWR', 'PVD', 36.0, 160.0, 21.0, 25.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2200, 1936, 144.0, 2, 2137, 145.0, 'EV', 4532, 'N16170', 'EWR', 'CHS', 95.0, 628.0, 19.0, 36.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2201, 2145, 16.0, 2305, 2259, 6.0, 'B6', 22, 'N231JB', 'JFK', 'SYR', 41.0, 209.0, 21.0, 45.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2207, 2154, 13.0, 48, 49, -1.0, 'B6', 515, 'N580JB', 'EWR', 'FLL', 140.0, 1065.0, 21.0, 54.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2209, 2129, 40.0, 2311, 2234, 37.0, 'EV', 4698, 'N13965', 'EWR', 'DCA', 40.0, 199.0, 21.0, 29.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2211, 2005, 126.0, 2331, 2133, 118.0, 'EV', 4224, 'N15574', 'EWR', 'MKE', 120.0, 725.0, 20.0, 5.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2211, 2130, 41.0, 38, 1, 37.0, 'B6', 97, 'N586JB', 'JFK', 'DEN', 236.0, 1626.0, 21.0, 30.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2227, 2159, 28.0, 2330, 2316, 14.0, 'DL', 2155, 'N337NW', 'LGA', 'PWM', 41.0, 269.0, 21.0, 59.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2243, 830, 853.0, 100, 1106, 834.0, 'F9', 835, 'N203FR', 'LGA', 'DEN', 233.0, 1620.0, 8.0, 30.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, 2244, 1936, 188.0, 130, 2208, 202.0, 'EV', 4333, 'N14180', 'EWR', 'TUL', 207.0, 1215.0, 19.0, 36.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2247, 1905, 222.0, 155, 2225, 210.0, 'AA', 21, 'N336AA', 'JFK', 'LAX', 345.0, 2475.0, 19.0, 5.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, 2304, 2000, 184.0, 141, 2318, 143.0, 'UA', 890, 'N476UA', 'EWR', 'MIA', 143.0, 1085.0, 20.0, 0.0, '2013-02-11T01:00:00Z'), #> (2013, 2, 10, 2305, 2241, 24.0, 23, 2, 21.0, 'B6', 112, 'N807JB', 'JFK', 'BUF', 51.0, 301.0, 22.0, 41.0, '2013-02-11T03:00:00Z'), #> (2013, 2, 10, 2310, 2250, 20.0, 17, 2353, 24.0, 'B6', 1018, 'N524JB', 'JFK', 'BOS', 39.0, 187.0, 22.0, 50.0, '2013-02-11T03:00:00Z'), #> (2013, 2, 10, 2313, 2159, 74.0, 16, 2306, 70.0, 'EV', 4322, 'N14977', 'EWR', 'PWM', 45.0, 284.0, 21.0, 59.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, 2315, 2250, 25.0, 34, 6, 28.0, 'B6', 30, 'N197JB', 'JFK', 'ROC', 50.0, 264.0, 22.0, 50.0, '2013-02-11T03:00:00Z'), #> (2013, 2, 10, 2318, 2250, 28.0, 30, 2358, 32.0, 'B6', 608, 'N179JB', 'JFK', 'PWM', 45.0, 273.0, 22.0, 50.0, '2013-02-11T03:00:00Z'), #> (2013, 2, 10, 2323, 2245, 38.0, 30, 2356, 34.0, 'B6', 128, 'N659JB', 'JFK', 'BTV', 48.0, 266.0, 22.0, 45.0, '2013-02-11T03:00:00Z'), #> (2013, 2, 10, 2352, 2359, -7.0, 408, 436, -28.0, 'B6', 727, 'N662JB', 'JFK', 'BQN', 175.0, 1576.0, 23.0, 59.0, '2013-02-11T04:00:00Z'), #> (2013, 2, 10, 2359, 2359, 0.0, 425, 444, -19.0, 'B6', 739, 'N729JB', 'JFK', 'PSE', 183.0, 1617.0, 23.0, 59.0, '2013-02-11T04:00:00Z'), #> (2013, 2, 10, NULL, 1200, NULL, NULL, 1408, NULL, 'EV', 4689, 'N14952', 'EWR', 'CHS', NULL, 628.0, 12.0, 0.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, NULL, 1815, NULL, NULL, 2032, NULL, 'EV', 5054, 'N730EV', 'EWR', 'MSP', NULL, 1008.0, 18.0, 15.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, NULL, 1905, NULL, NULL, 2023, NULL, 'EV', 5714, 'N836AS', 'JFK', 'IAD', NULL, 228.0, 19.0, 5.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, NULL, 1915, NULL, NULL, 2111, NULL, '9E', 3525, NULL, 'JFK', 'ORD', NULL, 740.0, 19.0, 15.0, '2013-02-11T00:00:00Z'), #> (2013, 2, 10, NULL, 1530, NULL, NULL, 1910, NULL, 'AA', 85, 'N363AA', 'JFK', 'SFO', NULL, 2586.0, 15.0, 30.0, '2013-02-10T20:00:00Z'), #> (2013, 2, 10, NULL, 810, NULL, NULL, 923, NULL, 'B6', 1172, 'N229JB', 'EWR', 'BOS', NULL, 200.0, 8.0, 10.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, NULL, 800, NULL, NULL, 1002, NULL, 'B6', 219, 'N274JB', 'JFK', 'CLT', NULL, 541.0, 8.0, 0.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, NULL, 829, NULL, NULL, 1105, NULL, 'B6', 611, 'N197JB', 'JFK', 'JAX', NULL, 828.0, 8.0, 29.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, NULL, 1220, NULL, NULL, 1532, NULL, 'B6', 209, 'N536JB', 'JFK', 'LGB', NULL, 2465.0, 12.0, 20.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, NULL, 1459, NULL, NULL, 1736, NULL, 'B6', 119, 'N632JB', 'JFK', 'MSY', NULL, 1182.0, 14.0, 59.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, NULL, 825, NULL, NULL, 1136, NULL, 'B6', 181, 'N625JB', 'JFK', 'SAN', NULL, 2446.0, 8.0, 25.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, NULL, 747, NULL, NULL, 1125, NULL, 'B6', 643, 'N504JB', 'JFK', 'SFO', NULL, 2586.0, 7.0, 47.0, '2013-02-10T12:00:00Z'), #> (2013, 2, 10, NULL, 1435, NULL, NULL, 1747, NULL, 'B6', 347, 'N197JB', 'JFK', 'SRQ', NULL, 1041.0, 14.0, 35.0, '2013-02-10T19:00:00Z'), #> (2013, 2, 10, NULL, 630, NULL, NULL, 926, NULL, 'B6', 71, 'N637JB', 'JFK', 'TPA', NULL, 1005.0, 6.0, 30.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, NULL, 2100, NULL, NULL, 2220, NULL, 'MQ', 3744, 'N511MQ', 'EWR', 'ORD', NULL, 719.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, NULL, 1840, NULL, NULL, 2020, NULL, 'MQ', 3730, 'N534MQ', 'EWR', 'ORD', NULL, 719.0, 18.0, 40.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, NULL, 2100, NULL, NULL, 2250, NULL, 'MQ', 4584, 'N522MQ', 'LGA', 'CLT', NULL, 544.0, 21.0, 0.0, '2013-02-11T02:00:00Z'), #> (2013, 2, 10, NULL, 850, NULL, NULL, 1035, NULL, 'MQ', 4558, 'N730MQ', 'LGA', 'CLE', NULL, 419.0, 8.0, 50.0, '2013-02-10T13:00:00Z'), #> (2013, 2, 10, NULL, 1855, NULL, NULL, 2100, NULL, 'MQ', 4649, 'N516MQ', 'LGA', 'MSP', NULL, 1020.0, 18.0, 55.0, '2013-02-10T23:00:00Z'), #> (2013, 2, 10, NULL, 1625, NULL, NULL, 1855, NULL, 'MQ', 4661, 'N537MQ', 'LGA', 'ATL', NULL, 762.0, 16.0, 25.0, '2013-02-10T21:00:00Z'), #> (2013, 2, 10, NULL, 1341, NULL, NULL, 1941, NULL, 'UA', 15, NULL, 'EWR', 'HNL', NULL, 4963.0, 13.0, 41.0, '2013-02-10T18:00:00Z'), #> (2013, 2, 10, NULL, 1130, NULL, NULL, 1437, NULL, 'UA', 703, NULL, 'JFK', 'LAX', NULL, 2475.0, 11.0, 30.0, '2013-02-10T16:00:00Z'), #> (2013, 2, 10, NULL, 1730, NULL, NULL, 2022, NULL, 'UA', 1109, NULL, 'EWR', 'MCO', NULL, 937.0, 17.0, 30.0, '2013-02-10T22:00:00Z'), #> (2013, 2, 10, NULL, 1216, NULL, NULL, 1555, NULL, 'UA', 1227, NULL, 'EWR', 'PHX', NULL, 2133.0, 12.0, 16.0, '2013-02-10T17:00:00Z'), #> (2013, 2, 10, NULL, 653, NULL, NULL, 937, NULL, 'UA', 1506, NULL, 'EWR', 'LAS', NULL, 2227.0, 6.0, 53.0, '2013-02-10T11:00:00Z'), #> (2013, 2, 10, NULL, 900, NULL, NULL, 1130, NULL, 'UA', 1643, NULL, 'EWR', 'DEN', NULL, 1605.0, 9.0, 0.0, '2013-02-10T14:00:00Z') #> ) AS `values_table` #> #> #> $post #> $post$uk #> named list() #> #> $post$fk #> named list() #> #> $post$indexes #> $post$indexes$flights #> CREATE INDEX flights__carrier ON `flights` (`carrier`) #> CREATE INDEX flights__origin ON `flights` (`origin`) #> CREATE INDEX flights__tailnum ON `flights` (`tailnum`) #> CREATE INDEX flights__origin_time_hour ON `flights` (`origin`, `time_hour`) #> #> #> DBI::dbDisconnect(con)"},{"path":"https://dm.cynkra.com/reference/dm_unnest_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Unnest columns from a wrapped table — dm_unnest_tbl","title":"Unnest columns from a wrapped table — dm_unnest_tbl","text":"dm_unnest_tbl() target specific column unnest given table given dm. ptype set keys given, .","code":""},{"path":"https://dm.cynkra.com/reference/dm_unnest_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Unnest columns from a wrapped table — dm_unnest_tbl","text":"","code":"dm_unnest_tbl(dm, parent_table, col, ptype)"},{"path":"https://dm.cynkra.com/reference/dm_unnest_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Unnest columns from a wrapped table — dm_unnest_tbl","text":"dm dm. parent_table table dm nested columns. col column unnest (unquoted). ptype dm, used query names primary foreign keys.","code":""},{"path":"https://dm.cynkra.com/reference/dm_unnest_tbl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Unnest columns from a wrapped table — dm_unnest_tbl","text":"dm.","code":""},{"path":"https://dm.cynkra.com/reference/dm_unnest_tbl.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Unnest columns from a wrapped table — dm_unnest_tbl","text":"dm_nest_tbl() inverse operation dm_unnest_tbl() differences row column order ignored. opposite true referential constraints tables satisfied.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_unnest_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Unnest columns from a wrapped table — dm_unnest_tbl","text":"","code":"airlines_wrapped <- dm_nycflights13() %>% dm_wrap_tbl(airlines) # The ptype is required for reconstruction. # It can be an empty dm, only primary and foreign keys are considered. ptype <- dm_ptype(dm_nycflights13()) airlines_wrapped %>% dm_unnest_tbl(airlines, flights, ptype) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `flights` #> Columns: 24 #> Primary keys: 1 #> Foreign keys: 1"},{"path":"https://dm.cynkra.com/reference/dm_unpack_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Unpack columns from a wrapped table — dm_unpack_tbl","title":"Unpack columns from a wrapped table — dm_unpack_tbl","text":"#' @description","code":""},{"path":"https://dm.cynkra.com/reference/dm_unpack_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Unpack columns from a wrapped table — dm_unpack_tbl","text":"","code":"dm_unpack_tbl(dm, child_table, col, ptype)"},{"path":"https://dm.cynkra.com/reference/dm_unpack_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Unpack columns from a wrapped table — dm_unpack_tbl","text":"dm dm. child_table table dm packed columns. col column unpack (unquoted). ptype dm, used query names primary foreign keys.","code":""},{"path":"https://dm.cynkra.com/reference/dm_unpack_tbl.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Unpack columns from a wrapped table — dm_unpack_tbl","text":"dm_unpack_tbl() targets specific column unpack given table given dm. ptype set keys given, . dm_pack_tbl() inverse operation dm_unpack_tbl() differences row column order ignored. opposite true referential constraints tables satisfied rows parent table least one child row, .e. relationship cardinality 1:n 1:1.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_unpack_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Unpack columns from a wrapped table — dm_unpack_tbl","text":"","code":"flights_wrapped <- dm_nycflights13() %>% dm_wrap_tbl(flights) # The ptype is required for reconstruction. # It can be an empty dm, only primary and foreign keys are considered. ptype <- dm_ptype(dm_nycflights13()) flights_wrapped %>% dm_unpack_tbl(flights, airlines, ptype) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `flights`, `airlines` #> Columns: 24 #> Primary keys: 1 #> Foreign keys: 1"},{"path":"https://dm.cynkra.com/reference/dm_unwrap_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Unwrap a single table dm — dm_unwrap_tbl","title":"Unwrap a single table dm — dm_unwrap_tbl","text":"dm_unwrap_tbl() unwraps tables dm object resulting dm matches given ptype dm. runs sequence dm_unnest_tbl() dm_unpack_tbl() operations dm.","code":""},{"path":"https://dm.cynkra.com/reference/dm_unwrap_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Unwrap a single table dm — dm_unwrap_tbl","text":"","code":"dm_unwrap_tbl(dm, ptype, progress = NA)"},{"path":"https://dm.cynkra.com/reference/dm_unwrap_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Unwrap a single table dm — dm_unwrap_tbl","text":"dm dm. ptype dm, used query names primary foreign keys. progress Whether display progress bar, NA (default) hide non-interactive mode, show interactive mode. Requires 'progress' package.","code":""},{"path":"https://dm.cynkra.com/reference/dm_unwrap_tbl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Unwrap a single table dm — dm_unwrap_tbl","text":"dm.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_unwrap_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Unwrap a single table dm — dm_unwrap_tbl","text":"","code":"roundtrip <- dm_nycflights13() %>% dm_wrap_tbl(root = flights) %>% dm_unwrap_tbl(ptype = dm_ptype(dm_nycflights13())) roundtrip #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `flights`, `airlines`, `airports`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4 # The roundtrip has the same structure but fewer rows: dm_nrow(dm_nycflights13()) #> airlines airports flights planes weather #> 15 86 1761 945 144 dm_nrow(roundtrip) #> flights airlines airports planes weather #> 1761 15 3 1112 105"},{"path":"https://dm.cynkra.com/reference/dm_validate.html","id":null,"dir":"Reference","previous_headings":"","what":"Validator — dm_validate","title":"Validator — dm_validate","text":"dm_validate() checks internal consistency dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_validate.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Validator — dm_validate","text":"","code":"dm_validate(x)"},{"path":"https://dm.cynkra.com/reference/dm_validate.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Validator — dm_validate","text":"x object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_validate.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Validator — dm_validate","text":"Returns dm, invisibly, finishing checks.","code":""},{"path":"https://dm.cynkra.com/reference/dm_validate.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Validator — dm_validate","text":"theory, exception new_dm(), dm objects created modified functions package valid, function needed. Please file issue dm operation creates invalid object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_validate.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Validator — dm_validate","text":"","code":"dm_validate(dm()) bad_dm <- structure(list(bad = \"dm\"), class = \"dm\") try(dm_validate(bad_dm)) #> Error in abort_dm_invalid(\"A `dm` needs to be a list of one item named `def`.\") : #> This `dm` is invalid, reason: A `dm` needs to be a list of one item named `def`."},{"path":"https://dm.cynkra.com/reference/dm_wrap_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Wrap dm into a single tibble dm — dm_wrap_tbl","title":"Wrap dm into a single tibble dm — dm_wrap_tbl","text":"dm_wrap_tbl() creates single tibble dm containing root table enhanced data related relationships stored dm. runs sequence dm_nest_tbl() dm_pack_tbl() operations dm.","code":""},{"path":"https://dm.cynkra.com/reference/dm_wrap_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Wrap dm into a single tibble dm — dm_wrap_tbl","text":"","code":"dm_wrap_tbl(dm, root, strict = TRUE, progress = NA)"},{"path":"https://dm.cynkra.com/reference/dm_wrap_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Wrap dm into a single tibble dm — dm_wrap_tbl","text":"dm cycle free dm object. root Table wrap dm (unquoted). strict Whether fail cyclic dms wrapped single table, FALSE partially wrapped dm returned. progress Whether display progress bar, NA (default) hide non-interactive mode, show interactive mode. Requires 'progress' package.","code":""},{"path":"https://dm.cynkra.com/reference/dm_wrap_tbl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Wrap dm into a single tibble dm — dm_wrap_tbl","text":"dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_wrap_tbl.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Wrap dm into a single tibble dm — dm_wrap_tbl","text":"dm_wrap_tbl() inverse dm_unwrap_tbl(), .e., wrapping unwrapping returns information (disregarding row column order). opposite generally true: since dm_wrap_tbl() keeps rows related directly indirectly rows root table. Even referential constraints satisfied, unwrapping wrapping loses rows parent tables corresponding row child table. function differs dm_flatten_to_tbl() dm_squash_to_tbl() , always return single table, dm object.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/dm_wrap_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Wrap dm into a single tibble dm — dm_wrap_tbl","text":"","code":"dm_nycflights13() %>% dm_wrap_tbl(root = airlines) #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines` #> Columns: 3 #> Primary keys: 1 #> Foreign keys: 0"},{"path":"https://dm.cynkra.com/reference/dm_zoom_to.html","id":null,"dir":"Reference","previous_headings":"","what":"Mark table for manipulation — dm_zoom_to","title":"Mark table for manipulation — dm_zoom_to","text":"Zooming table dm allows use many dplyr-verbs directly table, retaining context dm object. dm_zoom_to() zooms given table. dm_update_zoomed() overwrites originally zoomed table manipulated table. filter conditions zoomed table added original filter conditions. dm_insert_zoomed() adds new table dm. dm_discard_zoomed() discards zoomed table returns dm zooming. Please refer vignette(\"tech-db-zoom\", package = \"dm\") detailed introduction.","code":""},{"path":"https://dm.cynkra.com/reference/dm_zoom_to.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Mark table for manipulation — dm_zoom_to","text":"","code":"dm_zoom_to(dm, table) dm_insert_zoomed(dm, new_tbl_name = NULL, repair = \"unique\", quiet = FALSE) dm_update_zoomed(dm) dm_discard_zoomed(dm)"},{"path":"https://dm.cynkra.com/reference/dm_zoom_to.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Mark table for manipulation — dm_zoom_to","text":"dm dm object. table table dm. new_tbl_name Name new table. repair Either string function. string, must one \"check_unique\", \"minimal\", \"unique\", \"universal\", \"unique_quiet\", \"universal_quiet\". function, invoked vector minimal names must return minimal names, otherwise error thrown. Minimal names never NULL NA. element name, minimal name empty string. Unique names unique. suffix appended duplicate names make unique. Universal names unique syntactic, meaning can safely use names variables without causing syntax error. \"check_unique\" option perform name repair. Instead, error raised names suit \"unique\" criteria. options \"unique_quiet\" \"universal_quiet\" help user calls function indirectly, via another function exposes repair quiet. Specifying repair = \"unique_quiet\" like specifying repair = \"unique\", quiet = TRUE. \"*_quiet\" options used, setting quiet silently overridden. quiet default, user informed renaming caused repairing names. concerns unique universal repairing. Set quiet TRUE silence messages. Users can silence name repair messages setting \"rlib_name_repair_verbosity\" global option \"quiet\".","code":""},{"path":"https://dm.cynkra.com/reference/dm_zoom_to.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Mark table for manipulation — dm_zoom_to","text":"dm_zoom_to(): dm_zoomed object. dm_insert_zoomed(), dm_update_zoomed() dm_discard_zoomed(): dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dm_zoom_to.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Mark table for manipulation — dm_zoom_to","text":"Whenever possible, key relations original table transferred resulting table using dm_insert_zoomed() dm_update_zoomed(). Functions dplyr supported dm_zoomed: group_by(), summarise(), mutate(), transmute(), filter(), select(), rename() ungroup(). can use functions just like normal table. Calling filter() zoomed dm different calling dm_filter(): latter, filter expression added list table filters stored dm. Furthermore, different join()-variants dplyr also supported, e.g. left_join() semi_join(). (Support nest_join() planned.) join-methods dm_zoomed infer columns join primary foreign keys, extra argument select allows choosing columns RHS table. -- last least -- also tidyr-functions unite() separate() supported dm_zoomed.","code":""},{"path":"https://dm.cynkra.com/reference/dm_zoom_to.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Mark table for manipulation — dm_zoom_to","text":"","code":"flights_zoomed <- dm_zoom_to(dm_nycflights13(), flights) flights_zoomed #> # Zoomed table: flights #> # A tibble: 1,761 × 19 #> year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time #> #> 1 2013 1 10 3 2359 4 426 437 #> 2 2013 1 10 16 2359 17 447 444 #> 3 2013 1 10 450 500 -10 634 648 #> 4 2013 1 10 520 525 -5 813 820 #> 5 2013 1 10 530 530 0 824 829 #> 6 2013 1 10 531 540 -9 832 850 #> 7 2013 1 10 535 540 -5 1015 1017 #> 8 2013 1 10 546 600 -14 645 709 #> 9 2013 1 10 549 600 -11 652 724 #> 10 2013 1 10 550 600 -10 649 703 #> # ℹ 1,751 more rows #> # ℹ 11 more variables: arr_delay , carrier , flight , #> # tailnum , origin , dest , air_time , distance , #> # hour , minute , time_hour flights_zoomed_transformed <- flights_zoomed %>% mutate(am_pm_dep = ifelse(dep_time < 1200, \"am\", \"pm\")) %>% # `by`-argument of `left_join()` can be explicitly given # otherwise the key-relation is used left_join(airports) %>% select(year:dep_time, am_pm_dep, everything()) flights_zoomed_transformed #> # Zoomed table: flights #> # A tibble: 1,761 × 27 #> year month day dep_time am_pm_dep sched_dep_time dep_delay arr_time #> #> 1 2013 1 10 3 am 2359 4 426 #> 2 2013 1 10 16 am 2359 17 447 #> 3 2013 1 10 450 am 500 -10 634 #> 4 2013 1 10 520 am 525 -5 813 #> 5 2013 1 10 530 am 530 0 824 #> 6 2013 1 10 531 am 540 -9 832 #> 7 2013 1 10 535 am 540 -5 1015 #> 8 2013 1 10 546 am 600 -14 645 #> 9 2013 1 10 549 am 600 -11 652 #> 10 2013 1 10 550 am 600 -10 649 #> # ℹ 1,751 more rows #> # ℹ 19 more variables: sched_arr_time , arr_delay , carrier , #> # flight , tailnum , origin , dest , air_time , #> # distance , hour , minute , time_hour , name , #> # lat , lon , alt , tz , dst , tzone # replace table `flights` with the zoomed table flights_zoomed_transformed %>% dm_update_zoomed() #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 61 #> Primary keys: 4 #> Foreign keys: 4 # insert the zoomed table as a new table flights_zoomed_transformed %>% dm_insert_zoomed(\"extended_flights\") %>% dm_draw() %0 airlinesairlinescarrierairportsairportsfaaextended_flightsextended_flightscarriertailnumoriginorigin, time_hourextended_flights:carrier->airlines:carrierextended_flights:origin->airports:faaplanesplanestailnumextended_flights:tailnum->planes:tailnumweatherweatherorigin, time_hourextended_flights:origin, time_hour->weather:origin, time_hourflightsflightscarriertailnumoriginorigin, time_hourflights:carrier->airlines:carrierflights:origin->airports:faaflights:tailnum->planes:tailnumflights:origin, time_hour->weather:origin, time_hour # discard the zoomed table flights_zoomed_transformed %>% dm_discard_zoomed() #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/dplyr_join.html","id":null,"dir":"Reference","previous_headings":"","what":"dplyr join methods for zoomed dm objects — dplyr_join","title":"dplyr join methods for zoomed dm objects — dplyr_join","text":"Use methods without '.dm_zoomed' suffix (see examples).","code":""},{"path":"https://dm.cynkra.com/reference/dplyr_join.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"dplyr join methods for zoomed dm objects — dplyr_join","text":"","code":"# S3 method for dm_zoomed left_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...) # S3 method for dm_keyed_tbl left_join(x, y, by = NULL, copy = NULL, suffix = NULL, ..., keep = FALSE) # S3 method for dm_zoomed inner_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...) # S3 method for dm_keyed_tbl inner_join(x, y, by = NULL, copy = NULL, suffix = NULL, ..., keep = FALSE) # S3 method for dm_zoomed full_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...) # S3 method for dm_keyed_tbl full_join(x, y, by = NULL, copy = NULL, suffix = NULL, ..., keep = FALSE) # S3 method for dm_zoomed right_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...) # S3 method for dm_keyed_tbl right_join(x, y, by = NULL, copy = NULL, suffix = NULL, ..., keep = FALSE) # S3 method for dm_zoomed semi_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...) # S3 method for dm_keyed_tbl semi_join(x, y, by = NULL, copy = NULL, ...) # S3 method for dm_zoomed anti_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...) # S3 method for dm_keyed_tbl anti_join(x, y, by = NULL, copy = NULL, ...) # S3 method for dm_zoomed nest_join(x, y, by = NULL, copy = FALSE, keep = FALSE, name = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/dplyr_join.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"dplyr join methods for zoomed dm objects — dplyr_join","text":"x, y tbls join. x dm_zoomed y another table dm. left NULL (default), join performed via foreign key relation exists originally zoomed table (now x) table (y). provide value (syntax see dplyr::join), can also join tables connected dm. copy Disabled, since tables dm definition src. suffix Disabled, since columns disambiguated automatically necessary, changing column names table_name.column_name. select Select subset RHS-table's columns, syntax select = c(col_1, col_2, col_3) (unquoted quoted). argument specific join-methods dm_zoomed. table's column(s) automatically added missing selection. ... see dplyr::join keep new list-column contain join keys? default preserve join keys inequality joins. name name list-column created join. NULL, default, name y used.","code":""},{"path":"https://dm.cynkra.com/reference/dplyr_join.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"dplyr join methods for zoomed dm objects — dplyr_join","text":"","code":"flights_dm <- dm_nycflights13() dm_zoom_to(flights_dm, flights) %>% left_join(airports, select = c(faa, name)) #> # Zoomed table: flights #> # A tibble: 1,761 × 20 #> year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time #> #> 1 2013 1 10 3 2359 4 426 437 #> 2 2013 1 10 16 2359 17 447 444 #> 3 2013 1 10 450 500 -10 634 648 #> 4 2013 1 10 520 525 -5 813 820 #> 5 2013 1 10 530 530 0 824 829 #> 6 2013 1 10 531 540 -9 832 850 #> 7 2013 1 10 535 540 -5 1015 1017 #> 8 2013 1 10 546 600 -14 645 709 #> 9 2013 1 10 549 600 -11 652 724 #> 10 2013 1 10 550 600 -10 649 703 #> # ℹ 1,751 more rows #> # ℹ 12 more variables: arr_delay , carrier , flight , #> # tailnum , origin , dest , air_time , distance , #> # hour , minute , time_hour , name # this should illustrate that tables don't necessarily need to be connected dm_zoom_to(flights_dm, airports) %>% semi_join(airlines, by = \"name\") #> # Zoomed table: airports #> # A tibble: 0 × 8 #> # ℹ 8 variables: faa , name , lat , lon , alt , #> # tz , dst , tzone "},{"path":"https://dm.cynkra.com/reference/dplyr_src.html","id":null,"dir":"Reference","previous_headings":"","what":"dm as data source — dplyr_src","title":"dm as data source — dplyr_src","text":"methods deprecated limited use, notion \"source\" seems getting phased dplyr. Use ways access tables dm.","code":""},{"path":"https://dm.cynkra.com/reference/dplyr_src.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"dm as data source — dplyr_src","text":"","code":"dm_get_src(x) # S3 method for dm tbl(src, from, ...) # S3 method for dm src_tbls(x, ...) # S3 method for dm copy_to( dest, df, name = deparse(substitute(df)), overwrite = FALSE, temporary = TRUE, repair = \"unique\", quiet = FALSE, ... )"},{"path":"https://dm.cynkra.com/reference/dplyr_src.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"dm as data source — dplyr_src","text":"src dm object. length one character variable containing name requested table ... See original function documentation dest copy_to.dm(): dm object table copied. df copy_to.dm(): table (can different src) name copy_to.dm(): See dplyr::copy_to() overwrite copy_to.dm(): See dplyr::copy_to(); TRUE leads error temporary copy_to.dm(): dm DB, copied version df written temporarily DB. connection reset longer available. repair, quiet Name repair options; cf. vctrs::vec_as_names()","code":""},{"path":"https://dm.cynkra.com/reference/dplyr_src.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"dm as data source — dplyr_src","text":"Use dm_get_con() instead dm_get_src() get DBI connetion dm object Use [[ instead tbl() access individual tables dm object. Get names dm_get_tables() instead calling dm_get_src() list table names dm object. Use copy_to() table dm() instead copy_to() dm object.","code":""},{"path":"https://dm.cynkra.com/reference/dplyr_table_manipulation.html","id":null,"dir":"Reference","previous_headings":"","what":"dplyr table manipulation methods for zoomed dm objects — dplyr_table_manipulation","title":"dplyr table manipulation methods for zoomed dm objects — dplyr_table_manipulation","text":"Use methods without '.dm_zoomed' suffix (see examples).","code":""},{"path":"https://dm.cynkra.com/reference/dplyr_table_manipulation.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"dplyr table manipulation methods for zoomed dm objects — dplyr_table_manipulation","text":"","code":"# S3 method for dm_zoomed filter(.data, ...) # S3 method for dm_zoomed mutate(.data, ...) # S3 method for dm_zoomed transmute(.data, ...) # S3 method for dm_zoomed select(.data, ...) # S3 method for dm_zoomed relocate(.data, ..., .before = NULL, .after = NULL) # S3 method for dm_zoomed rename(.data, ...) # S3 method for dm_zoomed distinct(.data, ..., .keep_all = FALSE) # S3 method for dm_zoomed arrange(.data, ...) # S3 method for dm_zoomed slice(.data, ..., .keep_pk = NULL) # S3 method for dm_zoomed group_by(.data, ...) # S3 method for dm_keyed_tbl group_by(.data, ...) # S3 method for dm_zoomed ungroup(x, ...) # S3 method for dm_zoomed summarise(.data, ...) # S3 method for dm_keyed_tbl summarise(.data, ...) # S3 method for dm_zoomed count( x, ..., wt = NULL, sort = FALSE, name = NULL, .drop = group_by_drop_default(x) ) # S3 method for dm_zoomed tally(x, ...) # S3 method for dm_zoomed pull(.data, var = -1, ...) # S3 method for dm_zoomed compute(x, ...)"},{"path":"https://dm.cynkra.com/reference/dplyr_table_manipulation.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"dplyr table manipulation methods for zoomed dm objects — dplyr_table_manipulation","text":".data object class dm_zoomed ... see corresponding function package dplyr tidyr ., . Destination columns selected .... Supplying neither move columns left-hand side; specifying error. .keep_all distinct.dm_zoomed(): see dplyr::distinct() .keep_pk slice.dm_zoomed: Logical, TRUE, primary key retained transformation. FALSE, dropped. default, value NULL, causes function issue message case primary key available zoomed table. argument specific slice.dm_zoomed() method. x ungroup.dm_zoomed: object class dm_zoomed wt Frequency weights. Can NULL variable: NULL (default), counts number rows group. variable, computes sum(wt) group. sort TRUE, show largest groups top. name name new column output. omitted, default n. already column called n, use nn. column called n nn, 'll use nnn, , adding ns gets new name. .drop Handling factor levels appear data, passed group_by(). count(): FALSE include counts empty groups (.e. levels factors exist data). add_count(): deprecated since actually affect output. var variable specified : literal variable name positive integer, giving position counting left negative integer, giving position counting right. default returns last column (assumption column created recently). argument taken expression supports quasiquotation (can unquote column names column locations).","code":""},{"path":"https://dm.cynkra.com/reference/dplyr_table_manipulation.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"dplyr table manipulation methods for zoomed dm objects — dplyr_table_manipulation","text":"","code":"zoomed <- dm_nycflights13() %>% dm_zoom_to(flights) %>% group_by(month) %>% arrange(desc(day)) %>% summarize(avg_air_time = mean(air_time, na.rm = TRUE)) zoomed #> # Zoomed table: flights #> # A tibble: 2 × 2 #> month avg_air_time #> #> 1 1 147. #> 2 2 149. dm_insert_zoomed(zoomed, new_tbl_name = \"avg_air_time_per_month\") #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather`, `avg_air_time_per_month` #> Columns: 55 #> Primary keys: 4 #> Foreign keys: 4"},{"path":"https://dm.cynkra.com/reference/examine_cardinality.html","id":null,"dir":"Reference","previous_headings":"","what":"Check table relations — examine_cardinality","title":"Check table relations — examine_cardinality","text":"check_cardinality_...() functions test following conditions: rows x unique? rows y subset rows x? relation x y meet cardinality requirements? One row x must correspond requested number rows y, e.g. _0_1 means must zero one rows y row x. examine_cardinality() also checks first two points subsequently determines type cardinality. convenience, x_select y_select arguments allow restricting check set key columns without affecting return value.","code":""},{"path":"https://dm.cynkra.com/reference/examine_cardinality.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check table relations — examine_cardinality","text":"","code":"check_cardinality_0_n( x, y, ..., x_select = NULL, y_select = NULL, by_position = NULL ) check_cardinality_1_n( x, y, ..., x_select = NULL, y_select = NULL, by_position = NULL ) check_cardinality_1_1( x, y, ..., x_select = NULL, y_select = NULL, by_position = NULL ) check_cardinality_0_1( x, y, ..., x_select = NULL, y_select = NULL, by_position = NULL ) examine_cardinality( x, y, ..., x_select = NULL, y_select = NULL, by_position = NULL )"},{"path":"https://dm.cynkra.com/reference/examine_cardinality.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check table relations — examine_cardinality","text":"x Parent table, data frame lazy table. y Child table, data frame lazy table. ... dots future extensions must empty. x_select, y_select Key columns restrict check, processed dplyr::select(). by_position Set TRUE ignore column names match position instead. default means matching name, use x_select /y_select align names.","code":""},{"path":"https://dm.cynkra.com/reference/examine_cardinality.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check table relations — examine_cardinality","text":"check_cardinality_...() return x, invisibly, check passed, support pipes. Otherwise error thrown reason explained. examine_cardinality() returns character variable specifying type relationship two columns.","code":""},{"path":"https://dm.cynkra.com/reference/examine_cardinality.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Check table relations — examine_cardinality","text":"cardinality functions accept parent child table (x y). rows x must unique, rows y must subset rows x. x_select y_select arguments allow restricting check set key columns without affecting return value. given, arguments must refer number key columns. cardinality specifications \"0_n\", \"1_n\", \"0_1\", \"1_1\" refer expected relation child table parent table. \"0\", \"1\" \"n\" refer occurrences value combinations y correspond combination columns parent table. \"n\" means \"one\" context, upper limit. \"0_n\": restrictions, row x least 0 n corresponding occurrences y. \"1_n\": row x least 1 n corresponding occurrences y. means \"surjective\" mapping child table parent table, .e. parent table row exists least child table. \"0_1\": row x least 0 1 corresponding occurrence y. means \"injective\" mapping child table parent table, .e. combination values parent table columns addressed multiple times. parent table rows referred . \"1_1\": row x occurs exactly y. means \"bijective\" (\"injective\" \"surjective\") mapping child table parent table, .e. sets rows identical. Finally, examine_cardinality() tests returns nature relationship (injective, surjective, bijective, none ) two given sets columns. either x unique rows y missing x, requirements cardinality test fulfilled. error thrown, result contain information prerequisite violated.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/examine_cardinality.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check table relations — examine_cardinality","text":"","code":"d1 <- tibble::tibble(a = 1:5) d2 <- tibble::tibble(a = c(1:4, 4L)) d3 <- tibble::tibble(c = c(1:5, 5L), d = 0) # This does not pass, `a` is not unique key of d2: try(check_cardinality_0_n(d2, d1)) #> Error in abort_not_unique_key(x_label, orig_names) : #> (`a`) not a unique key of `d2`. # Columns are matched by name by default: try(check_cardinality_0_n(d1, d3)) #> Error in check_card_api_impl({ : #> `by_position = FALSE` or `by_position = NULL` require column names in `x` to match those in `y`. # This passes, multiple values in d3$c are allowed: check_cardinality_0_n(d1, d2) # This does not pass, injectivity is violated: try(check_cardinality_1_1(d1, d3, y_select = c(a = c))) #> Error in abort_not_bijective(y_label, colnames(y)) : #> 1..1 cardinality (bijectivity) is not given: Column (`a`) in table `d3` contains duplicate values. try(check_cardinality_0_1(d1, d3, x_select = c(c = a))) #> Error in abort_not_injective(y_label, colnames(y)) : #> 0..1 cardinality (injectivity from child table to parent table) is not given: Column (`c`) in table `d3` contains duplicate values. # What kind of cardinality is it? examine_cardinality(d1, d3, x_select = c(c = a)) #> [1] \"surjective mapping (child: 1 to n -> parent: 1)\" examine_cardinality(d1, d2) #> [1] \"generic mapping (child: 0 to n -> parent: 1)\""},{"path":"https://dm.cynkra.com/reference/glimpse.dm.html","id":null,"dir":"Reference","previous_headings":"","what":"Get a glimpse of your dm object — glimpse.dm","title":"Get a glimpse of your dm object — glimpse.dm","text":"glimpse() provides overview (dimensions, column data types, primary keys, etc.) tables included dm object. additionally print details outgoing foreign keys child table. glimpse() provided pillar package, re-exported dm. See pillar::glimpse() details.","code":""},{"path":"https://dm.cynkra.com/reference/glimpse.dm.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get a glimpse of your dm object — glimpse.dm","text":"","code":"# S3 method for dm glimpse(x, width = NULL, ...) # S3 method for dm_zoomed glimpse(x, width = NULL, ...)"},{"path":"https://dm.cynkra.com/reference/glimpse.dm.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get a glimpse of your dm object — glimpse.dm","text":"x dm object. width Controls maximum number columns line used printing. NULL, getOption(\"width\") consulted. ... Passed pillar::glimpse().","code":""},{"path":"https://dm.cynkra.com/reference/glimpse.dm.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get a glimpse of your dm object — glimpse.dm","text":"","code":"dm_nycflights13() %>% glimpse() #> dm of 5 tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> #> ──────────────────────────────────────────────────────────────────────────────── #> #> Table: `airlines` #> Primary key: `carrier` #> #> Rows: 15 #> Columns: 2 #> $ carrier \"9E\", \"AA\", \"AS\", \"B6\", \"DL\", \"EV\", \"F9\", \"FL\", \"HA\", \"MQ\", \"U… #> $ name \"Endeavor Air Inc.\", \"American Airlines Inc.\", \"Alaska Airline… #> #> ──────────────────────────────────────────────────────────────────────────────── #> #> Table: `airports` #> Primary key: `faa` #> #> Rows: 86 #> Columns: 8 #> $ faa \"ALB\", \"ATL\", \"AUS\", \"BDL\", \"BHM\", \"BNA\", \"BOS\", \"BTV\", \"BUF\", \"… #> $ name \"Albany Intl\", \"Hartsfield Jackson Atlanta Intl\", \"Austin Bergst… #> $ lat 42.74827, 33.63672, 30.19453, 41.93889, 33.56294, 36.12447, 42.3… #> $ lon -73.80169, -84.42807, -97.66989, -72.68322, -86.75355, -86.67819… #> $ alt 285, 1026, 542, 173, 644, 599, 19, 335, 724, 778, 146, 236, 1228… #> $ tz -5, -5, -6, -5, -6, -6, -5, -5, -5, -8, -5, -5, -5, -5, -5, -5, … #> $ dst \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\",… #> $ tzone \"America/New_York\", \"America/New_York\", \"America/Chicago\", \"Amer… #> #> ──────────────────────────────────────────────────────────────────────────────── #> #> Table: `flights` #> 4 outgoing foreign key(s): #> `carrier` -> `airlines$carrier` no_action #> `origin` -> `airports$faa` no_action #> `tailnum` -> `planes$tailnum` no_action #> (`origin`, `time_hour`) -> (`weather$origin`, `weather$time_hour`) no_action #> #> Rows: 1,761 #> Columns: 19 #> $ year 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2… #> $ month 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1… #> $ day 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,… #> $ dep_time 3, 16, 450, 520, 530, 531, 535, 546, 549, 550, 553, 553… #> $ sched_dep_time 2359, 2359, 500, 525, 530, 540, 540, 600, 600, 600, 600… #> $ dep_delay 4, 17, -10, -5, 0, -9, -5, -14, -11, -10, -7, -7, -7, -… #> $ arr_time 426, 447, 634, 813, 824, 832, 1015, 645, 652, 649, 711,… #> $ sched_arr_time 437, 444, 648, 820, 829, 850, 1017, 709, 724, 703, 715,… #> $ arr_delay -11, 3, -14, -7, -5, -18, -2, -24, -32, -14, -4, -33, -… #> $ carrier \"B6\", \"B6\", \"US\", \"UA\", \"UA\", \"AA\", \"B6\", \"B6\", \"EV\", \"… #> $ flight 727, 739, 1117, 1018, 404, 1141, 725, 380, 6055, 2114, … #> $ tailnum \"N571JB\", \"N564JB\", \"N171US\", \"N35204\", \"N815UA\", \"N5EA… #> $ origin \"JFK\", \"JFK\", \"EWR\", \"EWR\", \"LGA\", \"JFK\", \"JFK\", \"EWR\",… #> $ dest \"BQN\", \"PSE\", \"CLT\", \"IAH\", \"IAH\", \"MIA\", \"BQN\", \"BOS\",… #> $ air_time 183, 191, 78, 215, 210, 149, 191, 39, 48, 36, 51, 201, … #> $ distance 1576, 1617, 529, 1400, 1416, 1089, 1576, 200, 229, 184,… #> $ hour 23, 23, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,… #> $ minute 59, 59, 0, 25, 30, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0… #> $ time_hour 2013-01-10 23:00:00, 2013-01-10 23:00:00, 2013-01-10 0… #> #> ──────────────────────────────────────────────────────────────────────────────── #> #> Table: `planes` #> Primary key: `tailnum` #> #> Rows: 945 #> Columns: 9 #> $ tailnum \"N10156\", \"N104UW\", \"N10575\", \"N105UW\", \"N110UW\", \"N11106… #> $ year 2004, 1999, 2002, 1999, 1999, 2002, 2002, 2002, 2003, 200… #> $ type \"Fixed wing multi engine\", \"Fixed wing multi engine\", \"Fi… #> $ manufacturer \"EMBRAER\", \"AIRBUS INDUSTRIE\", \"EMBRAER\", \"AIRBUS INDUSTR… #> $ model \"EMB-145XR\", \"A320-214\", \"EMB-145LR\", \"A320-214\", \"A320-2… #> $ engines 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, … #> $ seats 55, 182, 55, 182, 182, 55, 55, 55, 55, 55, 55, 55, 55, 55… #> $ speed NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ engine \"Turbo-fan\", \"Turbo-fan\", \"Turbo-fan\", \"Turbo-fan\", \"Turb… #> #> ──────────────────────────────────────────────────────────────────────────────── #> #> Table: `weather` #> Primary key: (`origin`, `time_hour`) #> #> Rows: 144 #> Columns: 15 #> $ origin \"EWR\", \"EWR\", \"EWR\", \"EWR\", \"EWR\", \"EWR\", \"EWR\", \"EWR\", \"EW… #> $ year 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013,… #> $ month 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,… #> $ day 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,… #> $ hour 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1… #> $ temp 41.00, 39.02, 39.02, 39.92, 41.00, 41.00, 39.92, 41.00, 42.… #> $ dewp 32.00, 30.02, 28.94, 26.96, 26.06, 26.06, 24.98, 24.98, 24.… #> $ humid 70.08, 69.86, 66.85, 59.50, 54.97, 54.97, 54.81, 52.56, 48.… #> $ wind_dir 230, 210, 230, 270, 320, 300, 280, 330, 330, 320, 320, 330,… #> $ wind_speed 8.05546, 9.20624, 6.90468, 5.75390, 6.90468, 12.65858, 6.90… #> $ wind_gust NA, NA, NA, NA, NA, 20.71404, 17.26170, NA, NA, 26.46794, N… #> $ precip 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,… #> $ pressure 1024.6, 1025.9, 1026.9, 1027.5, 1028.2, 1029.0, 1030.0, 103… #> $ visib 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,… #> $ time_hour 2013-01-10 00:00:00, 2013-01-10 01:00:00, 2013-01-10 02:00… #> #> ──────────────────────────────────────────────────────────────────────────────── dm_nycflights13() %>% dm_zoom_to(flights) %>% glimpse() #> dm of 5 tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> #> Zoomed table: `flights` #> 4 outgoing foreign key(s): #> `carrier` -> `airlines$carrier` no_action #> `origin` -> `airports$faa` no_action #> `tailnum` -> `planes$tailnum` no_action #> (`origin`, `time_hour`) -> (`weather$origin`, `weather$time_hour`) no_action #> #> Rows: 1,761 #> Columns: 19 #> $ year 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2… #> $ month 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1… #> $ day 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,… #> $ dep_time 3, 16, 450, 520, 530, 531, 535, 546, 549, 550, 553, 553… #> $ sched_dep_time 2359, 2359, 500, 525, 530, 540, 540, 600, 600, 600, 600… #> $ dep_delay 4, 17, -10, -5, 0, -9, -5, -14, -11, -10, -7, -7, -7, -… #> $ arr_time 426, 447, 634, 813, 824, 832, 1015, 645, 652, 649, 711,… #> $ sched_arr_time 437, 444, 648, 820, 829, 850, 1017, 709, 724, 703, 715,… #> $ arr_delay -11, 3, -14, -7, -5, -18, -2, -24, -32, -14, -4, -33, -… #> $ carrier \"B6\", \"B6\", \"US\", \"UA\", \"UA\", \"AA\", \"B6\", \"B6\", \"EV\", \"… #> $ flight 727, 739, 1117, 1018, 404, 1141, 725, 380, 6055, 2114, … #> $ tailnum \"N571JB\", \"N564JB\", \"N171US\", \"N35204\", \"N815UA\", \"N5EA… #> $ origin \"JFK\", \"JFK\", \"EWR\", \"EWR\", \"LGA\", \"JFK\", \"JFK\", \"EWR\",… #> $ dest \"BQN\", \"PSE\", \"CLT\", \"IAH\", \"IAH\", \"MIA\", \"BQN\", \"BOS\",… #> $ air_time 183, 191, 78, 215, 210, 149, 191, 39, 48, 36, 51, 201, … #> $ distance 1576, 1617, 529, 1400, 1416, 1089, 1576, 200, 229, 184,… #> $ hour 23, 23, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,… #> $ minute 59, 59, 0, 25, 30, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0… #> $ time_hour 2013-01-10 23:00:00, 2013-01-10 23:00:00, 2013-01-10 0…"},{"path":"https://dm.cynkra.com/reference/json_nest.html","id":null,"dir":"Reference","previous_headings":"","what":"JSON nest — json_nest","title":"JSON nest — json_nest","text":"wrapper around tidyr::nest() stores nested data JSON columns.","code":""},{"path":"https://dm.cynkra.com/reference/json_nest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"JSON nest — json_nest","text":"","code":"json_nest(.data, ..., .names_sep = NULL)"},{"path":"https://dm.cynkra.com/reference/json_nest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"JSON nest — json_nest","text":".data data frame, data frame extension (e.g. tibble), lazy data frame (e.g. dbplyr dtplyr). ... Columns pack, specified using name-variable pairs form new_col = c(col1, col2, col3). right hand side can valid tidy select expression. .names_sep NULL, default, names left .","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/json_nest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"JSON nest — json_nest","text":"","code":"df <- tibble::tibble(x = c(1, 1, 1, 2, 2, 3), y = 1:6, z = 6:1) nested <- json_nest(df, data = c(y, z)) nested #> # A tibble: 3 × 2 #> x data #> #> 1 1 \"[{\\\"y\\\":1,\\\"z\\\":6},{\\\"y\\\":2,\\\"z\\\":5},{\\\"y\\\":3,\\\"z\\\":4}]\" #> 2 2 \"[{\\\"y\\\":4,\\\"z\\\":3},{\\\"y\\\":5,\\\"z\\\":2}]\" #> 3 3 \"[{\\\"y\\\":6,\\\"z\\\":1}]\""},{"path":"https://dm.cynkra.com/reference/json_nest_join.html","id":null,"dir":"Reference","previous_headings":"","what":"JSON nest join — json_nest_join","title":"JSON nest join — json_nest_join","text":"wrapper around dplyr::nest_join() stores joined data JSON column. json_nest_join() returns rows columns x new JSON columns contains nested matches y.","code":""},{"path":"https://dm.cynkra.com/reference/json_nest_join.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"JSON nest join — json_nest_join","text":"","code":"json_nest_join(x, y, by = NULL, ..., copy = FALSE, keep = FALSE, name = NULL)"},{"path":"https://dm.cynkra.com/reference/json_nest_join.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"JSON nest join — json_nest_join","text":"x, y pair data frames data frame extensions (e.g. tibble). join specification created join_by(), character vector variables join . NULL, default, *_join() perform natural join, using variables common across x y. message lists variables can check correct; suppress message supplying explicitly. join different variables x y, use join_by() specification. example, join_by(== b) match x$y$b. join multiple variables, use join_by() specification multiple expressions. example, join_by(== b, c == d) match x$y$b x$c y$d. column names x y, can shorten listing variable names, like join_by(, c). join_by() can also used perform inequality, rolling, overlap joins. See documentation ?join_by details types joins. simple equality joins, can alternatively specify character vector variable names join . example, = c(\"\", \"b\") joins x$y$x$b y$b. variable names differ x y, use named character vector like = c(\"x_a\" = \"y_a\", \"x_b\" = \"y_b\"). perform cross-join, generating combinations x y, see cross_join(). ... parameters passed onto methods. copy x y data source, copy TRUE, y copied src x. allows join tables across srcs, potentially expensive operation must opt . keep new list-column contain join keys? default preserve join keys inequality joins. name name list-column created join. NULL, default, name y used.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/json_nest_join.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"JSON nest join — json_nest_join","text":"","code":"df1 <- tibble::tibble(x = 1:3) df2 <- tibble::tibble(x = c(1, 1, 2), y = c(\"first\", \"second\", \"third\")) df3 <- json_nest_join(df1, df2) #> Joining with `by = join_by(x)` df3 #> # A tibble: 3 × 2 #> x df2 #> #> 1 1 #> 2 2 #> 3 3 df3$df2 #> [[1]] #> [{\"y\":\"first\"},{\"y\":\"second\"}] #> #> [[2]] #> [{\"y\":\"third\"}] #> #> [[3]] #> [] #>"},{"path":"https://dm.cynkra.com/reference/json_pack.html","id":null,"dir":"Reference","previous_headings":"","what":"JSON pack — json_pack","title":"JSON pack — json_pack","text":"wrapper around tidyr::pack() stores packed data JSON columns.","code":""},{"path":"https://dm.cynkra.com/reference/json_pack.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"JSON pack — json_pack","text":"","code":"json_pack(.data, ..., .names_sep = NULL)"},{"path":"https://dm.cynkra.com/reference/json_pack.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"JSON pack — json_pack","text":".data data frame, data frame extension (e.g. tibble), lazy data frame (e.g. dbplyr dtplyr). ... Columns pack, specified using name-variable pairs form new_col = c(col1, col2, col3). right hand side can valid tidy select expression. .names_sep NULL, default, names left .","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/json_pack.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"JSON pack — json_pack","text":"","code":"df <- tibble::tibble(x1 = 1:3, x2 = 4:6, x3 = 7:9, y = 1:3) packed <- json_pack(df, x = c(x1, x2, x3), y = y) packed #> # A tibble: 3 × 2 #> x y #> #> 1 \"{\\\"x1\\\":1,\\\"x2\\\":4,\\\"x3\\\":7}\" \"{\\\"y\\\":1}\" #> 2 \"{\\\"x1\\\":2,\\\"x2\\\":5,\\\"x3\\\":8}\" \"{\\\"y\\\":2}\" #> 3 \"{\\\"x1\\\":3,\\\"x2\\\":6,\\\"x3\\\":9}\" \"{\\\"y\\\":3}\""},{"path":"https://dm.cynkra.com/reference/json_pack_join.html","id":null,"dir":"Reference","previous_headings":"","what":"JSON pack join — json_pack_join","title":"JSON pack join — json_pack_join","text":"wrapper around pack_join() stores joined data JSON column. json_pack_join() returns rows columns x new JSON columns contains packed matches y.","code":""},{"path":"https://dm.cynkra.com/reference/json_pack_join.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"JSON pack join — json_pack_join","text":"","code":"json_pack_join(x, y, by = NULL, ..., copy = FALSE, keep = FALSE, name = NULL)"},{"path":"https://dm.cynkra.com/reference/json_pack_join.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"JSON pack join — json_pack_join","text":"x, y pair data frames data frame extensions (e.g. tibble). join specification created join_by(), character vector variables join . NULL, default, *_join() perform natural join, using variables common across x y. message lists variables can check correct; suppress message supplying explicitly. join different variables x y, use join_by() specification. example, join_by(== b) match x$y$b. join multiple variables, use join_by() specification multiple expressions. example, join_by(== b, c == d) match x$y$b x$c y$d. column names x y, can shorten listing variable names, like join_by(, c). join_by() can also used perform inequality, rolling, overlap joins. See documentation ?join_by details types joins. simple equality joins, can alternatively specify character vector variable names join . example, = c(\"\", \"b\") joins x$y$x$b y$b. variable names differ x y, use named character vector like = c(\"x_a\" = \"y_a\", \"x_b\" = \"y_b\"). perform cross-join, generating combinations x y, see cross_join(). ... parameters passed onto methods. copy x y data source, copy TRUE, y copied src x. allows join tables across srcs, potentially expensive operation must opt . keep new list-column contain join keys? default preserve join keys inequality joins. name name list-column created join. NULL, default, name y used.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/json_pack_join.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"JSON pack join — json_pack_join","text":"","code":"df1 <- tibble::tibble(x = 1:3) df2 <- tibble::tibble(x = c(1, 1, 2), y = c(\"first\", \"second\", \"third\")) df3 <- json_pack_join(df1, df2) #> Joining with `by = join_by(x)` df3 #> # A tibble: 4 × 2 #> x df2 #> #> 1 1 #> 2 1 #> 3 2 #> 4 3 df3$df2 #> [[1]] #> [{\"y\":\"first\"}] #> #> [[2]] #> [{\"y\":\"second\"}] #> #> [[3]] #> [{\"y\":\"third\"}] #> #> [[4]] #> [{}] #>"},{"path":"https://dm.cynkra.com/reference/json_unnest.html","id":null,"dir":"Reference","previous_headings":"","what":"Unnest a JSON column — json_unnest","title":"Unnest a JSON column — json_unnest","text":"wrapper around tidyr::unnest() extracts data JSON column. inverse json_nest().","code":""},{"path":"https://dm.cynkra.com/reference/json_unnest.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Unnest a JSON column — json_unnest","text":"","code":"json_unnest(data, cols, ..., names_sep = NULL, names_repair = \"check_unique\")"},{"path":"https://dm.cynkra.com/reference/json_unnest.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Unnest a JSON column — json_unnest","text":"data data frame, data frame extension (e.g. tibble), lazy data frame (e.g. dbplyr dtplyr). cols List-columns unnest. selecting multiple columns, values row recycled common size. ... Arguments passed methods. names_sep NULL, default, outer names come inner names. string, outer names formed pasting together outer inner column names, separated names_sep. names_repair Used check output data frame valid names. Must one following options: \"minimal\": name repair checks, beyond basic existence, \"unique\": make sure names unique empty, \"check_unique\": (default), name repair, check unique, \"universal\": make names unique syntactic function: apply custom name repair. tidyr_legacy: use name repair tidyr 0.8. formula: purrr-style anonymous function (see rlang::as_function()) See vctrs::vec_as_names() details terms strategies used enforce .","code":""},{"path":"https://dm.cynkra.com/reference/json_unnest.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Unnest a JSON column — json_unnest","text":"object type data","code":""},{"path":"https://dm.cynkra.com/reference/json_unnest.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Unnest a JSON column — json_unnest","text":"","code":"tibble(a = 1, b = '[{ \"c\": 2 }, { \"c\": 3 }]') %>% json_unnest(b) #> # A tibble: 2 × 2 #> a c #> #> 1 1 2 #> 2 1 3"},{"path":"https://dm.cynkra.com/reference/json_unpack.html","id":null,"dir":"Reference","previous_headings":"","what":"Unpack a JSON column — json_unpack","title":"Unpack a JSON column — json_unpack","text":"wrapper around tidyr::unpack() extracts data JSON column. inverse json_pack().","code":""},{"path":"https://dm.cynkra.com/reference/json_unpack.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Unpack a JSON column — json_unpack","text":"","code":"json_unpack(data, cols, ..., names_sep = NULL, names_repair = \"check_unique\")"},{"path":"https://dm.cynkra.com/reference/json_unpack.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Unpack a JSON column — json_unpack","text":"data data frame, data frame extension (e.g. tibble), lazy data frame (e.g. dbplyr dtplyr). cols Columns unpack. ... Arguments passed methods. names_sep NULL, default, names left . pack(), inner names come former outer names; unpack(), new outer names come inner names. string, inner outer names used together. unpack(), names new outer columns formed pasting together outer inner column names, separated names_sep. pack(), new inner names outer names + names_sep automatically stripped. makes names_sep roughly symmetric packing unpacking. names_repair Used check output data frame valid names. Must one following options: \"minimal\": name repair checks, beyond basic existence, \"unique\": make sure names unique empty, \"check_unique\": (default), name repair, check unique, \"universal\": make names unique syntactic function: apply custom name repair. tidyr_legacy: use name repair tidyr 0.8. formula: purrr-style anonymous function (see rlang::as_function()) See vctrs::vec_as_names() details terms strategies used enforce .","code":""},{"path":"https://dm.cynkra.com/reference/json_unpack.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Unpack a JSON column — json_unpack","text":"object type data","code":""},{"path":"https://dm.cynkra.com/reference/json_unpack.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Unpack a JSON column — json_unpack","text":"","code":"tibble(a = 1, b = '{ \"c\": 2, \"d\": 3 }') %>% json_unpack(b) #> # A tibble: 1 × 3 #> a c d #> #> 1 1 2 3"},{"path":"https://dm.cynkra.com/reference/materialize.html","id":null,"dir":"Reference","previous_headings":"","what":"Materialize — materialize","title":"Materialize — materialize","text":"compute() materializes tables dm new temporary tables database. collect() downloads tables dm object local tibbles.","code":""},{"path":"https://dm.cynkra.com/reference/materialize.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Materialize — materialize","text":"","code":"# S3 method for dm compute(x, ..., temporary = TRUE) # S3 method for dm collect(x, ..., progress = NA)"},{"path":"https://dm.cynkra.com/reference/materialize.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Materialize — materialize","text":"x dm object. ... Passed compute(). temporary Must remain TRUE. progress Whether display progress bar, NA (default) hide non-interactive mode, show interactive mode. Requires 'progress' package.","code":""},{"path":"https://dm.cynkra.com/reference/materialize.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Materialize — materialize","text":"dm object structure input.","code":""},{"path":"https://dm.cynkra.com/reference/materialize.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Materialize — materialize","text":"Called dm object, methods create copy tables dm. Depending size data may take long time. create permament tables, first create database schema using copy_dm_to() dm_sql(), use dm_rows_append().","code":""},{"path":"https://dm.cynkra.com/reference/materialize.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Materialize — materialize","text":"","code":"if (FALSE) { # dm:::dm_has_financial() && rlang::is_installed(\"RSQLite\") financial <- dm_financial_sqlite() financial %>% pull_tbl(districts) %>% dbplyr::remote_name() # compute() copies the data to new tables: financial %>% compute() %>% pull_tbl(districts) %>% dbplyr::remote_name() # collect() returns a local dm: financial %>% collect() %>% pull_tbl(districts) %>% class() }"},{"path":"https://dm.cynkra.com/reference/pack_join.html","id":null,"dir":"Reference","previous_headings":"","what":"Pack Join — pack_join","title":"Pack Join — pack_join","text":"pack_join() returns rows columns x new packed column contains matches y.","code":""},{"path":"https://dm.cynkra.com/reference/pack_join.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pack Join — pack_join","text":"","code":"pack_join(x, y, by = NULL, ..., copy = FALSE, keep = FALSE, name = NULL) # S3 method for dm_zoomed pack_join(x, y, by = NULL, ..., copy = FALSE, keep = FALSE, name = NULL)"},{"path":"https://dm.cynkra.com/reference/pack_join.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pack Join — pack_join","text":"x, y pair data frames data frame extensions (e.g. tibble). join specification created join_by(), character vector variables join . NULL, default, *_join() perform natural join, using variables common across x y. message lists variables can check correct; suppress message supplying explicitly. join different variables x y, use join_by() specification. example, join_by(== b) match x$y$b. join multiple variables, use join_by() specification multiple expressions. example, join_by(== b, c == d) match x$y$b x$c y$d. column names x y, can shorten listing variable names, like join_by(, c). join_by() can also used perform inequality, rolling, overlap joins. See documentation ?join_by details types joins. simple equality joins, can alternatively specify character vector variable names join . example, = c(\"\", \"b\") joins x$y$x$b y$b. variable names differ x y, use named character vector like = c(\"x_a\" = \"y_a\", \"x_b\" = \"y_b\"). perform cross-join, generating combinations x y, see cross_join(). ... parameters passed onto methods. copy x y data source, copy TRUE, y copied src x. allows join tables across srcs, potentially expensive operation must opt . keep new list-column contain join keys? default preserve join keys inequality joins. name name list-column created join. NULL, default, name y used.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/pack_join.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Pack Join — pack_join","text":"","code":"df1 <- tibble::tibble(x = 1:3) df2 <- tibble::tibble(x = c(1, 1, 2), y = c(\"first\", \"second\", \"third\")) pack_join(df1, df2) #> Joining with `by = join_by(x)` #> # A tibble: 4 × 2 #> x df2$y #> #> 1 1 first #> 2 1 second #> 3 2 third #> 4 3 NA"},{"path":"https://dm.cynkra.com/reference/pull_tbl.html","id":null,"dir":"Reference","previous_headings":"","what":"Retrieve a table — pull_tbl","title":"Retrieve a table — pull_tbl","text":"generic methods dm classes: pull_tbl.dm() can chose table dm want retrieve. pull_tbl.dm_zoomed() retrieve zoomed table current state.","code":""},{"path":"https://dm.cynkra.com/reference/pull_tbl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Retrieve a table — pull_tbl","text":"","code":"pull_tbl(dm, table, ..., keyed = FALSE)"},{"path":"https://dm.cynkra.com/reference/pull_tbl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Retrieve a table — pull_tbl","text":"dm dm object. table One unquoted table name pull_tbl.dm(), ignored pull_tbl.dm_zoomed(). ... dots future extensions must empty. keyed Set TRUE return objects internal class \"dm_keyed_tbl\" contain information primary foreign keys individual table objects. allows using dplyr workflows tables later reconstruct dm object. See dm_deconstruct() function generates corresponding code existing dm object, vignette(\"tech-dm-keyed\") details.","code":""},{"path":"https://dm.cynkra.com/reference/pull_tbl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Retrieve a table — pull_tbl","text":"requested table.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/pull_tbl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Retrieve a table — pull_tbl","text":"","code":"# For an unzoomed dm you need to specify the table to pull: dm_nycflights13() %>% pull_tbl(airports) #> # A tibble: 86 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta Intl 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Logan Intl 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows # If zoomed, pulling detaches the zoomed table from the dm: dm_nycflights13() %>% dm_zoom_to(airports) %>% pull_tbl() #> # A tibble: 86 × 8 #> faa name lat lon alt tz dst tzone #> #> 1 ALB Albany Intl 42.7 -73.8 285 -5 A Amer… #> 2 ATL Hartsfield Jackson Atlanta Intl 33.6 -84.4 1026 -5 A Amer… #> 3 AUS Austin Bergstrom Intl 30.2 -97.7 542 -6 A Amer… #> 4 BDL Bradley Intl 41.9 -72.7 173 -5 A Amer… #> 5 BHM Birmingham Intl 33.6 -86.8 644 -6 A Amer… #> 6 BNA Nashville Intl 36.1 -86.7 599 -6 A Amer… #> 7 BOS General Edward Lawrence Logan Intl 42.4 -71.0 19 -5 A Amer… #> 8 BTV Burlington Intl 44.5 -73.2 335 -5 A Amer… #> 9 BUF Buffalo Niagara Intl 42.9 -78.7 724 -5 A Amer… #> 10 BUR Bob Hope 34.2 -118. 778 -8 A Amer… #> # ℹ 76 more rows"},{"path":"https://dm.cynkra.com/reference/reexports.html","id":null,"dir":"Reference","previous_headings":"","what":"Objects exported from other packages — reexports","title":"Objects exported from other packages — reexports","text":"objects imported packages. Follow links see documentation. dplyr %>%, anti_join, arrange, collect, compute, copy_to, filter, full_join, group_by, inner_join, left_join, mutate, rename, right_join, rows_append, rows_delete, rows_insert, rows_patch, rows_update, rows_upsert, select, semi_join, src_tbls, summarise, summarize, tbl, transmute, ungroup tibble glimpse, tibble tidyr separate, unite","code":""},{"path":"https://dm.cynkra.com/reference/reunite_parent_child.html","id":null,"dir":"Reference","previous_headings":"","what":"Merge two tables that are linked by a foreign key relation — reunite_parent_child","title":"Merge two tables that are linked by a foreign key relation — reunite_parent_child","text":"Perform table fusion combining two tables common (key) column, removing column. reunite_parent_child(): joining two tables column id_column, column removed. transformation roughly inverse decompose_table() . reunite_parent_child_from_list(): joining two tables column id_column, id_column removed. function almost exactly inverse decompose_table() (order columns retained, original row names lost).","code":""},{"path":"https://dm.cynkra.com/reference/reunite_parent_child.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Merge two tables that are linked by a foreign key relation — reunite_parent_child","text":"","code":"reunite_parent_child(child_table, parent_table, id_column) reunite_parent_child_from_list(list_of_parent_child_tables, id_column)"},{"path":"https://dm.cynkra.com/reference/reunite_parent_child.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Merge two tables that are linked by a foreign key relation — reunite_parent_child","text":"child_table Table (possibly created decompose_table()) references parent_table parent_table Table (possibly created decompose_table()). id_column Identical name referencing / referenced column child_table/parent_table. list_of_parent_child_tables Cf arguments child_table parent_table reunite_parent_child(), named list (created decompose_table()).","code":""},{"path":"https://dm.cynkra.com/reference/reunite_parent_child.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Merge two tables that are linked by a foreign key relation — reunite_parent_child","text":"wide table produced joining two given tables.","code":""},{"path":"https://dm.cynkra.com/reference/reunite_parent_child.html","id":"life-cycle","dir":"Reference","previous_headings":"","what":"Life cycle","title":"Merge two tables that are linked by a foreign key relation — reunite_parent_child","text":"functions marked \"experimental\" seem useful applied table dm object. Changing interface later seems harmless functions likely used interactively.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/reference/reunite_parent_child.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Merge two tables that are linked by a foreign key relation — reunite_parent_child","text":"","code":"decomposed_table <- decompose_table(mtcars, new_id, am, gear, carb) ct <- decomposed_table$child_table pt <- decomposed_table$parent_table reunite_parent_child(ct, pt, new_id) #> mpg cyl disp hp drat wt qsec vs am gear carb #> 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 #> 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 #> 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 #> 4 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1 #> 5 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2 #> 6 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1 #> 7 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4 #> 8 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 #> 9 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 #> 10 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4 #> 11 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4 #> 12 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3 #> 13 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3 #> 14 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3 #> 15 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4 #> 16 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4 #> 17 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4 #> 18 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1 #> 19 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 #> 20 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1 #> 21 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1 #> 22 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2 #> 23 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2 #> 24 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4 #> 25 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2 #> 26 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1 #> 27 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2 #> 28 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2 #> 29 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4 #> 30 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6 #> 31 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8 #> 32 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2 reunite_parent_child_from_list(decomposed_table, new_id) #> mpg cyl disp hp drat wt qsec vs am gear carb #> 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 #> 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 #> 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 #> 4 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1 #> 5 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2 #> 6 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1 #> 7 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4 #> 8 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 #> 9 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 #> 10 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4 #> 11 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4 #> 12 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3 #> 13 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3 #> 14 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3 #> 15 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4 #> 16 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4 #> 17 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4 #> 18 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1 #> 19 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 #> 20 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1 #> 21 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1 #> 22 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2 #> 23 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2 #> 24 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4 #> 25 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2 #> 26 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1 #> 27 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2 #> 28 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2 #> 29 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4 #> 30 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6 #> 31 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8 #> 32 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2"},{"path":"https://dm.cynkra.com/reference/rows-dm.html","id":null,"dir":"Reference","previous_headings":"","what":"Modifying rows for multiple tables — rows-dm","title":"Modifying rows for multiple tables — rows-dm","text":"functions provide framework updating data existing tables. Unlike compute(), copy_to() copy_dm_to(), new tables created database. operations expect existing new data presented two compatible dm objects data source. functions make sure tables target dm processed topological order parent (dimension) tables receive insertions child (fact) tables. operations, contrast operations, may lead irreversible changes underlying database. Therefore, -place operation must requested explicitly in_place = TRUE. default, informative message given. dm_rows_insert() adds new records via rows_insert() conflict = \"ignore\". Duplicate records silently discarded. operation requires primary keys tables, use dm_rows_append() insert unconditionally. dm_rows_append() adds new records via rows_append(). primary keys must differ existing records. must ensured caller might checked underlying database. Use in_place = FALSE apply dm_examine_constraints() check beforehand. dm_rows_update() updates existing records via rows_update(). Primary keys must match records updated. dm_rows_patch() updates missing values existing records via rows_patch(). Primary keys must match records patched. dm_rows_upsert() updates existing records adds new records, based primary key, via rows_upsert(). dm_rows_delete() removes matching records via rows_delete(), based primary key. order tables processed reversed.","code":""},{"path":"https://dm.cynkra.com/reference/rows-dm.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Modifying rows for multiple tables — rows-dm","text":"","code":"dm_rows_insert(x, y, ..., in_place = NULL, progress = NA) dm_rows_append(x, y, ..., in_place = NULL, progress = NA) dm_rows_update(x, y, ..., in_place = NULL, progress = NA) dm_rows_patch(x, y, ..., in_place = NULL, progress = NA) dm_rows_upsert(x, y, ..., in_place = NULL, progress = NA) dm_rows_delete(x, y, ..., in_place = NULL, progress = NA)"},{"path":"https://dm.cynkra.com/reference/rows-dm.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Modifying rows for multiple tables — rows-dm","text":"x Target dm object. y dm object new data. ... dots future extensions must empty. in_place x modified place? argument relevant mutable backends (e.g. databases, data.tables). TRUE, modified version x returned invisibly; FALSE, new object representing resulting changes returned. progress Whether display progress bar, NA (default) hide non-interactive mode, show interactive mode. Requires 'progress' package.","code":""},{"path":"https://dm.cynkra.com/reference/rows-dm.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Modifying rows for multiple tables — rows-dm","text":"dm object dm_ptype() x. in_place = TRUE, underlying data updated side effect, x returned, invisibly.","code":""},{"path":"https://dm.cynkra.com/reference/rows-dm.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Modifying rows for multiple tables — rows-dm","text":"","code":"# Establish database connection: sqlite <- DBI::dbConnect(RSQLite::SQLite()) # Entire dataset with all dimension tables populated # with flights and weather data truncated: flights_init <- dm_nycflights13() %>% dm_zoom_to(flights) %>% filter(FALSE) %>% dm_update_zoomed() %>% dm_zoom_to(weather) %>% filter(FALSE) %>% dm_update_zoomed() # Target database: flights_sqlite <- copy_dm_to(sqlite, flights_init, temporary = FALSE) print(dm_nrow(flights_sqlite)) #> airlines airports flights planes weather #> 15 86 0 945 0 # First update: flights_jan <- dm_nycflights13() %>% dm_select_tbl(flights, weather) %>% dm_zoom_to(flights) %>% filter(month == 1) %>% dm_update_zoomed() %>% dm_zoom_to(weather) %>% filter(month == 1) %>% dm_update_zoomed() print(dm_nrow(flights_jan)) #> flights weather #> 932 72 # Copy to temporary tables on the target database: flights_jan_sqlite <- copy_dm_to(sqlite, flights_jan) # Dry run by default: dm_rows_append(flights_sqlite, flights_jan_sqlite) #> Result is returned as a dm object with lazy tables. Use `in_place = FALSE` to mute this message, or `in_place = TRUE` to write to the underlying tables. #> ── Table source ──────────────────────────────────────────────────────────────── #> src: sqlite 3.44.2 [] #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather` #> Columns: 53 #> Primary keys: 4 #> Foreign keys: 4 print(dm_nrow(flights_sqlite)) #> airlines airports flights planes weather #> 15 86 0 945 0 # Explicitly request persistence: dm_rows_append(flights_sqlite, flights_jan_sqlite, in_place = TRUE) print(dm_nrow(flights_sqlite)) #> airlines airports flights planes weather #> 15 86 932 945 72 # Second update: flights_feb <- dm_nycflights13() %>% dm_select_tbl(flights, weather) %>% dm_zoom_to(flights) %>% filter(month == 2) %>% dm_update_zoomed() %>% dm_zoom_to(weather) %>% filter(month == 2) %>% dm_update_zoomed() # Copy to temporary tables on the target database: flights_feb_sqlite <- copy_dm_to(sqlite, flights_feb) # Explicit dry run: flights_new <- dm_rows_append( flights_sqlite, flights_feb_sqlite, in_place = FALSE ) print(dm_nrow(flights_new)) #> airlines airports flights planes weather #> 15 86 1761 945 144 print(dm_nrow(flights_sqlite)) #> airlines airports flights planes weather #> 15 86 932 945 72 # Check for consistency before applying: flights_new %>% dm_examine_constraints() #> ! Unsatisfied constraints: #> • Table `flights`: foreign key `tailnum` into table `planes`: values of `flights$tailnum` not in `planes$tailnum`: N725MQ (6), N537MQ (5), N722MQ (5), N730MQ (5), N736MQ (5), … # Apply: dm_rows_append(flights_sqlite, flights_feb_sqlite, in_place = TRUE) print(dm_nrow(flights_sqlite)) #> airlines airports flights planes weather #> 15 86 1761 945 144 DBI::dbDisconnect(sqlite)"},{"path":"https://dm.cynkra.com/reference/tidyr_table_manipulation.html","id":null,"dir":"Reference","previous_headings":"","what":"tidyr table manipulation methods for zoomed dm objects — tidyr_table_manipulation","title":"tidyr table manipulation methods for zoomed dm objects — tidyr_table_manipulation","text":"Use methods without '.dm_zoomed' suffix (see examples).","code":""},{"path":"https://dm.cynkra.com/reference/tidyr_table_manipulation.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"tidyr table manipulation methods for zoomed dm objects — tidyr_table_manipulation","text":"","code":"# S3 method for dm_zoomed unite(data, col, ..., sep = \"_\", remove = TRUE, na.rm = FALSE) # S3 method for dm_keyed_tbl unite(data, ...) # S3 method for dm_zoomed separate(data, col, into, sep = \"[^[:alnum:]]+\", remove = TRUE, ...) # S3 method for dm_keyed_tbl separate(data, ...)"},{"path":"https://dm.cynkra.com/reference/tidyr_table_manipulation.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"tidyr table manipulation methods for zoomed dm objects — tidyr_table_manipulation","text":"data object class dm_zoomed col unite.dm_zoomed: see tidyr::unite() separate.dm_zoomed: see tidyr::separate() ... unite.dm_zoomed: see tidyr::unite() separate.dm_zoomed: see tidyr::separate() sep unite.dm_zoomed: see tidyr::unite() separate.dm_zoomed: see tidyr::separate() remove unite.dm_zoomed: see tidyr::unite() separate.dm_zoomed: see tidyr::separate() na.rm see tidyr::unite() see tidyr::separate()","code":""},{"path":"https://dm.cynkra.com/reference/tidyr_table_manipulation.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"tidyr table manipulation methods for zoomed dm objects — tidyr_table_manipulation","text":"","code":"zoom_united <- dm_nycflights13() %>% dm_zoom_to(flights) %>% select(year, month, day) %>% unite(\"month_day\", month, day) zoom_united #> # Zoomed table: flights #> # A tibble: 1,761 × 2 #> year month_day #> #> 1 2013 1_10 #> 2 2013 1_10 #> 3 2013 1_10 #> 4 2013 1_10 #> 5 2013 1_10 #> 6 2013 1_10 #> 7 2013 1_10 #> 8 2013 1_10 #> 9 2013 1_10 #> 10 2013 1_10 #> # ℹ 1,751 more rows zoom_united %>% separate(month_day, c(\"month\", \"day\")) #> # Zoomed table: flights #> # A tibble: 1,761 × 3 #> year month day #> #> 1 2013 1 10 #> 2 2013 1 10 #> 3 2013 1 10 #> 4 2013 1 10 #> 5 2013 1 10 #> 6 2013 1 10 #> 7 2013 1 10 #> 8 2013 1 10 #> 9 2013 1 10 #> 10 2013 1 10 #> # ℹ 1,751 more rows"},{"path":"https://dm.cynkra.com/reference/utils_table_manipulation.html","id":null,"dir":"Reference","previous_headings":"","what":"utils table manipulation methods for dm_zoomed objects — head.dm_zoomed","title":"utils table manipulation methods for dm_zoomed objects — head.dm_zoomed","text":"Extract first last rows table. Use methods without '.dm_zoomed' suffix (see examples). methods regular dm objects extract first last tables.","code":""},{"path":"https://dm.cynkra.com/reference/utils_table_manipulation.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"utils table manipulation methods for dm_zoomed objects — head.dm_zoomed","text":"","code":"# S3 method for dm_zoomed head(x, n = 6L, ...) # S3 method for dm_zoomed tail(x, n = 6L, ...)"},{"path":"https://dm.cynkra.com/reference/utils_table_manipulation.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"utils table manipulation methods for dm_zoomed objects — head.dm_zoomed","text":"x object class dm_zoomed n integer vector length dim(x) (1, non-dimensioned objects). logical silently coerced integer. Values specify indices selected corresponding dimension (along length) object. positive value n[] includes first/last n[] indices dimension, negative value excludes last/first abs(n[]), including remaining indices. NA non-specified values (length(n) < length(dim(x))) select indices dimension. Must contain least one non-missing value. ... arguments passed methods.","code":""},{"path":"https://dm.cynkra.com/reference/utils_table_manipulation.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"utils table manipulation methods for dm_zoomed objects — head.dm_zoomed","text":"dm_zoomed object.","code":""},{"path":"https://dm.cynkra.com/reference/utils_table_manipulation.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"utils table manipulation methods for dm_zoomed objects — head.dm_zoomed","text":"see manual corresponding functions utils.","code":""},{"path":"https://dm.cynkra.com/reference/utils_table_manipulation.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"utils table manipulation methods for dm_zoomed objects — head.dm_zoomed","text":"","code":"zoomed <- dm_nycflights13() %>% dm_zoom_to(flights) %>% head(4) zoomed #> # Zoomed table: flights #> # A tibble: 4 × 19 #> year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time #> #> 1 2013 1 10 3 2359 4 426 437 #> 2 2013 1 10 16 2359 17 447 444 #> 3 2013 1 10 450 500 -10 634 648 #> 4 2013 1 10 520 525 -5 813 820 #> # ℹ 11 more variables: arr_delay , carrier , flight , #> # tailnum , origin , dest , air_time , distance , #> # hour , minute , time_hour dm_insert_zoomed(zoomed, new_tbl_name = \"head_flights\") #> ── Metadata ──────────────────────────────────────────────────────────────────── #> Tables: `airlines`, `airports`, `flights`, `planes`, `weather`, `head_flights` #> Columns: 72 #> Primary keys: 4 #> Foreign keys: 8"},{"path":[]},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-10","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.10","text":"Establish compatibility igraph >= 2.0.0 (#2187) withr 3.0.0(#2184). Reexport tibble::glimpse() instead pillar::glimpse() avoid pillar dependency roxygen2 7.3.0 (#2179).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-109","dir":"Changelog","previous_headings":"","what":"dm 1.0.9","title":"dm 1.0.9","text":"CRAN release: 2024-01-08","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-9","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.9","text":"dm_sql() now processes table_names dbplyr::escape(), therefore also accepting dbplyr objects (#2129).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-9","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.9","text":"Adapt DBI >= 1.2.0 (#2148, #2155).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-108","dir":"Changelog","previous_headings":"","what":"dm 1.0.8","title":"dm 1.0.8","text":"CRAN release: 2023-11-02","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-1-0-8","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 1.0.8","text":"copy_dm_to() creates string columns necessary lengths MariaDB SQL Server. worked SQL Server dm 1.0.5, now also works MariaDB (#311, #2066, #2082).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-8","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.8","text":"Explicitly fail compute(temporary = TRUE), never worked correctly (#2059, #2103). Warn DuckDB supporting autoincrementing primary keys (#2099).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-8","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.8","text":"Make check_suggested() standalone (#2054).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-1-0-8","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 1.0.8","text":"Tweak vignette compute(temporary = TRUE). Update documentation check_suggested() (@olivroy, #2055).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"performance-1-0-8","dir":"Changelog","previous_headings":"","what":"Performance","title":"dm 1.0.8","text":"Speed dm(), new_dm(), as_dm() dm_validate(). dm() as_dm() longer call dm_validate() (#2108).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"testing-1-0-8","dir":"Changelog","previous_headings":"","what":"Testing","title":"dm 1.0.8","text":"Add test copy_dm_to(table_names = ) (#250, #2101). Work around test failures dbplyr 2.4.0. Remove skips tests (#2052).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-107","dir":"Changelog","previous_headings":"","what":"dm 1.0.7","title":"dm 1.0.7","text":"CRAN release: 2023-10-24","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-7","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.7","text":"copy_dm_to() now warns unconditionally unsupported arguments, fails copy_to provided (#1944). Use new dm_sql() function replacement copy_dm_to(copy_to = ) (#1915, #2011, @jangorecki). New json_unnest() json_unpack(), currently implemented data frames (#991, #997). dm_rows_append() also works local dm, support autoincrement primary keys (#1727, #1745). Breaking change: Add check_dots_empty() calls (#1929, #1943). Test MySQL GHA (#1940). Improve MySQL compatibility regarding learning database schemas checking constraints (#1938).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-1-0-7","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 1.0.7","text":"Breaking change: Add check_dots_empty() calls (#1929, #1943).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-1-0-7","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 1.0.7","text":"Compatibility duckdb 0.9.1. Minor fixes dm_pack_tbl() dm_unwrap_tbl() (#1947).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-1-0-7","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 1.0.7","text":"Use rlang::check_installed() internally install missing suggested packages fly (@olivroy, #1348, #2036, #2039, #2040). Use vectorized rlang::is_installed()decide examples run (@olivroy, #2043). Recategorize describe function reference. Better error information messages querying keys. collect.zoomed_dm() shows helpful error message (#1929, #1945). Add information default font size ?dm_draw (#1935). Add db-* rules Makefile simplify Docker-based database setup. Remove curly braces, add \\pkg (@olivroy, #2042).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"performance-1-0-7","dir":"Changelog","previous_headings":"","what":"Performance","title":"dm 1.0.7","text":"Replace tibble() fast_tibble() (@mgirlich, #1928). Replace superseded dplyr::recode() (@mgirlich, #1927).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"testing-1-0-7","dir":"Changelog","previous_headings":"","what":"Testing","title":"dm 1.0.7","text":"Remove skips tests (#2052). Add explicit unique key dm_for_filter(). Add Postgres test dm_sql(). Switch internal testing MariaDB. Fast offline checks new \"DM_OFFLINE\" environment variable. New GHA checks case missing suggested packages (#1952).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-7","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.7","text":"Make check_suggested() standalone (#2054). Backport changes attempted CRAN release (#2046). Move magrittr (#1975, #1983), DBI (#1974), pillar (#1976) \"Suggests\". Require RMariaDB 1.3.0, work around tidyverse/dbplyr#1190 tidyverse/dbplyr#1195 (#1989).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-1-0-7","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 1.0.7","text":"Prefer map*() lapply() vapply(). styler::style_pkg(scope = \"tokens\"). Rename internal new_dm3() dm_from_def() (#1225, #1949). Remove dead code (#979, #1950, #1871). Reorganize build_copy_queries() (#1923). Avoid dbplyr::ident_q() (#1788). Add ellipsis tbl_sum() signature (#1941).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-106","dir":"Changelog","previous_headings":"","what":"dm 1.0.6","title":"dm 1.0.6","text":"CRAN release: 2023-07-21","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-1-0-6","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 1.0.6","text":"Compare version returned getRversion() string instead number. Work around vctrs bug jsonlite 1.8.5.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-6","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.6","text":"dm_from_con() gains .names argument pattern-based construction table names dm object (@owenjonesuob, #1790). New dm_set_table_descriptions(), dm_get_table_descriptions() dm_reset_table_descriptions() set table labels persistent attributes table object (#1888). dm_from_con() can retrieve multiple schemas, pass character vector schema argument (@owenjonesuob, #1533, #1789). build_copy_queries() db_learn_from_db() improvements (@samssann, #1642, #1677, #1739). UK support dm_draw() (#1731, #1877). Allow additional description tables dm_draw() (#1875, #1876).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-6","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.6","text":"Establish compatibility dbplyr 2.3.3 2.4.0 (@mgirlich, #1919). copy_dm_to(), call collect() copying data, table table (@jangorecki, #1900). Use roxyglobals (#1838). Require purrr >= 1.0.0 list_c() (#1847, #1848).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-1-0-6","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 1.0.6","text":"Add table description diagram README. Tweak testing instructions. Mention Makefile CONTRIBUTING.md. Describe Docker setup (#1898). Vignette corrections (@MikeJohnPage, #1882). Avoid tidyverse package.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"testing-1-0-6","dir":"Changelog","previous_headings":"","what":"Testing","title":"dm 1.0.6","text":"Fix local tests (#1921).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-105","dir":"Changelog","previous_headings":"","what":"dm 1.0.5","title":"dm 1.0.5","text":"CRAN release: 2023-03-16","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-5","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.5","text":"Progress bars dm_wrap_tbl() dm_unwrap_tbl() (#835, #1450).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-1-0-5","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 1.0.5","text":"Add cheat sheet vignette (#1653). Suggest creating function database dm object (#1827, #1828). Add alternative text author images pkgdown website (#1804).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-5","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.5","text":"Compatibility dev jsonlite (#1837). Remove tidyverse dependency (#1798, #1834). Minimal patch fix multiple match updates (@DavisVaughan, #1806). Adapt rlang 1.1.0 changes (#1817). Make sure dm passes “noSuggests” workflow (#1659).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-104","dir":"Changelog","previous_headings":"","what":"dm 1.0.4","title":"dm 1.0.4","text":"CRAN release: 2023-02-11","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-4","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.4","text":"dm_add_pk() gains autoincrement argument (#1689), autoincrement primary keys configured database copy_dm_to() (#1696). New dm_add_uk(), dm_rm_uk() dm_get_all_uks() functions explicit support unique keys (#622, #1716). dm_get_all_pks() dm_get_all_fks() return output order table parent_table argument (#1707). Improve error message dm_add_pk() columns argument missing (#1644, #1646).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-1-0-4","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 1.0.4","text":"dm_get_all_pks(), dm_get_all_fks(), dm_get_all_uks() require unquoted table names input, consistency parts API (#1741).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-1-0-4","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 1.0.4","text":"dm_examine_constraints() works dm objects database compound keys (#1713).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-1-0-4","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 1.0.4","text":"Update pkgdown URL https://dm.cynkra.com/ (#1652). Fix link rot (#1671).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-1-0-4","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 1.0.4","text":"Require dplyr >= 1.1.0 lifecycle >= 1.0.3 (#1771, #1637). Checks pass suggested packages missing (#1659). Fix r-devel builds (#1776). dm_unpack_tbl() sets PK FK (#1715). Clean dm_rows_append() implementation (#1714). dm() accepts tables class \"tbl_sql\" \"tbl_dbi\" (#1695, #1710). Use correctly typed missing value lists (@DavisVaughan, #1686).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-103","dir":"Changelog","previous_headings":"","what":"dm 1.0.3","title":"dm 1.0.3","text":"CRAN release: 2022-10-12","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-3","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.3","text":"Avoid running example without database connection.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-102","dir":"Changelog","previous_headings":"","what":"dm 1.0.2","title":"dm 1.0.2","text":"CRAN release: 2022-09-20","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-2","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.2","text":"dm_from_con() can use multiple schemata (@mgirlich, #1441, #1449). pack_join(keep = TRUE) preserves order packed columns (#1513, #1514). pack_join(keep = TRUE) keeps keys y resulting packed column (#1451, #1452). New json_pack.tbl_lazy() json_nest.tbl_lazy() (#969, #975).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-1-0-2","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 1.0.2","text":"dm_paste() gives correct output factor columns many levels (#1510, #1511).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"chore-1-0-2","dir":"Changelog","previous_headings":"","what":"Chore","title":"dm 1.0.2","text":"Fix compatibility duckdb 0.5.0 (#1509, #1518). Refactor dm_unwrap_tbl() builds “unwrap plan” first (#1446, #1447). Reenable dm_rows_update() test (#1437).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-101","dir":"Changelog","previous_headings":"","what":"dm 1.0.1","title":"dm 1.0.1","text":"CRAN release: 2022-08-06","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-1","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.1","text":"New dm_deconstruct() creates code deconstruct dm object individual keyed tables via pull_tbl(keyed = TRUE) (#1354).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-1-0-1","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 1.0.1","text":"Use dm_ptype() dm_gui(), generate better code (#1353).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-100","dir":"Changelog","previous_headings":"","what":"dm 1.0.0","title":"dm 1.0.0","text":"CRAN release: 2022-07-21","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-1-0-0","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 1.0.0","text":"New dm_gui() interactive editing dm objects (#1076, #1319). dm_get_tables() pull_tbl() gain new keyed = FALSE argument. set TRUE, table objects class \"dm_keyed_tbl\" returned. objects inherit underlying data structure (tibble lazy table), keep track primary foreign keys, can used later call dm() recreate dm object keys (#1187). New by_position argument check_subset(), check_set_equality(), check_cardinality_...() examine_cardinality() (#1253). dm() accepts dm objects (#1226). dm_examine_constraints() honors implicit unique keys defined foreign keys (#1131, #1209).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-1-0-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 1.0.0","text":"dm_filter() now stable, new API avoids exposing intermediate state filters yet applied, compatibility wrapper (#424, #426, #1236). check_cardinality_...(), examine_cardinality(), check_subset() check_set_equality() now stable consistently use common interface arguments named x, y, x_select y_select, compatibility wrappers (#1194, #1229). dm_examine_cardinalities() dm_examine_constraints() now stable new signature compatibility wrapper (#1193, #1195). dm_apply_filters(), dm_apply_filters_to_tbl() dm_get_filters() deprecated (#424, #426, #1236). dm_disambiguate_cols() adds table names suffix default, gains .position argument restore original behavior. Arguments sep quiet renamed .sep .quiet (#1293, #1327). dm_squash_to_tbl() deprecated favor new .recursive argument dm_flatten_to_tbl(). Arguments start join renamed .start .join (#1272, #1324). dm_rm_tbl() deprecated favor dm_select_tbl() (#1275). dm_bind() dm_add_tbl() deprecated favor dm() (#1226). rows_truncate() dm_rows_truncate() deprecated, use DDL opposed verbs use DML (#1031, #1321). internal S3 classes now use \"dm_\" prefix (#1285, #1339). Add ellipses generics (#1298).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"api-1-0-0","dir":"Changelog","previous_headings":"","what":"API","title":"dm 1.0.0","text":"Reexport tibble() (#1279). dm_ptype(), dm_financial() dm_pixarfilms() stable now (#1254). Turn “questioning” functions “experimental” (#1030, #1237).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"performance-1-0-0","dir":"Changelog","previous_headings":"","what":"Performance","title":"dm 1.0.0","text":"is_unique_key()uses vctrs::vec_count() local data frames speed (@eutwt, #1247). check_key() uses vctrs::vec_duplicate_any() local data frames speed (@eutwt, #1234).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-1-0-0","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 1.0.0","text":"dm_draw() works table name space (#1219). Don’t print rule glimpse.dm() empty dm() (#1208).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-1-0-0","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 1.0.0","text":"Work around ANSI escape issues CRAN rendering vignette (#1156, #1330). Fix column names ?dm_get_all_pks (#1245). Improve contrast display dm_financial() (#1073, #1250). Add contributing guide (#1222).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-1-0-0","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 1.0.0","text":"Use sensible node edge IDs, corresponding data model, SVG graph (#1214). Tests datamodelr code (#1215).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-030","dir":"Changelog","previous_headings":"","what":"dm 0.3.0","title":"dm 0.3.0","text":"CRAN release: 2022-07-06","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-3-0","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.3.0","text":"Implement glimpse() zoomed_df (@IndrajeetPatil, #1003, #1161). Remove message automated key selection select argument joins zoomed_df (@IndrajeetPatil, #1113, #1176). dm_from_con(learn_keys = TRUE) works MariaDB (#1106, #1123, #1169, @maelle), compound keys Postgres (#342, #1006, #1016) SQL Server (#342). New json_pack_join(), json_nest_join(), json_pack() json_nest(), similar pack_join(), dplyr::nest_join(), tidyr::pack() tidyr::nest(), create character columns (#917, #918, #973, #974). nest_join() pack_join() support zoomed_df objects (#1119, @IndrajeetPatil).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"api-0-3-0","dir":"Changelog","previous_headings":"","what":"API","title":"dm 0.3.0","text":"Marked stable functions stable, particular dm() related functions (#1032, #1040). Remove rows_*() implementation lazy tables, now available dbplyr >= 2.2.0 (#912, #1024, #1028). Deprecate dm_join_to_tbl(), dm_is_referenced() dm_get_referencing_tables() (#1038). New dm_validate() replaces now deprecated validate_dm() (#1033). dm_get_con() dm_get_filters() use dm argument name (#1034, #1036). Mark ... dm_flatten_to_tbl() experimental (#1037). Add ellipses dm_disambiguate_cols(), dm_draw(), dm_examine_constraints(), dm_nycflights13() dm_pixarfilms() (#1035). New dm_from_con(), soft-deprecated dm_from_src() (#1014, #1018, #1044). Moved pack_join() arguments past ellipsis consistency (#920, #921).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-3-0","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.3.0","text":"Compatibility fix writing SQL Server tables dbplyr >= 2.2.0.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-0-3-0","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 0.3.0","text":"pkgdown site now uses BS5 greater readability (#1067, @maelle). Better message dm_rows_...() functions in_place argument missing (@IndrajeetPatil, #414, #1160). Better message learning error (#1081). Greatly improved consistency, content, language across articles (@IndrajeetPatil, #1056, #1132, #1157, #1166, #1079, #1082, #1098, #1100, #1101, #1103, #1112, #1120, #1158, #1175). Tweaks intro vignette README (#1066, #1075, @maelle). Document glimpse() S3 method dm (@IndrajeetPatil, #1121). Update credentials fallback databases dm_financial() hosted pacha.dev (#916, @pachadotdev), also used now vignettes (#1118) dm_from_con() example (#993). Update license year (#1029).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-3-0","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.3.0","text":"Switch duckdb default database backend (#1179). Test duckdb MariaDB GHA (#1091, #1136).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-028","dir":"Changelog","previous_headings":"","what":"dm 0.2.8","title":"dm 0.2.8","text":"CRAN release: 2022-04-08","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-8","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.8","text":"pack_join() works correctly name existing column either table. cases column overwritten, consistent nest_join() behavior (#864, #865). Messages suggest installation optional packages shown per session (#852). dm_insert_zoomed() uses color zoomed table new table (#750, #863). copy_dm_to() consumes less memory faster writing SQL Server (#855).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-2-8","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.2.8","text":"Remove extra spaces output examining constraints compound keys (#868). Fix column tracking foreign keys (#856, #857). copy_dm_to() shows progress bars (#850, #855). Progress bars use console width (#853). Avoid calling dbAppendTable() zero-row tables (#847).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-8","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.8","text":"Require rlang 1.0.1 (#840).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-027","dir":"Changelog","previous_headings":"","what":"dm 0.2.7","title":"dm 0.2.7","text":"CRAN release: 2022-02-03","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-7","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.7","text":"New dm_wrap_tbl(), dm_unwrap_tbl(), dm_nest_tbl(), dm_unnest_tbl(), dm_pack_tbl() dm_unpack_tbl() (#595, #733, #737). New dm_examine_cardinality() (#264, #735). New pack_join() generic method data frames, tidyr::pack() dplyr::nest_join() tidyr::nest() (#721, #722). dm_pixarfilms() exported gains consistent = FALSE argument; TRUE data modified referential constraints satisfied (#703, #707, #708, @erictleung).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-2-7","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.2.7","text":"db_schema_...() functions longer pro-actively check schema existence (#672, #815, #771). db_schema_list.Microsoft SQL Server longer ignoring schemas owner found (#815, #771). copy_dm_to() works DuckDB , SQL statements define tables indexes now created us (#701, #709).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-7","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.7","text":"Establish compatibility rlang 1.0.0 (#756). Simplify database checks GitHub Actions (#712).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-026","dir":"Changelog","previous_headings":"","what":"dm 0.2.6","title":"dm 0.2.6","text":"CRAN release: 2021-11-21","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-6","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.6","text":"New dm_pixarfilms() creates dm object data {pixarfilms} package (#600, @erictleung). check_cardinality_0_1(), check_cardinality_0_n(), check_cardinality_1_1(), check_cardinality_1_n(), examine_cardinality() now support compound keys (#524). check_subset() check_set_equality() support compound keys (#523). dm_paste() adds on_delete argument dm_add_fk() (#673). dm_disambiguate_cols() also disambiguates columns used keys, support correct disambiguation compound keys (#662). dm_disambiguate_cols() now emits source code equivalent renaming operation (#684). dm_examine_constraints() uses backticks surround table names (#687).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-2-6","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.2.6","text":"decompose_table() now avoids creating NA values key column (#580). dm_draw() works empty tables (#585).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-6","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.6","text":"Fix compatibility dplyr 1.0.8 (#698).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-025","dir":"Changelog","previous_headings":"","what":"dm 0.2.5","title":"dm 0.2.5","text":"CRAN release: 2021-10-15","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-5","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.5","text":"mutate(), transmute(), distinct() summarize() now support dplyr::across() extra arguments (#640). Key tracking first three verbs less strict based name equality (#663). relocate() now works zoomed dm objects (#666). dm_add_fk() gains on_delete argument copy_dm_to() picks translates DELETE CASCADE DELETE ACTION specification foreign key (#649). dm_copy_to() defines foreign keys table creation, databases except DuckDB. Tables created topological order (#658). cyclic relationship graphs, table creation attempted original order may fail (#664). waldo::compare() shows better output dm objects (#642). dm_paste() output uses trailing commas dm::dm() tibble::tibble() calls, sorts column attributes name, better modularity (#641).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-0-2-5","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 0.2.5","text":"New db_schema_create(), db_schema_drop(), db_schema_exists() db_schema_list() replace corresponding sql_schema_*() functions, latter soft-deprecated (#670). connection argument db_schema_*() called con, dest (#668).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-2-5","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.2.5","text":"copy_dm_to() sql_create_schema() longer actively check schema existence (#644, #660). Add newline OUTPUT clause SQL Server (#647). Fix sql_rows_delete() returning argument SQL Server (#645).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-5","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.5","text":"Remove method needed RSQLite < 2.2.8, add warning loaded RSQLite version <= 2.2.8 (#632). Adapt MSSQL tests testthat update (#648).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-024","dir":"Changelog","previous_headings":"","what":"dm 0.2.4","title":"dm 0.2.4","text":"CRAN release: 2021-09-30","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-4","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.4","text":"rows_insert(), rows_update() rows_delete() gain returning argument. combination in_place = TRUE argument makes newly inserted rows accessible via get_returning_rows() operation completes (#593, @mgirlich). Implement rows_patch() DBI connections (#610, @mgirlich). Use ACTION instead CASCADE foreign key constraints permit self-references. dm_from_src() supports pool::Pool objects (#599, @moodymudskipper). Better error message dm_rows_update() related functions dm objects tables without primary key (#592). glimpse() implemented dm objects (#605). Support DuckDB rows_insert(), rows_update() rows_delete() (#617, @mgirlich).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-2-4","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.2.4","text":"Fix dm_zoom_to() dm objects empty table (#626, @moodymudskipper). Avoid generating invalid dm objects corner cases (#596).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-4","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.4","text":"sql_schema_list() supports pool::Pool objects (#633, @brancengregory). Establish compatibility pillar 1.6.2, vctrs > 0.3.8 rlang > 0.4.11 (#613). Use check_suggested() everywhere (#572, @moodymudskipper). Add CI run validating new dm objects (#597).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-023","dir":"Changelog","previous_headings":"","what":"dm 0.2.3","title":"dm 0.2.3","text":"CRAN release: 2021-06-20","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-2-3","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.2.3","text":"Fix rows_truncate() interactive mode (#588).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-3","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.3","text":"Implement rows_delete() databases (#589).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-3","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.3","text":"Skip examples might require internet access non-CI platforms.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-022","dir":"Changelog","previous_headings":"","what":"dm 0.2.2","title":"dm 0.2.2","text":"CRAN release: 2021-06-13","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-2","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.2","text":"dm_examine_constraints(), dm_rows_insert() related, copy_dm_to() collect.dm() show progress bars interactive mode via progress package. new progress = NA argument controls behavior (#262, @moodymudskipper). copy_dm_to() gains copy_to argument support ways copying data database (#582).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-2","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.2","text":"Always run database tests sqlite df source. Establish compatibility testthat > 3.0.2 (#566, @moodymudskipper).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-021","dir":"Changelog","previous_headings":"","what":"dm 0.2.1","title":"dm 0.2.1","text":"CRAN release: 2021-05-11","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-0-2-1","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 0.2.1","text":"dm_get_all_fks() returns data frame parent_key_cols instead parent_pk_cols column (introduced dm 0.2.0), reflect fact foreign key longer necessarily points primary key (#562). *_pk() *_fk() functions now verify dots actually empty (#536). dm_get_pk() deprecated favor dm_get_all_pks() (#561). dm_has_fk() dm_get_fk() deprecated favor dm_get_all_fks() (#561).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-1","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.1","text":"dm_add_fk() gains ref_columns argument supports creating foreign keys non-primary keys (#402). dm_get_all_pks() gains table argument filtering returned primary keys (#560). dm_get_all_fks() gains parent_table argument filtering returned foreign keys (#560). dm_rm_fk() gains optional ref_columns argument. function now supports removal multiple foreign keys filtered parent child table columns, message (#559). dm_rm_pk() gains columns argument allows filtering columns tables removing primary keys. rm_referencing_fks argument deprecated favor new fail_fk argument (#558). dm_get_all_fks() optimized speed longer sorts keys (#560). dm operations now slightly faster overall.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-2-1","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.2.1","text":"internal data structure dm object changed accommodate foreign keys columns primary key. upgrade message shown working dm object earlier version, e.g. loaded cache .rds file (#402). Drop \"dm_v1\" class dm objects , made every S3 dispatch costly. Relying internal \"version\" attribute instead (#547).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-020","dir":"Changelog","previous_headings":"","what":"dm 0.2.0","title":"dm 0.2.0","text":"CRAN release: 2021-05-03","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-0-2-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 0.2.0","text":"Deprecate dm_get_src() tbl.dm(), src_tbls.dm(), copy_to.dm(). functions better alternatives use notion “data source” phased dplyr (#527). *_pk() *_fk() functions gain ellipsis argument comes check, force rm_referencing_fks arguments (#520).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-2-0","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.2.0","text":"dm_add_pk() dm_add_fk() support compound keys via c() notation, e.g. dm_add_pk(dm, table, c(col1, col2)). dm_nycflights13() returns data model compound keys default. Use compound = FALSE return data model dm v0.1.13 earlier (#3). dm_get_all_fks() includes parent_pk_cols column describes primary key columns parent table (#335). dm_from_src() supports schema argument also MariaDB MySQL databases (#516). dm objects now inherit \"dm_v1\" addition \"dm\", allow backward-compatible changes internal format (#521). Use hack create compound primary keys database (#522). dm_examine_constraints() check functions count number rows violate constraints primary foreign keys (#335). copy_dm_to(set_key_constraints = FALSE) downgrades unique indexes regular indexes (#335). rows_truncate() implemented data frames (#335). dm_enum_fk_candidates() enumerates column order apper table (#335).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-0113","dir":"Changelog","previous_headings":"","what":"dm 0.1.13","title":"dm 0.1.13","text":"CRAN release: 2021-04-25","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-1-13","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.1.13","text":"dm_draw() gains column_types argument, TRUE column type shown displayed column (#444, @samssann). copy_dm_to() gains schema argument (#432). dm_from_src() gains dbname argument MSSQL (#472).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-1-13","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.1.13","text":"Fix rows_update() multiple columns updated (#488, @samssann).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"performance-0-1-13","dir":"Changelog","previous_headings":"","what":"Performance","title":"dm 0.1.13","text":"enum_fk_candidates() now checks distinct values, improves performance large tables. consequence, number distinct values reported mismatches, number mismatching rows/entries (#494).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-0-1-13","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 0.1.13","text":"Fix description filtering behavior ?dm_zoom_to (#403).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-1-13","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.1.13","text":"Move repository https://github.com/cynkra/dm (#500). Enable Postgres tests (#497). Test DuckDB GitHub Actions (#498).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-0112","dir":"Changelog","previous_headings":"","what":"dm 0.1.12","title":"dm 0.1.12","text":"CRAN release: 2021-02-15 dm_from_src() gains dbname argument MSSQL (#472). Implement count() tally() dplyr 1.0.3 compatibility (#475). Use databases.pacha.dev instead db-edu.pacha.dev (#478, @pachamaltese).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-0110","dir":"Changelog","previous_headings":"","what":"dm 0.1.10","title":"dm 0.1.10","text":"CRAN release: 2021-01-07 Columns missing values longer primary keys (#469). Fix dm_from_src() MSSQL learn_keys = FALSE (#427). Tests use expect_snapshot() everywhere (#456). Fix compatibility testthat 3.0.1 (#457).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-019","dir":"Changelog","previous_headings":"","what":"dm 0.1.9","title":"dm 0.1.9","text":"CRAN release: 2020-11-18 New vignette(\"howto-dm-copy\", package = \"dm\") vignette(\"howto-dm-rows\", package = \"dm\") discuss updating data database. part derived vignette(\"howto-dm-db\", package = \"dm\") (#411, @jawond). New dm_mutate_tbl() (#448). dm_financial() falls back db-edu.pacha.dev relational.fit.cvut.cz unavailable (#446, @pachamaltese). Use testthat 3e (#455).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-017","dir":"Changelog","previous_headings":"","what":"dm 0.1.7","title":"dm 0.1.7","text":"CRAN release: 2020-09-02 Bump RMariaDB required version 1.0.10 work around timeout R CMD check. dm_from_src() accepts schema argument MSSQL databases (#367).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-016","dir":"Changelog","previous_headings":"","what":"dm 0.1.6","title":"dm 0.1.6","text":"CRAN release: 2020-07-29","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-0-1-6","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 0.1.6","text":"dm_get_src() returns NULL local data sources (#394). Local target copy_dm_to() gives deprecation message (#395).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-1-6","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.1.6","text":"copy_dm_to() gives better error message bad table_names (#397). dm objects local data sources longer show “Table source” part output. Error messages now refer “tables”, “elements” (#413). New dm_bind() binding two ‘dm’ objects together (#417).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-1-6","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.1.6","text":"databases, underlying SQL table names quoted early avoid later SQL syntax errors (#419). dm_financial() longer prints message learn_keys = FALSE. dm_rows_update() related functions now use primary keys defined x establishing matching rows.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-1-6","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.1.6","text":"Use withCallingHandlers() appropriate (#422). Consistent definition .dm .dm_zoomed methods (#300). Examples involving dm_financial() run connection can’t established (#418). Fix database tests CI (#416).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-015","dir":"Changelog","previous_headings":"","what":"dm 0.1.5","title":"dm 0.1.5","text":"CRAN release: 2020-07-03","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-1-5","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.1.5","text":"dm_paste() generates self-contained code (#401). Errors regarding cycles relationship graph now show shortest cycle (#405). Implement rows_truncate() databases. collect() works zoomed dm, message. data model drawn compact way comprises multiple connected components. dm_add_pk(check = TRUE) gives better error message.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-1-5","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.1.5","text":"rows_insert() works column names consist SQL keywords (#409). Cycles connected components don’t affect filtering cycle-free component. Avoid src_sqlite() examples (#372).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-1-5","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.1.5","text":"Testing SQLite, Postgres SQL Server GitHub Actions (#408, @pat-s). Testing packages “Suggests” uninstalled.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-014","dir":"Changelog","previous_headings":"","what":"dm 0.1.4","title":"dm 0.1.4","text":"CRAN release: 2020-06-07","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-1-4","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.1.4","text":"New dm_rows_insert(), dm_rows_update(), dm_rows_patch(), dm_rows_upsert(), dm_rows_delete() dm_rows_truncate(), calling corresponding rows_*() method every table (#319). New rows_truncate() (#319). Added rows_insert() rows_update() methods SQLite, Postgres, MariaDB MSSQL (#319). Missing arguments now give better error message (#388). Empty dm object prints dm() (#386). copy_dm_to() also accepts function table_names argument. unique_table_names() argument deprecated (#80).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-0-1-4","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 0.1.4","text":"Add TL;DR README (#377, @jawond). Add content old README howto-dm-theory.Rmd (#378, @jawond).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-1-4","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.1.4","text":"Require dplyr >= 1.0.0. Use GitHub Actions (#369, @pat-s).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-013","dir":"Changelog","previous_headings":"","what":"dm 0.1.3","title":"dm 0.1.3","text":"CRAN release: 2020-05-25 Avoid src_sqlite() vignettes (#372). Rename vignettes (#349). Rename error class \"dm_error_tables_not_neighbours\" \"dm_error_tables_not_neighbors\". Shortened README intro article (#192, @jawond). Better testing MSSQL (#339). Fix compatibility dplyr 1.0.0.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-012","dir":"Changelog","previous_headings":"","what":"dm 0.1.2","title":"dm 0.1.2","text":"CRAN release: 2020-05-04","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-1-2","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.1.2","text":"dm_from_src() now works databases Postgres MSSQL (#288), gives warning tables accessed table_name = NULL (#348), gains learn_keys argument control querying primary foreign keys database (#340). dm_examine_constraints() now prints different message dm constraints defined. Disambiguation message now lists column names easier copy-pasting. New methods \"dm_zoomed\": head(), tail(), pull(), group_data(), group_indices(), group_vars(), group_keys() groups() (#236, #203). dm_paste() supports writing colors table definition via new options argument. definition can written file via new path argument. select argument soft-deprecated (#218, #302). dm_add_tbl() uses rlang::list2() internally, now accepts := specify table names. New dm_ptype() (#301). New dm_financial() dm_financial_sqlite(). Printing dm objects database sources many tables now faster (#308, @gadenbuie). check_key() now also works zoomed dm. Key columns always selected join operation, message (#153). Support alpha colors table colors (#279).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-1-2","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.1.2","text":"Fix visualization column acts foreign key (#37). dm_add_pk(), dm_rm_pk(), dm_add_fk() dm_rm_fk() now stricter keys exists attempting remove keys don’t exist. relaxed mode operation may added later (#214). examine_cardinality(), dm_examine_constraints() enum_pk_candidates() now work columns named n. dm_set_key_constraints() (extension dm_copy_to(set_key_constraints = TRUE)) now quote identifiers SQL creates foreign keys database. collect() gives better error message called \"dm_zoomed\" (#294). check_subset() gives clean error message tables complex expressions. dm_from_src(schema = \"...\") works Postgres search_path set connection. compute.dm_zoomed() longer throws error. Remove unused DT import (#295).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"compatibility-0-1-2","dir":"Changelog","previous_headings":"","what":"Compatibility","title":"dm 0.1.2","text":"Remove use deprecated src_df() (#336). Fix compatibility dplyr 1.0.0 (#203).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-0-1-2","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 0.1.2","text":"dm_draw() output shown examples (#251). New article “{dm} databases” (#309, @jawond).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-1-2","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.1.2","text":"Testing local data frames (default), optionally also SQLite, Postgres, RMariaDB, SQL Server. Currently requires development versions various pull requests (#334, #327, #312, #76). dm_nycflights13(subset = TRUE) memoizes subset also reduces size weather table. Expand definitions deprecated functions (#204).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-011","dir":"Changelog","previous_headings":"","what":"dm 0.1.1","title":"dm 0.1.1","text":"CRAN release: 2020-03-12 Implement format.dm(). Adapt tidyselect 1.0.0 (#257). Zooming unzooming now faster columns removed. Table names must unique. dm_examine_constraints() formats problems nicely. New class prettier printing keys (#244). Add experimental schema support dm_from_src() Postgres new schema table_type arguments (#256).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-010","dir":"Changelog","previous_headings":"","what":"dm 0.1.0","title":"dm 0.1.0","text":"Package now “maturing” lifecycle (#154). filter.dm_zoomed() longer sets filter. examine_() functions never throw error (#238). API overhaul: dm_zoom_to(), dm_insert_zoomed(), dm_update_zoomed() dm_discard_zoomed(); check_() -> examine_(); dm_get_filter() -> dm_get_filters(); dm_from_src() + dm_learn_from_db() -> dm_from_src() (#233). New $.dm_zoomed(), [.dm_zoomed(), [[.dm_zoomed(), length.dm_zoomed(), names.dm_zoomed(), tbl_vars.dm_zoomed() (#199, #216). New .list() methods (#213). Help pages dplyr methods (#209). New migration guide dm <= 0.0.5 (#234). New {tidyselect} interface setting colors (#162) support hex color codes well R standard colors. Prepare dm_examine_constraints() key-related functions compound keys (#239). Avoid warnings R CMD check dev versions dependencies. Improve error messages missing tables (#220).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-006","dir":"Changelog","previous_headings":"","what":"dm 0.0.6","title":"dm 0.0.6","text":"Change cdm_ prefix dm_. old names still available (#117). New pull_tbl() extracts single table dm (#206). New dm_apply_filters_to_tbl() applies filters related tables table, similar dm_apply_filters(); tbl(), $ [[ longer apply filter conditions defined related tables (#161). New dm_paste() (#160). New check_cardinality() returns nature relationship parent_table$pk_col child_table$fk_col (#15). New zoom vignette (#171). check_key() longer maps empty selection list columns. check_key() supports tidyselect (#188). dm_rm_tbl() supports tidyselect (#127). decompose_table() uses tidyselect (#194). Implement copy_to() dm objects (#129). Relax test cycles relationship graph (#198). Return ref_table column dm_check_constraints() (#178). str() shows simplified views (#123). Edits README (#172, @bbecane). Extend validate_dm() (#173). Fix zooming table uses FK column primary key (#193). Fix corner case dm_rm_fk() (#175). efficient check_key() databases (#208). Testing R >= 3.3 debug versions. Remove {stringr} dependency (#183).","code":""},{"path":[]},{"path":"https://dm.cynkra.com/news/index.html","id":"features-0-0-5","dir":"Changelog","previous_headings":"","what":"Features","title":"dm 0.0.5","text":"cdm_filter() filter.dm_zoomed() apply filter instantly, expression recorded display purposes terminating search filtered tables cdm_apply_filters(). now allows using variety operations filtered dm objects (#124). dimnames(), colnames(), dim(), distinct(), arrange(), slice(), separate() unite() implemented zoomed dm-s (#130). Joins zoomed dm objects now supported (#121). Joins use column name disambiguation algorithm cdm_flatten_to_tbl() (#147). slice.dm_zoomed(): user decides arg .keep_pk PK column tracked (#152). Supported {dplyr} {tidyr} verbs reexported. enum_pk_candidates() works zoomed dm-s (#156). New enum_fk_candidates() (#156). Add name repair argument cdm_insert_zoomed_tbl() cdm_add_tbl(), defaulting renaming old new tables adding tables duplicate names (#132). Redesign constructors validators: dm() akin tibble(), dm_from_src() works like dm() previously, new_dm() accepts list tables longer validates, validate_dm() checks internal consistency (#69). compute.dm() applies filters calls compute() tables (#135).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-0-0-5","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 0.0.5","text":"New demo. Add explanation empty dm (#100).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"bug-fixes-0-0-5","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"dm 0.0.5","text":"Avoid asterisk printing local dm_zoomed (#131). cdm_select_tbl() works multiple foreign keys defined two tables (#122).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-004","dir":"Changelog","previous_headings":"","what":"dm 0.0.4","title":"dm 0.0.4","text":"Many {dplyr} verbs now work tables dm. Zooming table vie cdm_zoom_to_tbl() creates zoomed dm {dplyr} verbs can applied. resulting table can put back dm cdm_update_zoomed_tbl() (overwriting original table) cdm_insert_zoomed_tbl() (creating new table), respectively (#89). cdm_select_to_tbl() removes foreign key constraints corresponding columns removed. Integrate code {datamodelr} package (@bergant, #111). Reorder tables \"dm\" using cdm_select_tbl() (#108). accurate documentation filtering operation (#98). Support empty dm objects via dm() new_dm() (#96). cdm_flatten_to_tbl() now flattens immediate neighbors default (#95). New cdm_add_tbl() cdm_rm_tbl() (#90). New cdm_get_con() (#84). dm object defined using nested tibble, one row per table (#57).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-003","dir":"Changelog","previous_headings":"","what":"dm 0.0.3","title":"dm 0.0.3","text":"cdm_enum_pk_candidates() cdm_enum_fk_candidates() show candidates first (#85). cdm_flatten_to_tbl() works immediate neighborhood (#75). New cdm_squash_to_tbl() implements recursive flattening left, inner full join (#75). Updated readme introduction vignette (#72, @cutterkom). New cdm_check_constraints() check referential integrity dm (#56). cdm_copy_to() gains table_names argument (#79). check_key() now deals correctly named column lists (#83). Improve error message calling cdm_add_pk() missing column.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-0029003","dir":"Changelog","previous_headings":"","what":"dm 0.0.2.9003","title":"dm 0.0.2.9003","text":"Fix R CMD check.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-0029002","dir":"Changelog","previous_headings":"","what":"dm 0.0.2.9002","title":"dm 0.0.2.9002","text":"Use caching improve loading times. Run tests one source (#76). cdm_enum_fk_candidates() checks class compatibility implicitly via left_join(). cdm_enum_fk_candidates() contains detailed entry column error & candidate (percentage mismatched vals etc.). Improve error messages cdm_join_to_tbl() cdm_flatten_to_tbl() presence cycles disconnected tables (#74).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-0029001","dir":"Changelog","previous_headings":"","what":"dm 0.0.2.9001","title":"dm 0.0.2.9001","text":"Remove src component dm (#38). Internal: Add function checking tables src. Internal: Add 2 classed errors. cdm_get_src() local dm always returns src based .GlobalEnv. cdm_flatten() gains ... argument specify tables include. Currently, tables must form connected subtree rooted start. Disambiguation column names now happens selecting relevant tables. resulting SQL query efficient inner outer joins filtering applied. Flattening right_join two tables well-defined gives error (#62). Add vignette joining functions (#60, @cutterkom). Shorten message cdm_disambiguate_cols().","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-0029000","dir":"Changelog","previous_headings":"","what":"dm 0.0.2.9000","title":"dm 0.0.2.9000","text":"cdm_flatten_to_tbl() disambiguates necessary columns. flattening, column name LHS (child) table used (#52). Fix formatting enum_pk_candidates() character data. cdm_add_pk() cdm_add_fk() longer check data integrity default. Explicitly checking join argument function, avoid surprises caller passes data. cdm_copy_to() works correctly filtered dm objects. cdm_apply_filters() actually resets filter conditions. detailed README file vignette filtering (#29, @cutterkom). cdm_draw() longer supports table_names argument, use cdm_select_tbl(). Copying dm database now creates indexes primary foreign keys.","code":""},{"path":[]},{"path":"https://dm.cynkra.com/news/index.html","id":"breaking-changes-0-0-2","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"dm 0.0.2","text":"Requires tidyr >= 1.0.0. cdm_nrow() returns named list (#49). Remove cdm_semi_join(). Remove cdm_find_conn_tbls() all_connected argument cdm_select() (#35). Unexport cdm_set_key_constraints(). Rename cdm_select() cdm_select_tbl(), now uses {tidyselect}. cdm_nycflights13() now cycle = FALSE default. Rename cdm_check_for_*() cdm_enum_*().","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"performance-0-0-2","dir":"Changelog","previous_headings":"","what":"Performance","title":"dm 0.0.2","text":"cdm_filter() records filtering operation, filter applied querying table via tbl() calling compute() new cdm_apply_filters() (#32).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"new-functions-0-0-2","dir":"Changelog","previous_headings":"","what":"New functions","title":"dm 0.0.2","text":"New cdm_flatten_to_tbl() flattens dm wide table starting specified table (#13). Rename cdm_join_tbl() cdm_join_to_tbl(). New cdm_disambiguate_cols() (#40). New cdm_rename() (#41) cdm_select() (#50) renaming selecting columns dm tables. New length.dm() length<-.dm() (#53). $, [[, [, names(), str() length() now implemented dm objects (read-). New enum_pk_candidates().","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"minor-changes-0-0-2","dir":"Changelog","previous_headings":"","what":"Minor changes","title":"dm 0.0.2","text":"browse_docs() opens pkgdown website (#36). as_dm() now also accepts list remote tables (#30). Use {tidyselect} syntax cdm_rename_tbl() cdm_select_tbl() (#14). tibbles returned cdm_enum_fk_candidates() cdm_enum_pk_candidates() contain column explains reasons rejection human-readable form (#12). Improve compatibility RPostgres. create_graph_from_dm() longer fails presence cycles (#10). suggest {RSQLite}. cdm_filter() longer requires primary key. decompose_table() adds new column table end. tbl() now fails table part data model.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"documentation-0-0-2","dir":"Changelog","previous_headings":"","what":"Documentation","title":"dm 0.0.2","text":"Add setup article (#7).","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"internal-0-0-2","dir":"Changelog","previous_headings":"","what":"Internal","title":"dm 0.0.2","text":"Using simpler internal data structure store primary foreign key relations (#26). New nse_function() replaces h() marking functions NSE avoid R CMD check warnings. Simplified internal data structure creation new operations update dm becomes easier. copying dm database, NULL constraints set creation table. removes necessity store column types. Using {RPostgres} instead {RPostgreSQL} testing.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"dm-001","dir":"Changelog","previous_headings":"","what":"dm 0.0.1","title":"dm 0.0.1","text":"Initial GitHub release.","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"creating-dm-objects-and-basic-functions-0-0-1","dir":"Changelog","previous_headings":"","what":"Creating dm objects and basic functions:","title":"dm 0.0.1","text":"dm() new_dm() validate_dm() cdm_get_src() cdm_get_tables() cdm_get_data_model() is_dm() as_dm()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"primary-keys-0-0-1","dir":"Changelog","previous_headings":"","what":"Primary keys","title":"dm 0.0.1","text":"cdm_add_pk() cdm_has_pk() cdm_get_pk() cdm_get_all_pks() cdm_rm_pk() cdm_check_for_pk_candidates()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"foreign-keys-0-0-1","dir":"Changelog","previous_headings":"","what":"Foreign keys","title":"dm 0.0.1","text":"cdm_add_fk() cdm_has_fk() cdm_get_fk() cdm_get_all_fks() cdm_rm_fk() cdm_check_for_fk_candidates()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"visualization-0-0-1","dir":"Changelog","previous_headings":"","what":"Visualization","title":"dm 0.0.1","text":"cdm_draw() cdm_set_colors() cdm_get_colors() cdm_get_available_colors()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"flattening-0-0-1","dir":"Changelog","previous_headings":"","what":"Flattening","title":"dm 0.0.1","text":"cdm_join_tbl()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"filtering-0-0-1","dir":"Changelog","previous_headings":"","what":"Filtering","title":"dm 0.0.1","text":"cdm_filter() cdm_semi_join() cdm_nrow()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"interaction-with-dbs-0-0-1","dir":"Changelog","previous_headings":"","what":"Interaction with DBs","title":"dm 0.0.1","text":"cdm_copy_to() cdm_set_key_constraints() cdm_learn_from_db()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"utilizing-foreign-key-relations-0-0-1","dir":"Changelog","previous_headings":"","what":"Utilizing foreign key relations","title":"dm 0.0.1","text":"cdm_is_referenced() cdm_get_referencing_tables() cdm_select() cdm_find_conn_tbls()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"table-surgery-0-0-1","dir":"Changelog","previous_headings":"","what":"Table surgery","title":"dm 0.0.1","text":"decompose_table() reunite_parent_child() reunite_parent_child_from_list()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"check-keys-and-cardinalities-0-0-1","dir":"Changelog","previous_headings":"","what":"Check keys and cardinalities","title":"dm 0.0.1","text":"check_key() check_if_subset() check_set_equality() check_cardinality_0_n() check_cardinality_1_n() check_cardinality_1_1() check_cardinality_0_1()","code":""},{"path":"https://dm.cynkra.com/news/index.html","id":"miscellaneous-0-0-1","dir":"Changelog","previous_headings":"","what":"Miscellaneous","title":"dm 0.0.1","text":"cdm_nycflights13() cdm_rename_table() cdm_rename_tables()","code":""}]