Skip to content

distinct(): inconsistent behaviour with computed columns #3234

@mgirlich

Description

@mgirlich

Using a computed column works fine in distinct but when simply renaming a column it doesn't use this column for uniqueness and also doesn't rename the column.

library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

# works as expected
mtcars %>% 
  distinct(cyl2 = cyl + 1)
#>   cyl2
#> 1    7
#> 2    5
#> 3    9

# distinct not applied, column not renamed
mtcars %>% 
  distinct(cyl2 = cyl)
#>                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
#> Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
#> Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
#> Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
#> Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
#> Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
#> Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
#> Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
#> Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
#> Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
#> Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
#> Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
#> Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
#> Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
#> Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
#> Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
#> Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
#> Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
#> Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
#> Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
#> Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
#> Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
#> Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
#> AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
#> Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
#> Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
#> Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
#> Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
#> Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
#> Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
#> Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
#> Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
#> Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2

mtcars %>% 
  distinct(cyl1 = cyl + 1, cyl2 = cyl)
#>   cyl1
#> 1    7
#> 2    5
#> 3    9
Session info
devtools::session_info()
#> Session info -------------------------------------------------------------
#>  setting  value                       
#>  version  R version 3.4.0 (2017-04-21)
#>  system   x86_64, darwin15.6.0        
#>  ui       X11                         
#>  language (EN)                        
#>  collate  en_US.UTF-8                 
#>  tz       UTC                         
#>  date     2017-12-01
#> Packages -----------------------------------------------------------------
#>  package    * version    date       source                           
#>  assertthat   0.2.0      2017-04-11 CRAN (R 3.4.0)                   
#>  backports    1.1.1      2017-09-25 CRAN (R 3.4.2)                   
#>  base       * 3.4.0      2017-04-21 local                            
#>  bindr        0.1        2016-11-13 cran (@0.1)                      
#>  bindrcpp   * 0.2        2017-06-17 CRAN (R 3.4.0)                   
#>  compiler     3.4.0      2017-04-21 local                            
#>  datasets   * 3.4.0      2017-04-21 local                            
#>  devtools     1.13.4     2017-11-09 CRAN (R 3.4.2)                   
#>  digest       0.6.12     2017-01-27 CRAN (R 3.4.0)                   
#>  dplyr      * 0.7.4.9000 2017-11-22 Github (tidyverse/dplyr@fc66342) 
#>  evaluate     0.10       2016-10-11 CRAN (R 3.4.0)                   
#>  glue         1.2.0      2017-10-29 CRAN (R 3.4.0)                   
#>  graphics   * 3.4.0      2017-04-21 local                            
#>  grDevices  * 3.4.0      2017-04-21 local                            
#>  htmltools    0.3.6      2017-04-28 CRAN (R 3.4.0)                   
#>  knitr        1.17       2017-08-10 CRAN (R 3.4.1)                   
#>  magrittr     1.5        2014-11-22 CRAN (R 3.4.0)                   
#>  memoise      1.1.0      2017-04-21 CRAN (R 3.4.0)                   
#>  methods    * 3.4.0      2017-04-21 local                            
#>  pillar       0.0.0.9000 2017-11-22 Github (r-lib/pillar@5a082e1)    
#>  pkgconfig    2.0.1      2017-03-21 cran (@2.0.1)                    
#>  purrr        0.2.4      2017-10-18 cran (@0.2.4)                    
#>  R6           2.2.2      2017-06-17 cran (@2.2.2)                    
#>  Rcpp         0.12.13    2017-09-28 cran (@0.12.13)                  
#>  rlang        0.1.4      2017-11-05 cran (@0.1.4)                    
#>  rmarkdown    1.8        2017-11-17 CRAN (R 3.4.2)                   
#>  rprojroot    1.2        2017-01-16 CRAN (R 3.4.0)                   
#>  stats      * 3.4.0      2017-04-21 local                            
#>  stringi      1.1.6      2017-11-17 CRAN (R 3.4.2)                   
#>  stringr      1.2.0      2017-02-18 CRAN (R 3.4.0)                   
#>  tibble       1.3.4.9003 2017-11-22 Github (tidyverse/tibble@60281b3)
#>  tidyselect   0.2.3      2017-11-06 CRAN (R 3.4.2)                   
#>  tools        3.4.0      2017-04-21 local                            
#>  utils      * 3.4.0      2017-04-21 local                            
#>  withr        2.1.0      2017-11-01 cran (@2.1.0)                    
#>  yaml         2.1.14     2016-11-12 CRAN (R 3.4.0)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugan unexpected problem or unintended behavior

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions