haven 2.0.0

We’re pleased to announce that haven 2.0.0 is now on CRAN. haven enables R to read and write various data formats used by other statistical packages by wrapping the ReadStat C library written by Evan Miller. As always, you can find a detailed account of all the changes in this release in the Changelog.

Breaking changes

The biggest change is that labelled() and labelled_spss() now produce objects with class “haven_labelled” and “haven_labelled_spss”. This resolves a problematic clash with the labelled class defined by Frank Harrell’s Hmisc package.

Given Hmisc has been around much longer than haven (Hmisc’s oldest source archive on CRAN is from 2003), it makes sense that haven should be the one to make the change. This will require some changes to packages that use haven, but shouldn’t affect user code.

x1 <- haven::labelled(c(1, 1, 2), c(Grunt = 1, Sgt = 2),
                      label = "Army status")

class(x1)
#> [1] "haven_labelled"
x2 <- haven::labelled_spss(1:10, c(Good = 1, Bad = 8), na_range = c(9, Inf),
                           label = "Quality rating")

class(x2)
#> [1] "haven_labelled_spss" "haven_labelled"

Minor improvements

labelled() and labelled_spss() now support adding the label attribute to the resulting object (as seen in the code above). The label is a short, human-readable description of the object, and is now also used when printing, and can be easily removed using the new zap_label() function.

x1
#> <Labelled double>: Army status
#> [1] 1 1 2
#> 
#> Labels:
#>  value label
#>      1 Grunt
#>      2   Sgt

zap_labels(x1)
#> [1] 1 1 2
#> attr(,"label")
#> [1] "Army status"
Contents
Upcoming events
Bellevue WA
May 29 - June 1
Mara Averick, Garrett Grolemund, Javier Luraschi, Max Kuhn, and Kevin Kuo will be teaching workshops on text mining, the tidyverse, deep learning, and tidy modeling.
Toulouse, France
July 9
Jim Hester, Hadley Wickham, and Jenny Bryan are teaching a half-day tutorial on Package Development.