libr 1.2.8 Unreleased

  • Fixed bug on datastep that sometimes was causing variables to lose their attributes.
  • Added “where” parameter to datastep.
  • Fix bug on datastep that was causing a single variable dataframe to be returned as a vector.
  • Cleared rownames on datastep exit.
  • Added “MaxChar” column to dictionary to hold the maximum number of characters for a data value in the column. This is different from “width” which is the user-defined, proscribed width. MaxChar is the actual width with no padding.
  • Added “rda” engine to libname.
  • Allowed single value NSE on drop, keep, and by parameter of datastep(). For multiple values, use the v() function.
  • Added output() function to datastep.
  • Improved datastep output column ordering. New variables were coming out in the opposite order they were added. Now they are better.
  • Added “set” parameter to datastep.
  • Added “merge”, “merge_by”, and “merge_in” parameter to datastep().
  • Fixed bug on datastep() rename.
  • Added/fixed documentation.
  • Updated logo.

libr 1.2.5 2022-08-08

  • BREAKING CHANGE: Removed the %eq% operator from this package, as it has been moved to the common package. A dependency on common has been added to the libr package so that the %eq% operator will be loaded and available. However, it is still possible some changes may be required to make the new location for the %eq% operator work properly.
  • Apply “format” parameter on datastep() to both input and output dataset.

libr 1.2.3 2022-06-23

  • Added “Rdata” option to libname() function engines.
  • Added “label” parameter to datastep() function.
  • Added “format” parameter to datastep() function.
  • Added lib_export() function to export a library to a different directory and file format.
  • Fixed bug on dictionary() that was causing a warning when there were no rows on the input data frame.

libr 1.2.2 2021-11-22

  • Added FAQ and Complete Examples
  • Fixed bug on dictionary() when encountering datetime variable with multiple POSIX classes.

libr 1.2.1 2021-10-09

  • Added covr and codecov
  • Fixed bug on dictionary() function that wasn’t showing width attribute.
  • Fixed bug on datastep() when applying attributes to a calculated variable.
  • Small documentation fixes.

libr 1.2.0 2021-06-29

  • Made package compatible to R version 3.6.
  • Added GitHub actions to test previous versions of R.
  • Increased performance of datastep() function generally. Benchmarks show about 40% improvement on average.
  • Added standard_eval parameter to libname() and lib_copy() functions to allow user to pass library names as a variable.
  • Added quiet parameter on libname() function to minimize console output if desired.
  • Added arrays parameter and dsarray() class to handle data step arrays. This functionality allows iteration across a list of variables inside a datastep().
  • Added attributes parameter and dsattr() class to handle data step attributes. This functionality allows the user to add attributes to datastep variables.
  • Fixed bug in datastep() where it was stripping column attributes on Base R data frames.

libr 1.1.3 2021-02-08

  • Fixed bug on datastep when data frame/tibble had a single column.

libr 1.1.1 2021-01-06

  • Integrated libr with logr. All library functions will automatically provide logging entries if the autolog feature of the logr package is enabled.
  • Added pkgdown site.
  • Added filter parameters to libname() and lib_load() functions. The filter parameter allows the user to specify which data from the library they want loaded into memory.
  • Changed default “na” parameter on csv export to empty string instead of NA to accommodate import into SAS. SAS couldn’t deal with the NA strings.
  • Fixed bug in dbf engine when outputting tibbles.
  • Fixed bug in %eq% operator when comparing objects with different numbers of classes.
  • Greatly improved performance of datastep, especially on grouped tibbles.

libr 1.0.1 2020-12-09

A package to create data libraries, data dictionaries, and the ability to perform a data step. The major functions are:

  • libname() function creates a data library
  • dictionary() function creates a data dictionary
  • datastep() function steps through data row-by-row
  • %eq% allows comparison of any two R objects without error

The packages also contains a variety of functions to manipulate data libraries: