read_blocks now returns blocks whose row.names are always a character vector
merge_dfs can now do inner, left, and right joins (in addition to the original capacity to do full joins)
Strings to be coerced into NA can now be specified to separate_tidy
The directory to write files to can now be specified to write_blocks
In read_blocks the metadata field name where block names are stored can now be specified via the block_name_header argument
There is a new vignette demonstrating how to work with multiple plates at once
Examples throughout all vignettes are now created with a make_example function for streamlined readability
read_blocks, read_wides, read_tidys, and make_design now provide better error messages when inputs are out of range
merge_dfs now provides a message with the number of dropped rows when drop = TRUE
Fix to bug in read_blocks where arguments for read.csv could not be passed via …
Fix to bug where merge_dfs would not drop incomplete cases unless both x and y were specified
Vignettes are now numbered so they are sorted correctly on CRAN
Various minor documentation improvements
Various backend improvements
The “Dealing with noise” vignette was rewritten to be much more concise
Other minor fixes for CRAN checks
Several fixes to bugs where calc_deriv had been returning incorrect values when trans_y = ‘log’ and either blank was specified or fitting was not used (i.e. window_width and window_width_n were both NULL)
Bug fixes and better warning messages in lag_time, especially relating to negative and infinite y-values following log-transformation
New function: solve_linear, which enables easy calculation of the slope between two points, or finding an additional point on a known line
New functions: which_min_gc, which_max_gc, min_gc, max_gc, and extr_val. These serve as versions of the base functions which.min, which.max, min, max, and [] (respectively) that have better defaults and handling of edge cases (often related to NA values) for growth curve analyses with dplyr::summarize
The auc function has two new arguments. ‘blank’ allows setting of a blank value, and ‘neg.rm’ gives users a choice in how to handle below-zero values
Various documentation improvements in both the manual and vignettes
There are planned changes for smooth_data with return_fitobject = TRUE: in a forthcoming version (the first version released after Sep 1, 2023), return_fitobject = TRUE will return a list of the object created by the underlying method directly. The current behavior modifies the generated object so that ‘fitted’ is always the first element and ‘residuals’ is always the second element
mdp() is a new function, it is simply a shorthand alias for make_designpattern()
Column numbers and row numbers in read_* and import_* functions can now be specified using a mix of base-10 numbers and base-26 Excel-style letters
separate_tidy now coerces strings of “NA” into NA values by default
Bug fix in make_design where NA values were being returned as “NA” (a string) instead of NA (missing value indicator) when output_format = ‘tidy’ and there were multiple design columns
Bug fix for make_design where pattern could not be just “1”
Bug fix where an error arose in calc_deriv when trans_y = ‘log’ was used with y values at or below 0. calc_deriv now handles the resulting NA/NaN values and raises a warning
Bug fixes in first_maxima and first_minima
Added warning when using make_design and it’s likely that setting a custom lookup_tbl_start was forgotten
Improved documentation for make_designpattern
New function lag_time to calculate lag time
New function doubling_time to convert per-capita growth rate into equivalent doubling time
smooth_data and calc_deriv now pass a warning when they are used outside of dplyr::mutate or on ungrouped data
make_design has better warning messages for common mistakes
Major edits to most of the vignettes
Various documentation improvements
The function first_peak has been renamed to first_maxima. first_peak will continue to function normally for a long time but with a warning to use first_maxima instead.
New functions have been added that are shortcuts for common use cases: first_minima and first_above
Bug fixes for find_threshold_crossings related to return_endpoints = TRUE
Bug fixes for find_threshold_crossings and find_local_extrema when input values are NA
Style and content improvements in vignettes
Help pages have been improved
The default behavior of write_blocks
has changed:
users are now required to specify the file
argument to be
either NULL
, a file name, or a vector of file names. For
the old default naming, specify file = NULL
. This change is
required for CRAN compatibility.
Minor changes to citation
Tweaked documentation for CRAN compatibility
Readability improvements to “Dealing with noise” vignette
Minor tweaks to several vignettes to reduce build time for CRAN compatibility
Improved clarity in vignettes, especially in the calculating derivatives and analyzing data pages
New vignette on dealing with noise in data
Small tweaks to other documentation
There is a new citation. Run citation(“gcplyr”) to see the new version
smooth_data methods moving-average and moving-median now accept a new smoothing parameter: window_width
find_local_extrema now has arguments window_width, window_width_n, and window_height (for naming consistency with smooth_data and calc_deriv arguments). Arguments width_limit, width_limit_n, and height_limit have been deprecated.
calc_deriv can now calculate derivatives using a linear fit over multiple data points determined by arguments window_width and/or window_width_n. For per-capita derivatives, y-values can be fit as-supplied and divided by the mid-point y-value, or can be fit after log-transformation
The gcplyr-workflow vignette was split into multiple smaller vignettes
A new data.frame is included with gcplyr: example_data_noiseless. This data is the same as example_data but does not include any of the simulated noise present in example_data.
Some small numerical changes to example_data values occurred on re-generation of example_data.
Packages mgcv and readxl are now Suggests (previously they were Imports), with errors thrown when they are not installed but are required for gcplyr functionality
find_local_extrema is now much faster
A new vignette section on running statistics
In the vignette, use of dplyr::mutate in the smoothing and derivatives sections
This is the first public release of gcplyr as an Open Beta.
Documentation should be complete, although there are planned additions to the vignette that have not been completed and included here.
Functions and arguments should largely be stabilized, although some small changes may occur going forward following user feedback.
Internal tests are mostly complete, although additional edge cases may be added as bugs are reported.