- Moved 'nanoparquet' to suggested instead of imports.
- Added 'parquet' file format to
libname()
function. - Added 'subset' parameter to
datastep()
function to filter the data on input. - Added DATA NULL capability to
datastep()
function.
- Fixed issue where
libname()
was failing on empty dataset.
- Fixed issue where
lib_write()
was not detecting changes to datasets in libname.
- Fixed bug on
libname()
when there are file names with multiple dots.
- Fixed bug on
datastep()
when running insource.all()
.
- Fixed bug on sas7bdat where class on date columns was being stripped.
- Fixed bug on
datastep()
where expression that was removing input dataset attributes (like labels).
- Fixed bug on
datastep()
when there are spaces in the column names and output() function is used. - Some improvements to
datastep()
performance. - Send message on writing "sas7bdat" that functionality is not available.
- Added where clause parameter to
libname()
. - Added automatic variables "first.X" and "last.X" for each by variable.
- 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 thev()
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.
- 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.
- 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.
- Added FAQ and Complete Examples
- Fixed bug on
dictionary()
when encountering datetime variable with multiple POSIX classes.
- 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.
- 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()
andlib_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 adatastep()
. - 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.
- Fixed bug on datastep when data frame/tibble had a single column.
- 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()
andlib_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.
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 librarydictionary()
function creates a data dictionarydatastep()
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:
lib_load()
: Loads a library into the workspacelib_unload()
: Unloads a library from the workspacelib_sync()
: Synchronizes the workspace with the library listlib_write()
: Writes library data to the file systemlib_add()
: Adds data to a librarylib_replace()
: Replaces data in a librarylib_remove()
: Removes data from a librarylib_copy()
: Copies a data librarylib_delete()
: Deletes a data librarylib_info()
: Returns a data frame of information about the librarylib_path()
: Returns the path of a data librarylib_size()
: Returns the size of the data library in bytesspecs()
: Create a collection of import specificationsimport_spec()
: Define an import specification for a file