tidyverse / haven

Read SPSS, Stata and SAS files from R
https://haven.tidyverse.org
Other
423 stars 115 forks source link

Always left align column names for labelled vectors #678

Closed gorcha closed 2 years ago

gorcha commented 2 years ago

This PR left aligns column names for labelled vectors, closing #676.

For e.g.

library(tibble)
library(haven)

x <- tibble(
  col1 = labelled(
    c(1, 5, 8, 9, 1, 8),
    labels = c(Yes = 1, No = 5, `Don't know` = 8, Refused = 9)
  ),
  col2 = labelled(
    c(1, 12, 123, 1234, 1, 123),
    labels = c("a" = 1, "bcd" = 123)
  ),
  col3 = labelled(
    c(1, 12, 123, 1234, 12345, 123456789),
    labels = c("a" = 1, "bcd" = 123)
  ),
  col4 = labelled(
    c("a", "ab", "abc", "abcd", "abcde", "abcdefghijklmno"),
    labels = c("a" = "ab", "bcd" = "abcde")
  )
)

### Before
x
#> # A tibble: 6 × 4
#>             col1       col2            col3 col4           
#>        <dbl+lbl>  <dbl+lbl>       <dbl+lbl> <chr+lbl>      
#> 1 1 [Yes]           1 [a]           1 [a]   a              
#> 2 5 [No]           12              12       ab [a]         
#> 3 8 [Don't know]  123 [bcd]       123 [bcd] abc            
#> 4 9 [Refused]    1234            1234       abcd           
#> 5 1 [Yes]           1 [a]       12345       abcde [bcd]    
#> 6 8 [Don't know]  123 [bcd] 123456789       abcdefghijklmno

### After

x
#> # A tibble: 6 × 4
#>   col1           col2       col3            col4           
#>   <dbl+lbl>      <dbl+lbl>  <dbl+lbl>       <chr+lbl>      
#> 1 1 [Yes]           1 [a]           1 [a]   a              
#> 2 5 [No]           12              12       ab [a]         
#> 3 8 [Don't know]  123 [bcd]       123 [bcd] abc            
#> 4 9 [Refused]    1234            1234       abcd           
#> 5 1 [Yes]           1 [a]       12345       abcde [bcd]    
#> 6 8 [Don't know]  123 [bcd] 123456789       abcdefghijklmno

Created on 2022-04-25 by the reprex package (v2.0.1)