Setup
library(DBI)
library(tidyverse)
library(dbplot)
conf <- config::get()
con <- dbConnect(odbc::odbc(),
Driver = "SQLServer",
Database = conf$database,
Port = conf$port,
Server = conf$server,
UID = conf$UID,
PWD = conf$PWD)
airports <- tbl(con, "airports")
flights <- tbl(con, "flights2")
Histogram
dbplot_histogram(airports, alt, binwidth = 700) +
labs(title = "Airports Altitude") +
theme_minimal()

Compute bins
db_compute_bins(airports, alt)
db_bin(x)
(((max(x, na.rm = TRUE) - min(x, na.rm = TRUE))/(30)) * ifelse((as.integer(floor(((x) -
min(x, na.rm = TRUE))/((max(x, na.rm = TRUE) - min(x, na.rm = TRUE))/(30))))) ==
(30), (as.integer(floor(((x) - min(x, na.rm = TRUE))/((max(x,
na.rm = TRUE) - min(x, na.rm = TRUE))/(30))))) - 1, (as.integer(floor(((x) -
min(x, na.rm = TRUE))/((max(x, na.rm = TRUE) - min(x, na.rm = TRUE))/(30))))))) +
min(x, na.rm = TRUE)
Raster
dbplot_raster(flights, lon, lat) +
labs(title = "Arrivals") +
theme_minimal()

Line plot
dbplot_line(flights, month, mean(arr_delay)) +
labs(title = "Arrival delays by month") +
theme_minimal()
Missing values are always removed in SQL.
Use `AVG(x, na.rm = TRUE)` to silence this warning

Barplot
dbplot_bar(flights, origin, mean(dep_delay)) +
labs(title = "Departure delays by airport") +
theme_minimal() +
coord_flip()
Missing values are always removed in SQL.
Use `AVG(x, na.rm = TRUE)` to silence this warning

LS0tCnRpdGxlOiAiRGF0YWJhc2UgcGxvdHMgd2l0aCBkYnBsb3QiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCiMjIFNldHVwCgpgYGB7cn0KbGlicmFyeShEQkkpCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGRicGxvdCkKY29uZiA8LSBjb25maWc6OmdldCgpCmNvbiA8LSBkYkNvbm5lY3Qob2RiYzo6b2RiYygpLAogICAgICAgICAgICAgICAgIERyaXZlciA9ICJTUUxTZXJ2ZXIiLAogICAgICAgICAgICAgICAgIERhdGFiYXNlID0gY29uZiRkYXRhYmFzZSwKICAgICAgICAgICAgICAgICBQb3J0ID0gY29uZiRwb3J0LAogICAgICAgICAgICAgICAgIFNlcnZlciA9IGNvbmYkc2VydmVyLAogICAgICAgICAgICAgICAgIFVJRCA9IGNvbmYkVUlELAogICAgICAgICAgICAgICAgIFBXRCA9IGNvbmYkUFdEKQphaXJwb3J0cyA8LSB0YmwoY29uLCAiYWlycG9ydHMiKQpmbGlnaHRzIDwtIHRibChjb24sICJmbGlnaHRzMiIpCmBgYAoKIyMgSGlzdG9ncmFtCgpgYGB7cn0KZGJwbG90X2hpc3RvZ3JhbShhaXJwb3J0cywgYWx0LCBiaW53aWR0aCA9IDcwMCkgKyAKICBsYWJzKHRpdGxlID0gIkFpcnBvcnRzIEFsdGl0dWRlIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKCiMjIENvbXB1dGUgYmlucwoKYGBge3J9CmRiX2NvbXB1dGVfYmlucyhhaXJwb3J0cywgYWx0KQpkYl9iaW4oeCkKYGBgCgojIyBSYXN0ZXIKCmBgYHtyfQpkYnBsb3RfcmFzdGVyKGZsaWdodHMsIGxvbiwgbGF0KSArCiAgbGFicyh0aXRsZSA9ICJBcnJpdmFscyIpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgojIyBMaW5lIHBsb3QKCmBgYHtyfQpkYnBsb3RfbGluZShmbGlnaHRzLCBtb250aCwgbWVhbihhcnJfZGVsYXkpKSArCiAgbGFicyh0aXRsZSA9ICJBcnJpdmFsIGRlbGF5cyBieSBtb250aCIpICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgojIyBCYXJwbG90CgpgYGB7cn0KZGJwbG90X2JhcihmbGlnaHRzLCBvcmlnaW4sIG1lYW4oZGVwX2RlbGF5KSkgKwogIGxhYnModGl0bGUgPSAiRGVwYXJ0dXJlIGRlbGF5cyBieSBhaXJwb3J0IikgKwogIHRoZW1lX21pbmltYWwoKSArCiAgY29vcmRfZmxpcCgpCmBgYAo=