Hi all, as explained in this blog post here, rlang new 1.0.0 version displays errors in a "message" style.
As you will see on the reprex below, there are two errors in two separate mutate
function statements. Those two are displayed as messages and only the third one, using filter
, returns an error and stops the execution of the entire code.
This example is a toy version to explain my issue: I expect R to stop the execution of my code once the first error occurs. This would help me debug. Following code shouldn't be run if there are previous errors happening.
Note: I intentionally spelled "gear" wrong to cause the error. You will notice that mtcars_2 can't be created because the first new variable doesn't exist. Then, the filter can't be done.
Is there a way to bring back the error "nature" to stop code run rather than just return a message and continue with the following code?
library(tidyverse)
sessionInfo()
#> R version 3.6.3 (2020-02-29)
#> Platform: x86_64-w64-mingw32/x64 (64-bit)
#> Running under: Windows 10 x64 (build 19044)
#>
#> Matrix products: default
#>
#> locale:
#> [1] LC_COLLATE=English_United States.1252
#> [2] LC_CTYPE=English_United States.1252
#> [3] LC_MONETARY=English_United States.1252
#> [4] LC_NUMERIC=C
#> [5] LC_TIME=English_United States.1252
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] forcats_0.5.0 stringr_1.4.0 dplyr_1.0.8 purrr_0.3.4
#> [5] readr_1.3.1 tidyr_1.0.2 tibble_3.1.6 ggplot2_3.3.0
#> [9] tidyverse_1.3.0
#>
#> loaded via a namespace (and not attached):
#> [1] tidyselect_1.1.2 xfun_0.30 haven_2.2.0 lattice_0.20-38
#> [5] colorspace_1.4-1 vctrs_0.4.1 generics_0.0.2 htmltools_0.5.2
#> [9] yaml_2.2.1 utf8_1.1.4 rlang_1.0.2 pillar_1.7.0
#> [13] glue_1.6.2 withr_2.5.0 DBI_1.1.0 dbplyr_1.4.2
#> [17] readxl_1.3.1 modelr_0.1.6 lifecycle_1.0.1 cellranger_1.1.0
#> [21] munsell_0.5.0 gtable_0.3.0 rvest_0.3.5 evaluate_0.15
#> [25] knitr_1.38 fastmap_1.1.0 fansi_0.4.1 highr_0.8
#> [29] broom_0.5.5 Rcpp_1.0.3 backports_1.1.5 scales_1.1.0
#> [33] jsonlite_1.6.1 fs_1.3.2 hms_0.5.3 digest_0.6.25
#> [37] stringi_1.4.6 grid_3.6.3 cli_3.2.0 tools_3.6.3
#> [41] magrittr_1.5 crayon_1.3.4 pkgconfig_2.0.3 ellipsis_0.3.2
#> [45] xml2_1.2.4 reprex_2.0.1 lubridate_1.7.4 assertthat_0.2.1
#> [49] rmarkdown_2.13 httr_1.4.2 rstudioapi_0.11 R6_2.4.1
#> [53] nlme_3.1-144 compiler_3.6.3
mtcars <- mtcars %>%
mutate(new_gear = geer^2)
#> Error in `mutate()`:
#> ! Problem while computing `new_gear = geer^2`.
#> Caused by error:
#> ! object 'geer' not found
mtcars <- mtcars %>%
mutate(new_carb = carb^2)
mtcars_2 <- mtcars %>%
mutate(new_x = new_gear + new_carb)
#> Error in `mutate()`:
#> ! Problem while computing `new_x = new_gear + new_carb`.
#> Caused by error:
#> ! object 'new_gear' not found
mtcars_2 %>%
filter(new_x > 15)
#> Error in eval(lhs, parent, parent): object 'mtcars_2' not found