title: "Release notes for matsindf
"
output: html_document
Cite all releases with doi 10.5281/zenodo.5475443, which always resolves to the latest release.
NULL
in all named arguments to matsindf_apply()
caused an error.
Doing so now leads to a list of empty lists.collapse_to_matrices()
by a factor of 3.matsindf_apply()
where a
a data frame column with some named elements
and some unnamed elements led to the unnamed elements
yielding 0
or NULL
results after FUN
was applied.
The fix was to unname()
everything before calling
purrr::transpose()
.df_to_msg()
to make error reports easier to read.matrix.class
argument.
It will be removed soon.matrix.class
argument to matrix_class
.1
strings in the ...
argument of
matsindf_apply()
now extends to default arguments of FUN
.matsindf_apply()
enables better error and warning messages in many places.matsindf_apply()
.
It was a complete mess!
Hopefully, it is now easier to debug and maintain.matsindf_apply()
now correctly returns a list when lists are provided in the ...
argument.
Previously, it incorrectly returned a data frame.matsindf_apply()
now correctly disallows any unused arguments supplied in its ...
argument.
Previously, some unused argument situations were not flagged as errors,
despite documentation saying they would be.matsindf_apply()
now gives warning messages when an argument to FUN
cannot be found
in any of ...
, .dat
, or defaults to FUN
.
This condition may be OK, and the caller can suppress the warning by passing
.warn_missing_FUN_args = FALSE
to matsindf_apply()
.matsindf_apply()
now gives more descriptive error messages.matsindf_apply()
now allows more options for incoming data.matsindf_apply()
now tries really hard to deal with empty inputs,
falling back to returning the original input
unmodified (except possibly wrapped in a list()
) when
the input has zero rows (in the case of a data frame)
or zero length (in the case of lists).matsindf_apply()
.matrix
and Matrix
objects,
thereby enabling use of sparse matrices.
Use matsbyname::Matrix()
to create sparse matrices
as appropriate.mat_to_rowcolval()
now accepts Matrix
objects
in the .matrix
argument.rowcolval_to_mat()
gains a matrix.class
argument
that specifies whether a matrix
or a Matrix
should be created.Matrix
objects.verify_cols_missing()
from the Recca
package to matsindf
.
Those tests didn't belong in Recca
.expand_to_tidy()
.matrix_cols()
tells which columns contain matrices,
either in the any()
sense or in the all()
sense.matsindf_apply()
primer vignette
discusses how to handle heterogeneous arguments
types to FUN
.matsindf_apply()
when using string arguments to FUN
.matsindf_apply()
where the list returned from Map()
had names on each individual item.
The names on individual items caused problems
only when later calling a binary (or n-ary) matsbyname
function
with both a named and an unnamed list, because
those functions expect the same name structure.
The solution was to remove the names from each individual item
after calling Map()
and
before calling purrr::transpose()
.matsindf
for principal components analysis (PCA).testthat
v3.RCLabels
package out of matsbyname
.rowtypes
and coltypes
arguments now have special defaults
to enable calling collapse_to_matrices()
without specifying those arguments.collapse_to_matrices()
to check
whether NULL
values for rowtype
and coltype
arguments
are handled correctly.df_to_msg()
can assist with error messages.
df_to_msg()
was moved from the SEAPSUTWorkflow
package,
because it is generally useful.matsindf.Rmd
vignette now uses the keep
argument on matsbyname::hatize_byname()
.matsindf.Rmd
vignette.
Needed to supply the keep
argument on hatize_byname()
.matsindf_apply()
.matsindf_apply()
for
functions similar in form to those in Recca
.context()
calls at top of test files.NULL
.DF
in matsindf_apply()
.dplyr
,
all calls to dplyr::group_by()
now use .add
argument
instead of add
argument.dplyr
1.0.0.
Several tests in matsindf
assumed that some dplyr
functions returned
data.frame
s.
Now that many dplyr
functions return tibble
s, the matsindf
tests needed to be rewritten.
All tests pass vs. dplyr
0.8.5.
One warning remains when testing matsindf
with dplyr
1.0.0,
namely that the add
argument of group_buy()
is deprecated.
When dplyr
1.0.0 is released to CRAN,
I will convert add
to .add
, per the dplyr
authors' recommendation.data.frame()
has stringsAsFactors = TRUE
by default.
In R4.0.0, stringsAsFactors = FALSE
will be the default.
In one test ("small example works as expected"),
I was relying on the current behavior (stringsAsFactors = TRUE
).
That reliance has been removed so that this test will also pass under R4.0.0.matrix
objects now inherit from both matrix
and array
.
Thus, code should no longer assume that class(A)
returns an object of length 1 when A
is a matrix
.
So, I eliminated all instances of class(A) == "matrix"
in if
statements
in favor of inherits(A, "matrix")
.
See https://developer.r-project.org/Blog/public/2019/11/09/when-you-think-class.-think-again/index.html
for more details.group_by_everything_except()
to use a new helper function everything_except()
group_by_everything_except()
\dontrun{}
--> \donttest{}
in Roxygen examples matsindf
functions.:=
and .data
at a high level.magrittr
pipe at a high level.pkgdown
documentation.rowtypes
and coltypes
arguments to
expand_to_tidy
and collapse_to_matrices
functions are no longer NULL
.
Rather, they are "rowtypes
" and "coltypes
".matsindf_apply
primer to include sections on using matsindf_apply
with a data frame and programming.index_column
that ratios both numbers and matrices relative to an initial time.expand_to_tidy
now accepts a named list of matrices as input.matsindf_apply
now obtains named arguments from .DF
when a name in .DF
matches a name of an argument to FUN
.
This behavior is overridden by supplying a string argument in ...
of matsindf_apply
.matsindf_apply
now accepts a list as input when arguments are all strings.matsindf_apply
function.matsindf_apply
.matsbyname
package.Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.