Last active
January 28, 2018 19:44
-
-
Save infotroph/19513e684c97b576e24c8b1058b082ee to your computer and use it in GitHub Desktop.
Why not .data in sql filter?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
library(tidyverse) | |
# local df works as expected with or without .data | |
mtcars %>% select(mpg) %>% filter(mpg > 33) | |
# mpg | |
# 1 33.9 | |
mtcars %>% select(.data$mpg) %>% filter(.data$mpg > 33) | |
# mpg | |
# 1 33.9 | |
con = DBI::dbConnect(RSQLite::SQLite(), path = ":memory:") | |
copy_to(con, mtcars, "carsql", temporary=F) | |
# sql works as expected without .data | |
tbl(con, "carsql") %>% select(mpg) %>% filter(mpg > 33) | |
# # Source: lazy query [?? x 1] | |
# # Database: sqlite 3.19.3 [] | |
# mpg | |
# <dbl> | |
# 1 33.9 | |
# sql select works as expected with .data | |
tbl(con, "carsql") %>% select(.data$mpg) %>% filter(mpg > 33) | |
# # Source: lazy query [?? x 1] | |
# # Database: sqlite 3.19.3 [] | |
# mpg | |
# <dbl> | |
# 1 33.9 | |
# sql filter does not work with .data | |
tbl(con, "carsql") %>% select(.data$mpg) %>% filter(.data$mpg > 33) | |
# Error in eval_bare(call, env) : object '.data' not found | |
Author
infotroph
commented
Jan 22, 2018
tbl(con, "carsql") %>% select(.data$mpg) %>% filter(as.name("mpg") > 33)
# Error in rsqlite_send_query(conn@ptr, statement) : near "AS": syntax error
tbl(con, "carsql") %>% select(.data$mpg) %>% filter(base::as.name("mpg") > 33)
# # Source: lazy query [?? x 1]
# # Database: sqlite 3.19.3 []
# mpg
# <dbl>
# 1 33.9
Behavior doesn't change when I switch to dev versions of Tidyverse packages.
library(tidyverse)
# local df works as expected with or without .data
mtcars %>% select(mpg) %>% filter(mpg > 33)
#> mpg
#> 1 33.9
mtcars %>% select(.data$mpg) %>% filter(.data$mpg > 33)
#> mpg
#> 1 33.9
con = DBI::dbConnect(RSQLite::SQLite(), path = ":memory:")
copy_to(con, mtcars, "carsql", temporary=F)
# sql works as expected without .data
tbl(con, "carsql") %>% select(mpg) %>% filter(mpg > 33)
#> # Source: lazy query [?? x 1]
#> # Database: sqlite 3.19.3 []
#> mpg
#> <dbl>
#> 1 33.9
# sql select works as expected with .data
tbl(con, "carsql") %>% select(.data$mpg) %>% filter(mpg > 33)
#> # Source: lazy query [?? x 1]
#> # Database: sqlite 3.19.3 []
#> mpg
#> <dbl>
#> 1 33.9
# sql filter does not work with .data
tbl(con, "carsql") %>% select(.data$mpg) %>% filter(.data$mpg > 33)
#> Error: Column `mpg` not found in `.data`
devtools::session_info()
#> Session info -------------------------------------------------------------
#> setting value
#> version R version 3.4.3 (2017-11-30)
#> system x86_64, darwin15.6.0
#> ui X11
#> language (EN)
#> collate en_US.UTF-8
#> tz Europe/Amsterdam
#> date 2018-01-28
#> Packages -----------------------------------------------------------------
#> package * version date source
#> assertthat 0.2.0 2017-04-11 CRAN (R 3.4.0)
#> backports 1.1.2 2017-12-13 CRAN (R 3.4.3)
#> base * 3.4.3 2017-12-07 local
#> bindr 0.1 2016-11-13 CRAN (R 3.4.0)
#> bindrcpp * 0.2 2017-06-17 CRAN (R 3.4.0)
#> bit 1.1-12 2014-04-09 CRAN (R 3.4.0)
#> bit64 0.9-7 2017-05-08 CRAN (R 3.4.0)
#> blob 1.1.0 2017-06-17 CRAN (R 3.4.0)
#> broom 0.4.2 2018-01-28 Github (tidyverse/broom@4d0c83a)
#> cellranger 1.1.0 2016-07-27 CRAN (R 3.4.0)
#> cli 1.0.0 2017-11-05 CRAN (R 3.4.2)
#> colorspace 1.3-2 2016-12-14 CRAN (R 3.4.0)
#> compiler 3.4.3 2017-12-07 local
#> crayon 1.3.4 2017-09-16 CRAN (R 3.4.1)
#> datasets * 3.4.3 2017-12-07 local
#> DBI 0.7 2017-06-18 cran (@0.7)
#> dbplyr 1.2.0 2018-01-28 Github (tidyverse/dbplyr@ea093ca)
#> devtools 1.13.4 2017-11-09 CRAN (R 3.4.2)
#> digest 0.6.14 2018-01-14 CRAN (R 3.4.3)
#> dplyr * 0.7.4.9000 2018-01-28 Github (tidyverse/dplyr@3f91e1e)
#> evaluate 0.10.1 2017-06-24 CRAN (R 3.4.1)
#> forcats * 0.2.0.9000 2018-01-28 Github (tidyverse/forcats@fdde458)
#> foreign 0.8-69 2017-06-22 CRAN (R 3.4.3)
#> ggplot2 * 2.2.1.9000 2018-01-28 Github (tidyverse/ggplot2@401511e)
#> glue 1.2.0 2017-10-29 CRAN (R 3.4.2)
#> graphics * 3.4.3 2017-12-07 local
#> grDevices * 3.4.3 2017-12-07 local
#> grid 3.4.3 2017-12-07 local
#> gtable 0.2.0 2016-02-26 CRAN (R 3.4.0)
#> haven 1.1.1 2018-01-18 CRAN (R 3.4.3)
#> hms 0.4.1 2018-01-28 Github (tidyverse/hms@e68d386)
#> htmltools 0.3.6 2017-04-28 cran (@0.3.6)
#> httr 1.3.1 2017-08-20 cran (@1.3.1)
#> jsonlite 1.5 2017-06-01 CRAN (R 3.4.0)
#> knitr 1.18 2017-12-27 CRAN (R 3.4.3)
#> lattice 0.20-35 2017-03-25 CRAN (R 3.4.3)
#> lazyeval 0.2.1 2017-10-29 CRAN (R 3.4.2)
#> lubridate 1.7.1 2018-01-28 Github (tidyverse/lubridate@2e11bc9)
#> magrittr 1.5.0 2018-01-28 Github (tidyverse/magrittr@0a76de2)
#> memoise 1.1.0 2017-04-21 CRAN (R 3.4.0)
#> methods * 3.4.3 2017-12-07 local
#> mnormt 1.5-5 2016-10-15 CRAN (R 3.4.0)
#> modelr 0.1.1 2018-01-28 Github (tidyverse/modelr@69381e8)
#> munsell 0.4.3 2016-02-13 CRAN (R 3.4.0)
#> nlme 3.1-131 2017-02-06 CRAN (R 3.4.3)
#> parallel 3.4.3 2017-12-07 local
#> pillar 1.1.0 2018-01-14 CRAN (R 3.4.3)
#> pkgconfig 2.0.1 2017-03-21 CRAN (R 3.4.0)
#> plyr 1.8.4 2016-06-08 CRAN (R 3.4.0)
#> psych 1.7.8 2017-09-09 CRAN (R 3.4.1)
#> purrr * 0.2.4.9000 2018-01-28 Github (tidyverse/purrr@62b135a)
#> R6 2.2.2 2017-06-17 CRAN (R 3.4.0)
#> Rcpp 0.12.15 2018-01-20 CRAN (R 3.4.3)
#> readr * 1.2.0 2018-01-28 Github (tidyverse/readr@2e1fa9a)
#> readxl 1.0.0 2017-04-18 CRAN (R 3.4.0)
#> reshape2 1.4.3 2017-12-11 CRAN (R 3.4.3)
#> rlang 0.1.6.9003 2018-01-28 Github (tidyverse/rlang@73d8f50)
#> rmarkdown 1.8 2017-11-17 CRAN (R 3.4.2)
#> rprojroot 1.3-2 2018-01-03 CRAN (R 3.4.3)
#> RSQLite 2.0 2017-06-19 CRAN (R 3.4.1)
#> rvest 0.3.2 2016-06-17 cran (@0.3.2)
#> scales 0.5.0.9000 2018-01-28 Github (hadley/scales@d767915)
#> stats * 3.4.3 2017-12-07 local
#> stringi 1.1.6 2017-11-17 cran (@1.1.6)
#> stringr * 1.2.0.9000 2018-01-28 Github (tidyverse/stringr@c8bbc0d)
#> tibble * 1.4.2 2018-01-28 Github (tidyverse/tibble@7ab7327)
#> tidyr * 0.7.2.9000 2018-01-28 Github (tidyverse/tidyr@74bd48f)
#> tidyselect 0.2.3 2017-11-06 CRAN (R 3.4.2)
#> tidyverse * 1.2.1 2018-01-28 Github (tidyverse/tidyverse@03ccf9c)
#> tools 3.4.3 2017-12-07 local
#> utf8 1.1.3 2018-01-03 CRAN (R 3.4.3)
#> utils * 3.4.3 2017-12-07 local
#> withr 2.1.1.9000 2018-01-28 Github (jimhester/withr@df18523)
#> xml2 1.2.0 2018-01-24 cran (@1.2.0)
#> yaml 2.1.16 2017-12-12 CRAN (R 3.4.3)
Created on 2018-01-28 by the reprex package (v0.1.1.9000).
Possibly related to dplyr issue 2930.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment