Basic-stats is a command-line tool to perform basic statistics on a
tabular data stream. It supports performing multiple functions such as
mean, median, etc. on independent rows and/or columns during a single
pass on independent rows and/or columns. Memory use is trivial except
for functions that require loading the sample/population for sorting,
such as median.
OpenFst: Release 1.8
* Adds farencode (1.8.2)
* Deletes MakeArcMapFst in favor of CTAD on ArcMapFst (1.8.2)
* Removes `int64` (etc.) type shims in place of <cstdint> (1.8.2)
* Expands smart-pointer use (1.8.1)
* Expands std::string_view use (1.8.1)
* Removes SymbolTableReadOptions (1.8.1)
* Adds farconvert (1.8.0)
* Migration to C++17 (1.8.0)
* Updates Bazel build (1.8.0)
* Better handling for empty FARs (1.8.0)
* Improves to ExpectationWeight (1.8.0)
* Improves display of properties masks in pywrapfst (1.8.0)
* Internal reference-counting/smart pointer improvements (1.8.0)
* Deprecates PROJECT_(IN|OUT)PUT in favor of scoped enum ProjectType (1.8.0)
OpenFst: Release 1.7
* TokenType is now a scoped enum (1.7.8)
* pywrapfst is now Python 3-only (1.7.8)
* fstproject now has --project_type flag (1.7.8)
* BitmapIndex is now 2x faster for Select0/Select1 (1.7.8)
* Property testing is now thread-safe (1.7.7)
* Modernizes random generation (1.7.7)
* Adds MakeArcMapFst (1.7.6)
* Adds RealWeight and Real64Weight (1.7.6)
* Adds a new, idiomatic SymbolTable iterator interface (1.7.6)
* Improves symbol table lifetime management in pywrapfst (1.7.6)
* Improves the design of the FST class hierarchy in pywrapfst (1.7.6)
* Removes unnecessary template parameters in constructors (1.7.5)
* Converts RmEpsilonFstOptions from class to struct (1.7.5)
* Eliminates redundant checks in Minimize (1.7.5)
* CompactFst is now templated on Compactor rather than ArcCompactor (1.7.4)
* Removes harmful constexpr specifications in the FAR extension (1.7.4)
* Improved script API support for EncodeMapper (1.7.4)
* New header format for the EncodeMapper (1.7.4)
* Many cleanups to the n-gram extension (1.7.4)
* Improved C++17 compatibility shims (1.7.4)
* Overloads Arc constructors with default weight argument (1.7.3)
* Fixes RmEpsilon and Union property checking bugs (1.7.3)
* Makes Isomorphic more robust to nondeterminism (1.7.3)
* Adds default weight argument to SetFinal (1.7.3)
* Cleans up low-level logging (1.7.3)
* Adds power-weight mappers (1.7.3)
* Adds expander cache (1.7.3)
* Fixes bug with coinaccessible states in NaturalAStarEstimate (1.7.2)
* Optionally allows building with Bazel (1.7.2)
* Simplifies string printing interface (1.7.2)
* Marks weight converters const (1.7.2)
* Adds NoMatchComposeFilter (1.7.2)
* Removed static assertions that trigger bugs in GCC (1.7.1)
* Evaluates many weight operations at compile-time (1.7.1)
* Improved use of move semantics, especially in cache-backed FSTs (1.7.0)
* Adds configure-time test for float equality reflexivity (1.7.0)
* Removes volatile qualifiers from float weights (1.7.0)
* Protections for signedness in string compiler (1.7.0)
* Adds additional overloads to Equals (1.7.0)
* Clean-up to weight constructors (1.7.0)
OpenFst: Release 1.6
* Optimized label lookup in SymbolTable (1.6.9)
* Fixed HashMatcher issues with SetState() and Find() consistency (1.6.8)
* Fixed PROGRAM_FLAGS documentation string in binaries (1.6.8)
* Fixed handling of symbol tables in EpsNormalize (1.6.8)
* Fixed error reporting when FST arc type unknown (1.6.8)
* The first_path option to ShortestPath is now optimal for A* (1.6.7)
* Renames SymbolTable::kNoSymbol to kNoSymbol (1.6.7)
* Exposes PowerMapper to the scripting API (1.6.7)
* Fixes linking of the special SOs (1.6.7)
* Adds kShortestDelta for operations dependent on shortest-distance (1.6.6)
* Adds Python methods for (un)pickling and (de)serializing FSTs (1.6.6)
* Adds constructive variants of Invert and Project (1.6.6)
* Increases code sharing in MemoryPool/MemoryArena (1.6.6)
* Improves consistency of matcher FST ownership (1.6.6)
* Fixes error handling in HashMatcher (1.6.6)
* Adds non-trivial A* estimator class (1.6.6)
* Prevents unreachable code generation in libfstscript (1.6.5)
* Adds move constructors for non-trivial weight types (1.6.5)
* Standardizes method names for tuple weight types (1.6.5)
* Eliminates undefined behavior in weight hashing (1.6.5)
* Optimizes binary search in SortedMatcher (1.6.5)
* Adds SetWeight (1.6.5)
* Fixes typing error in Python FAR reader (1.6.4)
* Removes restriction that Prune argument have commutative weights (1.6.3)
* Improves configuration of CompositeWeight readers and writers (1.6.3)
* Improves accuracy of ShortestDistance summation (1.6.3)
* SetFinal now "moves" its weight argument (1.6.3)
* Exposes ArcIterator and EncodeMapper flags in Python (1.6.3)
* Properly sets return codes in FST binaries (1.6.3)
* Eliminates StringWeight macros (1.6.3)
* Finalizes most virtual method overrides (1.6.2)
* Adds float format support to FST drawing (1.6.1)
* Fixes missing includes of <fst/log.h> (1.6.1)
* Adds the "special" extension and the fstspecial binary; this is similar to
fstconvert but accepts arguments for specifying special labels (phi, rho,
and sigma) of FSTs (1.6.0)
* Exposes allow_negative_label option for Python symbol tables (1.6.0)
* Many classes and constants moved into an internal namespace (1.6.0)
* Extensive modernization for C++11 style (1.6.0)
* Adds Member method to SymbolTable (1.6.0)
* Adds HashMatcher (1.6.0)
OpenFst: Release 1.5
* Generalized epsilon normalization to non-functional case (1.5.0)
* Added multiple pushdown transducer (MPDT) support (1.5.0)
* Added general gallic (plus is union) semiring (1.5.0)
* Added p-subsequential determinization (1.5.0)
* Fixed missing Isomorphic components (1.5.0)
* Added FST compression extension (1.5.0)
* Added final method to matchers (1.5.0)
* Fixed various compiler issues (1.5.0)
* Fixed Isomorphic function (1.5.0)
* Added Python extension (1.5.0)
* Added UnionWeight (1.5.0)
* Added missing const qualification to (1.5.1):
- SymbolTableIterator access
- EncodeMapper writing to file
- EncodeMapper SymbolTable access
* Added TrivialComposeFilter for more efficient composition when one
of the arguments is epsilon-free (1.5.1)
* Added InputEpsilonMapper and OutputEpsilonMapper arc mappers (1.5.1)
* Added properties bits kUnweightedCycles and kWeightedCycles (1.5.1)
* Replaced internal custom reference-counting (RefCounter) with C++11 smart
pointers where possible, and fixed reference-counting bugs (1.5.1)
* When calling DeleteStates on a MutableFst with a shared impl, the impl
is set to a new empty impl rather than copying and deleting (1.5.1)
* Prepended Pdt to the Expand libraries and classes in the PDT
extension, and prepended MPdt to the Expand libraries and classes
in the MPDT extension, so that both can be used in the same compilation
unit (1.5.1)
* Added option to PDT Replace for compiling a strongly-regular RTN into a
bounded-stack PDT (1.5.1)
* Improved symbol table support for PDT Replace, including automatic
generation of parentheses symbols (1.5.1)
* Improvements to scripting API (1.5.1):
- Added methods for FST access and mutation
- Added additional checks for arc/weight compatibility
- WeightClass::One and WeightClass::Zero now require a specified weight
type at time of construction
- Improved VectorFstClass constructors
- Added linear-time check for cyclic dependencies in Replace
- Added EncodeMapperClass, a template-free box for an EncodeMapper
* Improvements to the binaries (1.5.1):
- Fixed no-op --precision flag to fstdraw (1.5.1)
- Fixed no-op --file_list_input flag to farcreate (1.5.1)
* Improvements to the Python extension (1.5.1):
- Adds methods for creating an empty mutable FST
- Adds methods for FST access via state and arc iteration
- Adds FST compilation from arclists (cf. fstcompile)
- Adds FST printing and drawing
- Adds FarReader and FarWriter classes.
* Consolidated Python extension into single module (1.5.2)
* FarReader's GetFst method now returns a pointer (1.5.2)
* Python add_arc now takes an Arc object (1.5.2)
* Fixed build flags for dlopen (1.5.2)
* Fixed FSTERROR macro (1.5.2)
* Scripting API and Python weight objects now support semiring arithmetic
(1.5.3)
* Mutation methods of the Python Fst object now support chaining (1.5.3)
* Adds optional minimization of non-deterministic FSTs (1.5.3)
* Adds check for error when opening files when compiling strings into FARs
(1.5.4)
* Prevents underflow when using LogProbArcSelector in random generation
(1.5.4)
* Adds routines for parsing string flags to the scripting API (1.5.4)
* Makes random weight generators a single template class (1.5.4)
* Makes weight Properties constexpr where possible (1.5.4)
* Adds RemoveSymbol method to SymbolTable (1.5.4)
OpenFst: Release 1.4
* Port to C++11 (1.4.0)
* Isomorphic function added (1.4.0)
* Disambiguate function added (1.4.0)
* Matcher interface augmented with Priority method
* Special matchers (rho/sigma/phi) can match special symbols
on both input FSTs in composition/intersection provided at each
state pair they only match one side (1.4.0)
* Added ExplicitMatcher to suppress implicit matches (e.g. epsilon
self-loops) (1.4.0)
* Linear{Tagger,Classifier}Fst extensions added (1.4.0).
* Generalized state-reachable to work when input is cyclic (so long as no
final state is in a cycle). This ensures label-reachable (and hence label
lookahead) works with cyclic input (1.4.0)
* Added Condense to build the condensation graph (SCCs condensed to single
states) of an FST (1.4.0).
* Added an option to Reverse to specify whether a super-initial state
should always be created (1.4.0).
* Fixed bugs in FirstCacheStore, PowerWeight, and StringCompiler (1.4.0).
* Changed SymbolTable to use faster data structure (1.4.0).
* Added 'min' disambiguation in determinizaton to keep only the minimum
output in a non-functional transducer when plus=min/max
(flag --disambiguate_output) (1.4.1)
* Compiler issues in linear-fst fixed (1.4.1)
OpenFst: Release 1.3
* Support for non-fatal exits on errors: (1.3.1)
- Added FLAGS_fst_error_fatal: FST errors are
fatal if true (default); o.w. return objects flagged as bad:
e.g., FSTs - kError
prop. true, FST weights - not a Member().
- Added kError property bit signifying bad FST
- Added NoWeight() method to FST weight requirements that returns
weight that is not a Member().
* Various improvements to the FAR extensions (1.3.1)
- a single FST is now a FAR type
- FLAGS_initial_symbols: Uses the symbol table from the
first FST in the archive for all entries"
- Input/output to standard input/output for some FAR and arc types
* --with-icu configuration option no longer needed (1.3.1)
* Improved flags usage esp. if use SET_FLAGS not SetFlags/InitFst (1.3.2)
* Added 'fst' as possible far writer type (1.3.2)
* phi matcher can now accept 0 as the phi label (1.3.2)
* Added ngram-fst extension (1.3.2)
* Improved performance of PDT composition (1.3.3)
* Memory-map support (1.3.3)
* Fixed cross-FST serialization issues (1.3.3)
* Fixed NGramFst off-by-one issue (1.3.3)
* farextract now allows one to specify a list of comma-separated keys,
including key ranges (1.3.3)
* Fixed bug in PDT replace that could cause close paren IDs to collide
with open paren IDs (1.3.4)
OpenFst: Release 1.2
* Added lookahead matching and filtering for faster composition
* Added EditFst for mutation of o.w. immutable FSTs
* Added script sub-namespace defining type FstClass, a non-templated
Fst<Arc> to hold the arc template type internally. This and FST
operations on it allow easier I/O and scripting at the cost of some
runtime dispatching.
* Added per-arc-iterator control of Fst caching.
* Added PowerWeight and Power Arc.
* Added SparsePowerWeight and SparsePowerArc (1.2.4)
* Added SignedLogWeight and SignedLogArc (1.2.4)
* Added ExpectationWeight and ExpectationArc (1.2.4)
* Added AStarQueue, PruneQueue and NaturalPruneQueue disciplines (1.2.6)
* Added Log64Weight and Log64Arc to FST library throughout, including
support throughout scripts/bins/dsos (1.2.8)
* Added delayed RandGenFst that outputs tree of paths weighted
by count (1.2.8)
* Added fstsymbols shell-level command
* Added total weight removal option to pushing
* Changed methods for symbol table mutation:
use MutableInputSymbols()/MutableOutputSymbols().
* Numerous efficiency improvements esp in composition, replace, and caching
* Made "fstmap" handle semiring conversion by adding "to_std", "to_log"
and "to_log64" as supported 'map_type' arguments (1.2.8).
* Made the destructive implementation of RmEpsilon skip over states
admitting no non-epsilon incoming transition (1.2.8).
* Fixed numerous bugs (1.2 through 1.2.9) including:
- improper types of some approximation deltas
- sub-optimal hashing functions
- issues in internal reuse of shortest distance
- hashing bug in FloatWeight
- bug in shortest path queue
- symbol table checksumming issues
- various C++ standards issues
- Visit() behavior when visitation aborted
- Decode() hash performance bug (1.2.1)
- EditFst::Copy(bool) method when the boolean parameter is true (1.2.7)
- SymbolTable memory leak in Invert() (1.2.8)
- Added escaping of " and \ in labels in fstdraw, needed for dot to
function properly (1.2.8)
- Fixed handling of final weight of start state in fstpush (1.2.8)
- Added FST_LL_FORMAT to fix 64-bit integer printf issues (1.2.9)
- Fixed missing <functional> includes (1.2.9)
- Fixed reused local variable names (1.2.9)
- Fixed passing string by reference in FstDraw args (1.2.9)
* Added extensions directories including:
- finite-state archive (FAR) utilities,
added stlist format supporting writing/reading to/from standard out/in
at the library-level (1.2.8)
- compact FSTs
- lookahead FSTs
- pushdown transducers (improved in 1.2.1 through 1.2.7).
* Added StateMap/StateMapFst; renamed Map/MapFst to ArcMap/ArcMapFst;
map/MapFst retained (but deprecated) (1.2.9)
* Deleted ArcSum() and ArcMerge; use StateMap w/ ArcSumMapper and
ArcUniqueMapper (1.2.9).
* Incremented version of ConstFst/CompactFsts to stop memory alignment
that fails on pipes. Made old version raises errors when read on
pipes (1.2.9).
* Improved determinize hash (1.2.9)
* Removed stdio uses (1.2.10)
* Fixed library ordering issues esp. with newer GNU build tools (1.2.10)
-Custom variable name for sum/prod, eg. sum(k=1, 10, k) (breaking change)
-Vectors and matrices
-Functions that take vectors: min, max, average, perms, sort,
-length
-Vector comprehensions (experimental)
-Logical and/or/not
-true/false keywords
-mod keyword
-Nested sums and integrals
-Allow piecewise without 'otherwise' branch
-Show estimated fractions when displaying results
-Error handling for built-in functions and operations
-Numerical equation solving using Newton's method
-Result formatted with spaces, eg. 100 000
-Slightly improved formatting of results when using the --precision flag
Remove duplicate line
Upstream changes:
Changes in Version 0.9-40
* bptest() now optionally also accepts a "weights" argument and processes
weighted "lm" objects correctly (suggested by Robert Gulotty).
* The degrees of freedom (df) in the default coeftest() method can now also
be a vector of the same length as the coefficients.
Changes in Version 0.9-39
o Small improvements in handling of "df" attribute in coeftest() methods.
o In case update() is called within the default waldtest() method, it tries
harder to evaluate this in the calling environment (reported by Vincent
Arel-Bundock). This is still not guaranteed to find the right data but
should be more robust than the previous implementation. To avoid any such
issues it is recommended to call waldtest(object1, object2) and fitted
model objects (and not just update formulas).
Changes in Version 0.9-38
o coeftest.default() now includes attributes for "nobs" and "logLik" provided
that nobs() and logLik() extractors are available. This is in order to
facilitate model summaries a la broom::glance for "coeftest" objects
(suggested by Grant McDermott). The attributes can be extracted again
from the coeftest object with nobs() and logLik(), respectively.
o Optionally, the entire original model object x is saved as an attribute
"object" in coeftest(x, save = TRUE). Like nobs/logLik above, this should
also facilitate model summaries.
o waldtest.default() is stricter about detecting non-nestedness of models,
e.g., when under the alternative variables are added but the intercept
dropped.
o waldtest.lm() now uses . ~ 0 as the default reference model if waldtest(object)
tests an object without intercept (suggested by Kevin Tappe).
Upstream changes:
backports 1.4.1
Patched ...names() to match the new implementation in r-devel (svn rev 81283).
backports 1.4.0
Added paste() with support for argument recycle0 for R versions prior to 4.0.1.
Added paste0() with support for argument recycle0 for R versions prior to 4.0.1.
Added backport for ...names() for R versions prior to 4.1.0.
backports 1.3.0
Added backport for stopifnot() for R versions prior to 4.0.0.
Adapted list2DF() to new behaviour introduced in r81038: the inputs are not recycled anymore to common length. Instead, an error is thrown.
It failed with GCC too. There is some bad interaction with py-numpy,
probably related to patch-numpy_core_include_numpy_npy__common.h.
Unbreak the build until I have time to investigate this.
py-numpy-1.22.4's symbol check mechanism does not work for NetBSD
and the other platforms, because gcc and clang calculate trivial math
functions, for example, log1pl() and expm1l(), with immediate arguments,
for example 0. So compiling 'log1pl(0)' is always successful
even if -lm is not added to the compiler's commandline arguments.
Use GNU autotools style check with ugly workaround.
I have no idea about WASM case. However current mechanism will
not work as expected.
Bump PKGREVISION.
Changes in Version 1.8-10
o The transform() method now internally uses a list of zoo series (as opposed
to a data.frame of numeric variables, as used in previous versions). This
means that the transformations can really operate on full zoo series.
o Added MATCH() methods for classes "Date", "POSIXct", and "POSIXlt", all
of which essentially match the underlying numeric vector (suggested by
Kurt Hornik).
o In zooreg() the "ts.eps" argument is now also used (in squares) as the
tolerance in the all.equal() comparisons used to determine the underlying
regular time grid.
1.22.4:
TYP, BUG: Fix ``np.lib.stride_tricks`` re-exported under the...
TST: Bump mypy from 0.931 to 0.940
MAINT: Explicitly re-export the types in ``numpy._typing``
MAINT: Specify sphinx, numpydoc versions for CI doc builds
BUG: Fix typos
ENH, BLD: Fix math feature detection for wasm
MAINT: Fix failing simd and cygwin tests.
MAINT: Fix failing Python 3.8 32-bit Windows test.
BUG: add linux guard
BUG: Allow legacy dtypes to cast to datetime again
BUG: Make mmap handling safer in frombuffer
BUG: Stop using PyBytesObject.ob_shash deprecated in Python 3.11.
ENH: Introduce numpy.core.setup_common.NPY_CXX_FLAGS
BUG: Ensure compile errors are raised correclty
BUG: Fix segmentation fault
MAINT: Update doc requirements
MAINT: Mark ``npy_memchr`` with ``no_sanitize("alignment")`` on clang
DOC: Proposal - make the doc landing page cards more similar...
MAINT: Update Cython version to 0.29.30.
BUG: Fix GCC error during build configuration
REL: Prepare for the NumPy 1.22.4 release.
MAINT: Skip tests that fail on PyPy.
# dplyr 1.0.9
* New `rows_append()` which works like `rows_insert()` but ignores keys and
allows you to insert arbitrary rows with a guarantee that the type of `x`
won't change (#6249, thanks to @krlmlr for the implementation and @mgirlich
for the idea).
* The `rows_*()` functions no longer require that the key values in `x` uniquely
identify each row. Additionally, `rows_insert()` and `rows_delete()` no
longer require that the key values in `y` uniquely identify each row. Relaxing
this restriction should make these functions more practically useful for
data frames, and alternative backends can enforce this in other ways as needed
(i.e. through primary keys) (#5553).
* `rows_insert()` gained a new `conflict` argument allowing you greater control
over rows in `y` with keys that conflict with keys in `x`. A conflict arises
if a key in `y` already exists in `x`. By default, a conflict results in an
error, but you can now also `"ignore"` these `y` rows. This is very similar to
the `ON CONFLICT DO NOTHING` command from SQL (#5588, with helpful additions
from @mgirlich and @krlmlr).
* `rows_update()`, `rows_patch()`, and `rows_delete()` gained a new `unmatched`
argument allowing you greater control over rows in `y` with keys that are
unmatched by the keys in `x`. By default, an unmatched key results in an
error, but you can now also `"ignore"` these `y` rows (#5984, #5699).
* `rows_delete()` no longer requires that the columns of `y` be a strict subset
of `x`. Only the columns specified through `by` will be utilized from `y`,
all others will be dropped with a message.
* The `rows_*()` functions now always retain the column types of `x`. This
behavior was documented, but previously wasn't being applied correctly
(#6240).
* The `rows_*()` functions now fail elegantly if `y` is a zero column data frame
and `by` isn't specified (#6179).
# dplyr 1.0.8
* Better display of error messages thanks to rlang 1.0.0.
* `mutate(.keep = "none")` is no longer identical to `transmute()`.
`transmute()` has not been changed, and completely ignores the column ordering
of the existing data, instead relying on the ordering of expressions
supplied through `...`. `mutate(.keep = "none")` has been changed to ensure
that pre-existing columns are never moved, which aligns more closely with the
other `.keep` options (#6086).
* `filter()` forbids matrix results (#5973) and warns about data frame
results, especially data frames created from `across()` with a hint
to use `if_any()` or `if_all()`.
* `slice()` helpers (`slice_head()`, `slice_tail()`, `slice_min()`, `slice_max()`)
now accept negative values for `n` and `prop` (#5961).
* `slice()` now indicates which group produces an error (#5931).
* `cur_data()` and `cur_data_all()` don't simplify list columns in rowwise data frames (#5901).
* dplyr now uses `rlang::check_installed()` to prompt you whether to install
required packages that are missing.
* `storms` data updated to 2020 (@steveharoz, #5899).
* `coalesce()` accepts 1-D arrays (#5557).
* The deprecated `trunc_mat()` is no longer reexported from dplyr (#6141).
Changes to Version 3.0-13
o Handle singularities better in Anova.mlm() (suggestion of Marius Barth).
o Fixed error reporting in logit() (bug reported by Collin Erickson).
o Added pt.cex and cex sub-arguments to legend argument of
scatterplotMatrix() (implicit suggestion of Duncan Mackay).
o New vif.lm() method with options for handling linear models with interactions.
o Fixed bug in cooks.distance.influence.lme() (in effect, incorrect
division by the error variance twice rather than once), and a sign
error in dfbeta.influence.lme() and dfbetas.influence.lme()
(following report by Ben Bolker).
o Added an error.df argument to the default methods of
linearHypothesis() and Anova() for computing F-tests; if the
argument is unspecified, then df.residual() is applied to the model,
and if df.residual() returns NULL or NA, then an asymptotic
chi-square test is substituted for the F-test (in response to a
report by Adrian Olszewski that Anova() fails for gls models when an
F-test is requested).
Changes to Version 3.0-12
o The 'rio` package is now suggested, not required. To use the
Import() and Export() functions users may need to install rio using
install.packages("rio")
o hccm() now reports an interpretable error, except for type = "hc0"
or "hc1", when there are cases with hatvalues = 1 (following problem
reported by Peng Ding).
o Fix bug in rownames in dfbetasPlots.lm() (reported by Shu Fai
Cheun).
o Package 'rio' was moved from Imports to Suggests. Both Import()
and Export() now check for the availability of 'rio' first and
report an error otherwise.
# Insight 0.17.1
## New supported model classes
* `deltaMethod` (*car*), `marginaleffects`, `marginaleffects.summary`
(*marginaleffects*)
## General
* `get_predicted()` now supports models of class `iv_robust` and `ivreg`.
* For `get_predicted()`, when both `type` and `predict` are given, `type`
will overwrite `predict`. Note that this will print a message, because
`predict` is the preferred argument.
* `get_varcov()` gains `vcov` and `vcov_args` arguments, to specify the
variance-covariance matrix used to compute uncertainty estimates (e.g., for
robust standard errors).
* `get_loglikehood()` improved handling of models from package *estimator*.
## Bug fixes
* Fixed bug in `get_data()` for model objects whose data needs to be recovered
from the environment, and where the data name was a reserved word (e.g., named
like an R function).
* The matrix returned by `get_varcov()` for models of class *bife* now returns
row and column names.
* `find_offset()` did not find offset-terms for `merMod` objects when the
offset was specified as `offset` argument in the function call.
# insight 0.17.0
## Breaking changes
* Arguments `vcov_estimation` and `vcov_type` in `get_predicted()`,
`get_predicted_se()` and `get_predicted_ci()` are replaced by `vcov` and
`vcov_args`, to have a more simplified and common interface to control
robust covariance matrix estimation.
## General
* Improved performance for various functions, in particular `get_data()` and
`model_info()`.
## New functions
* To check for names: `object_has_names()` and `object_has_rownames()`
* To work with lists: `is_empty_object()` and `compact_list()`
* To work with strings: `compact_character()`
* Further utility functions are `safe_deparse()`, `trim_ws()` and `n_unique()`.
## Changes to functions
* `export_table()` now better checks for invalid values of caption and footer
for tables in HTML format, and silently removes, e.g., ansi-colour codes that
only work for text-format.
* `get_data.coxph()` returns the original data frame instead of data with type
coercion.
* `get_loglikelihood()` gets a `check_response` argument, to check if a model
has a transformed response variable (like `log()` or `sqrt()` transformation),
and if so, returns a corrected log-likelihood.
* `get_modelmatrix()` now supports *BayesFactor* models.
* `get_loglikelihood()` and `get_df()` now support more model classes.
* `get_predicted()` was improved for multinomial models from *brms*.
* `get_variance()` was improved to cover more edge cases of (more complex)
random effect structures.
* `get_data()` now includes variables in the returned data frame that were
used in the `subset` argument of regression functions (like `lm()`).
* In some edge cases, where `get_data()` is unable to retrieve the data that
was used to fit the model, now a more informative error is printed.
* `ellipses_info()` now also accepts a list of model objects, is more stable
and returns more information about the provided models (like if all fixed
or random effects are the same across models, if all models are mixed models
or null-models, etc.)
* `check_if_installed()` now works interactively and lets the user prompt
whether to automatically update or install packages.
## Bug fixes
* Fixed incorrect column name conversion in `standardize_names()` for certain
columns returned by `broom::glance()`.
* Fixed issue with correctly detecting Tweedie-models in `model_info()`.
* Fixed issue with `get_datagrid()` for *brms* models with monotonic factors.
* Fixed issue in `find_formula()` when argument `correlation` was defined
outside of `lme()` and `gls()` (@etiennebacher, #525).
* Fixed issue with `get_data()` when back-transforming data from predictors
that used `cos()`, `sin()` or `tan()` transformations.
# insight 0.16.0
## New functions
* `get_datagrid()`, to generate a reference grid, usually used when computing
adjusted predictions or marginal means from regression models.
## Changes to functions
### `get_predicted()`
* `get_predicted()` was revised. Beside the four core options for the `predict`
argument, it is now also possible to use any value that is valid for the
model's `predict()` method's `type` argument.
* `get_predicted()` now supports more models (e.g., from packages like
_GLMMadaptive_ or _survival_).
* `get_predicted()` is now more robust when calculating standard errors of
predictions.
### Other functions
* `get_statistic()` and `find_statistic()` now support *htest* objects.
## General
* Various minor improvements.
# insight 0.15.1
## General
* Improved speed performance, especially for `get_data()`.
## Changes to functions
* `get_data()` for `coxph` models now returns the original factor levels for
variables transformed with `strata()` inside formulas.
# insight 0.15.0
## Breaking changes
* Data management functions (like `reshape_longer()`, or `data_match()`) have
been moved to the *datawizard* package.
* `get_data()` no longer returns factor types for numeric variables that have
been converted to factors on-the-fly within formulas (like `y ~ as.factor(x)`).
Instead, for each numeric variable that was coerced to factor within a formula
gets a `factor` attribute (set to `TRUE`), and the returned data frame gets
a `factors` attribute including all names of affected variables.
## New supported model classes
* Support for `bfsl` (*bfsl*)
## New functions
* New `standardize_column_order()` function can be used to standardize the
column order in output dataframes.
## General
* Improved speed performance for some functions.
* Improved handling of table captions and footers in `export_table()`. See also
the new vignette on exporting data frames into human readable tables here:
https://easystats.github.io/insight/articles/export.html
* Revised `width` argument in `export_table()`, which now allows to set
different column widths across table columns. See examples in
`?export_table`.
* `export_table()` gets a `table_width` argument to split wide tables into
two parts.
* `get_varcov()` for `MixMod` (package *GLMMadaptive*) was revised, and now
allows to return a robust variance-covariance matrix.
* Added more `get_df()` methods.
## Bug fixes
* Fixed issues with manual sigma computation to handle dispersion models in
`get_sigma()`.
* Fixed issue in `find_formula()` for `BayesFactor::lmBF()` with multiple random
effects.
* Fixed issue in `get_parameters.BFBayesFactor()` with wrong sign of difference
estimate for t-tests.
* Argument `width` in `format_value()` was ignored when formatting integer
values and `protect_integers` was set to `TRUE`.
# insight 0.14.5
## New functions
* `find_transformation()` and `get_transformation()` to find or get any function
that was used to transform the response variable in a regression model.
## General
* Improved support for models of class `sampleSelection`.
* Improved documentation.
* `get_modelmatrix()` now supports: `rms::lrm`
* `get_predicted()` supports: `MASS::polr`, `MASS::rlm`, `rms::lrm`, `fixest`,
`bife::bife`, `ordinal::clm`.
* `get_predicted()` standard errors are often much faster to compute.
* `get_predicted()` supports models with "grouped" or "level" outcomes (e.g.,
multinomial logit).
* `get_predicted()` handles factors better.
* Improved documentation
## Changes to functions
* `check_if_installed()` gains a `quietly` argument, if neither stopping nor a
warning message for non-installed packages is requested.
* `get_predicted()`'s `predict` argument now accepts these values: "link",
"expectation", "prediction", "classification", or NULL.
* `get_predicted()` accepts `predict=NULL`, which allows users to push a `type`
argument through the `...` ellipsis, forward to the `predict()` method of the
modelling package.
## Bug fixes
* Fixed issue with parameter names from *emmeans* objects in
`get_parameters()`.
* Fixed issues with unknown arguments in `get_predicted()`.
(inst/NEWS.Rd or https://cran.r-project.org/web/packages/robustbase/news.html)
NEWS R Documentation
News for R Package robustbase
CHANGES in robustbase VERSION 0.95-0 (2022-04-02, svn r894)
BUG FIXES
* huberM(x, k) now also works in small sample cases with +/-Inf, e.g. for x =
c(-Inf, 1).
NEW FEATURES
* New huberize() utility, notably by default used in mc().
* mc() now by default uses doScale=FALSE in order to guarantee convergence
also in extreme cases when used together with new c.huberize = 1e11. Both
are not back compatible but clearly better in extreme cases, as assessed by
Lukas Graz' BSc thesis. Note that the behavior of the new default doScale=
FALSE has been amended in the C code to be more compatible in its eps
checks with (the previous default) doScale=TRUE.
Lastly, a message() is printed currently, at most once per R session,
whenever mc() is called without an explicit specification of doScale=*,
alerting users to the changed default. This message can be turned off by
setting options(mc_doScale_quiet = TRUE).
* New dataset data(x30o50) as an example of potentially problematic data, not
just for mc().
Misc
* rather "truncating" +/-Inf to <large>, use NA.OK = TRUE in Qn() and Sn()'s
.C() call.
* Our C code no longer uses the DOUBLE_* constants from S, but rather
standard <float.h>.
CHANGES in robustbase VERSION 0.93-9 (2021-09-27, svn r888)
BUG FIXES
* Qn(x) and Sn(x) gain an na.rm = FALSE option and now work when x has NAs
and contains +/- Inf.
Misc
* No longer include 'Rdefines.h' as it is somewhat deprecated.
* In 'src/lmrob.c' add USE_FC_LEN_T and use FCONE rather than the older FCLEN
approach.
CHANGES IN VGAM VERSION 1.1-6
NEW FEATURES
o Most of the GAIT regression code have new arguments 'd.mlm'
and 'd.mix' but mainly only the dpqr-type functions work!
Some other functions should work such as gaitdpoisson() and
dgaitplot(). Also, is.deflated() and goffset() are new.
o New family function: gaitdnbinomial().
o Upgraded family functions: gaitpoisson() becomes gaitdpoisson(),
gaitlog() becomes gaitdlog(), gaitzeta() becomes gaitdzeta().
o New generic and/or methods functions: KLD(), Pheapseep().
o Some colours are pre-defined for GAITD regression, and the default
colour scheme has changed.
o trim.constraints() has a new 'intercepts = TRUE' argument.
o Many family functions have a 'dpqrfun' component in the @infos slot.
Useful to tie in the modelling function with its density, etc.
o binormal() has a new 'rho.arg' argument.
o Some link functions handle deriv = 4: e.g., loglink(), logitlink().
o vglmfit@misc$history gives the convergence history.
o Improvements to clogloglink() at the boundary 1.
o hdeff.vglm() has a new argument 'theta0'.
o wald.stat() cleaned up internally.
o Tested okay on R 4.1.2.
BUG FIXES and CHANGES
o All GAIT regression code has arguments 'alt.mlm' changed to
'a.mlm', 'inf.mix' changed to 'i.mix', etc. Colours have changed.
[dpqr]gaitpois() have been renamed to [dpqr]gaitdpois(),
and gaitpoisson() to gaitdpoisson().
o [dpqr]zanegbin() no longer supports argument 'prob'.
o hdeff() makes a recursive call if any NAs are in the answer and
fd.only == FALSE. So the answer should then be a 'proper' one.
o Code involving anova() for VGLMs/VGAMs changed to avoid an
error when loading in \pkg{semTools}.
o spikeplot(..., use.table = TRUE) failed wrt x.use and y.use.
o vcov() slightly faster for "vglm" objects. Thanks to Frank Harrell
for comments that led to this.
o linkfun.vglm() changed to linkfunvglm().
CHANGES IN VGAM VERSION 1.1-5
NEW FEATURES
o New functions: meangait(), spikeplot(), trim.constraints().
o iam(i, 1:M, M = M) now works, for selecting a whole row,
and similarly for a column.
o Tested okay on R 4.0.3.
BUG FIXES and CHANGES
o gait[log,poisson,zeta](): arguments llambda.[ai] and lshape.[ai]
equal llambda.p and lshape.p by default. This means only one
argument needs be assigned in order to change them all.
o [dpqr]genpois[12]() has argument 'mean' changed to 'meanpar'.
o gait[log,zeta]() bug fixed wrt missing 'allprobs'.
o qfoldnorm() now uses the bisection method. Thanks to
Mauricio Romero for a suggestion that led to this.
o gait[log,poisson,zeta]() compute the sandwich formula
explicitly for the working weights; this has speed gains.
Their @deriv avoids nested for() loops too.
Their initial value grids have become coarser.
o Functions moved to VGAMdata 1.1-5: yip88, bellff(dr), tikuv(dpqr).
CHANGES IN VGAM VERSION 1.1-4
NEW FEATURES
o Functions score.stat() and wald.stat() offer greater flexibility
by some new arguments, and 'as.summary' changed to 'orig.SE'.
o Influence() computes the influence functions of a "vglm" object.
o Methods functions hdeff.matrix() and hdeff.numeric() are new.
o Family function slot genpoisson()@ weight was updated with
the EIM derived by Easton Huch, and after major changes,
genpoisson() was renamed to genpoisson0().
o New functions: [dpqr]gaitnbinom(), [dpqr]gaitgenpois[012](),
[dpqr]gaitbinom(), dgaitplot(), plotdgait.vglm(), Trunc().
o New family functions: genpoisson[12](dpqr), gaitpoisson()
so that gaitpoisson.mix() and gaitpoisson.mlm() were removed,
gaitlog() so that gaitlog.mix() was removed,
gaitzeta() so that gaitzeta.mix() was removed.
o Tested okay on R 4.0.3.
BUG FIXES and CHANGES
o Deprecated: dgenpois(), genpoisson(), [dpqr]gaitnbinom.m[ix,lm]().
gatnbinomial.m[ix,lm](dpqr), [dpqr]gaitbinom.mlm(),
gaitpoisson.mix(), gaitpoisson.mlm(), gabinomial.mlm(),
gtbinomial().
o 'lhs.prob' changed to 'cdf.max.s'.
o Argument changes for all GAIT code, e.g., 'alter' changed to
'alt.mix' or 'alt.mlm', 'byrow.arg' to 'byrow.ai', etc.
o Functions moved to VGAMdata 1.1-4: oalog, oilog, otlog,
oapospois, oipospois, otpospois, oazeta, oizeta, otzeta, oizipf,
oiposbinomial(dpqr), [dpqr]posbinom, [dpqr]pospois, [dpqr]posnegbin.
o Pearson residuals no longer printed by default in a summary
of a "vglm" object: presid = FALSE.
o Some changes made to plot(vgam()) code for changes in R 4.0.0,
especially if the covariate is a character/factor.
Now avoids "coercing argument of type 'double' to logical" warning.
o negbinomial(lmu = "nbcanlink") had an error relating to "newemu".
CHANGES IN VGAM VERSION 1.1-3
NEW FEATURES
o New functions: [dpqr]gaitpois(), [dpqr]gaitlog(), [dpqr]gaitzeta(),
dextlogF().
o New family functions: gatnbinomial.mix(dpqr),
gaitlog.mix(dpqr), gaitpoisson.mix(dpqr), gaitpoisson.mlm(dpqr),
extlogF1(d).
o New generic and/or methods functions: altered(),
inflated(), truncated(), specialsvglm(),
fix.crossing(), is.crossing().
o Coef.vlm() handles models with contiguous "multilogitlink"s,
e.g., gaitpoisson.mlm().
o get.offset() is now defined as a generic function (returns the
n x M matrix of offsets by default).
o Some .f files have been pruned of unnecessary code.
o New data set: V2.
o Tested okay on R 4.0.0.
BUG FIXES and CHANGES
o Another attempt to .Deprecated() all link function names
which do not end in "link", e.g., loglink() replaces loge(),
logitlink() replaces logit().
o gatpoisson.mix() (now merged into gaitpoisson.mix())
reorders its linear/additive predictors and now handles
length(alter) == 0 (default, so equivalent to poissonff())
and length(alter) == 1.
Ditto for gatnbinomial.mlm(), etc.
o Three argument mismatches found in .f and .c code.
o qlog() and qyules() buggy wrt interval selection prior to
applying bisection.
o 'Rank mismatches' flagged by gfortran10 fixed, by not
calling two subroutines.
o [dpqr]gaitpois.mlm() and [dpqr]gaitpois.mix() have been combined into
[dpqr]gaitpois().
CHANGES IN VGAM VERSION 1.1-2
NEW FEATURES
o New generic and/or methods functions: add1.vglm(),
dfterms(), drop1.vglm(), extractAIC.vglm(),
rootogram4vglm() [based on \pkg{countreg}],
step4vglm().
o New family functions: gabinomial.mlm(), gatnbinomial.mlm(dpqr),
gatpoisson.mix(dpqr), gatpoisson.mlm(dpqr).
o New functions: [dpqr]zipfmb(),
[dpqr]gaitbinom.mlm(), [dpqr]gaitnbinom.mlm(),
[dpqr]gaitpois.mlm(), [dpqr]gaitnbinom.mix(),
[dpqr]gaitpois.mix().
Note that the naming conventions have changed somewhat, especially
regarding the negative binomial distribution.
o Decommissioned functions:
gapoisson(), gtpoisson(),
[dpqr]gabinom(), [dpqr]gapois(),
[dpqr]gibinom(), [dpqr]gipois(),
[dpqr]gtbinom(), [dpqr]gtpois().
o eta2theta() should be able to handle links for, e.g.,
gatpoisson.mlm(), gibinomial().
o posbernoulli.t() has a 'type.fitted' argument.
o gtpoisson.mlm() supports type.fitted = "Pobs.a",
gipoisson.mlm() supports type.fitted = "Pstr.i".
o New data set: backPain2.
o Cleve Moler added to DESCRIPTION as a contributor, to reflect
the use of LINPACK.
o Tested okay on R 3.6.1.
BUG FIXES and CHANGES
o Use of old link function names now result in a call to
.Deprecated(), except for a selected few such as logit() and
probitlink()---this will only be allowed for a limited time.
o negbinomial()@initialize bug fixed for "nbcanlink()" and
multiple responses; thanks to Victor Miranda.
o cens.poisson() gave a warning upon a summary().
Thanks to Jens Heumann for picking this up.
o bisection.basic() returns a warning, not an error, if
it cannot find an interval which covers the root.
o Rank() has an improved implementation and documentation.
o anova.vglm() had some bugs---thanks to Thamron Keowmani for
finding them.
o posnormal() failed when 'constraints' was inputted---thanks
to Michael Zamo for picking this up.
o Improvements to yules(dq).
# vctrs 0.4.1
* OOB errors with `character()` indexes use "that don't exist" instead
of "past the end" (#1543).
* Fixed memory protection issues related to common type
determination (#1551, tidyverse/tidyr#1348).
# vctrs 0.4.0
* New experimental `vec_locate_sorted_groups()` for returning the locations of
groups in sorted order. This is equivalent to, but faster than, calling
`vec_group_loc()` and then sorting by the `key` column of the result.
* New experimental `vec_locate_matches()` for locating where each observation
in one vector matches one or more observations in another vector. It is
similar to `vec_match()`, but returns all matches by default (rather than just
the first), and can match on binary conditions other than equality. The
algorithm is inspired by data.table's very fast binary merge procedure.
* The `vec_proxy_equal()`, `vec_proxy_compare()`, and `vec_proxy_order()`
methods for `vctrs_rcrd` are now applied recursively over the fields (#1503).
* Lossy cast errors now inherit from incompatible type errors.
* `vec_is_list()` now returns `TRUE` for `AsIs` lists (#1463).
* `vec_assert()`, `vec_ptype2()`, `vec_cast()`, and `vec_as_location()`
now use `caller_arg()` to infer a default `arg` value from the
caller.
This may result in unhelpful arguments being mentioned in error
messages. In general, you should consider snapshotting vctrs error
messages thrown in your package and supply `arg` and `call`
arguments if the error context is not adequately reported to your
users.
* `vec_ptype_common()`, `vec_cast_common()`, `vec_size_common()`, and
`vec_recycle_common()` gain `call` and `arg` arguments for
specifying an error context.
* `vec_compare()` can now compare zero column data frames (#1500).
* `new_data_frame()` now errors on negative and missing `n` values (#1477).
* `vec_order()` now correctly orders zero column data frames (#1499).
* vctrs now depends on cli to help with error message generation.
* New `vec_check_list()` and `list_check_all_vectors()` input
checkers, and an accompanying `list_all_vectors()` predicate.
* New `vec_interleave()` for combining multiple vectors together, interleaving
their elements in the process (#1396).
* `vec_equal_na(NULL)` now returns `logical(0)` rather than erroring (#1494).
* `vec_as_location(missing = "error")` now fails with `NA` and `NA_character_`
in addition to `NA_integer_` (#1420, @krlmlr).
* Starting with rlang 1.0.0, errors are displayed with the contextual
function call. Several vctrs operations gain a `call` argument that
makes it possible to report the correct context in error messages.
This concerns:
- `vec_cast()` and `vec_ptype2()`
- `vec_default_cast()` and `vec_default_ptype2()`
- `vec_assert()`
- `vec_as_names()`
- `stop_` constructors like `stop_incompatible_type()`
Note that default `vec_cast()` and `vec_ptype2()` methods
automatically support this if they pass `...` to the corresponding
`vec_default_` functions. If you throw a non-internal error from a
non-default method, add a `call = caller_env()` argument in the
method and pass it to `rlang::abort()`.
* If `NA_character_` is specified as a name for `vctrs_vctr` objects, it is
now automatically repaired to `""` (#780).
* `""` is now an allowed name for `vctrs_vctr` objects and all its
subclasses (`vctrs_list_of` in particular) (#780).
* `list_of()` is now much faster when many values are provided.
* `vec_as_location()` evaluates `arg` only in case of error, for performance
(#1150, @krlmlr).
* `levels.vctrs_vctr()` now returns `NULL` instead of failing (#1186, @krlmlr).
* `vec_assert()` produces a more informative error when `size` is invalid
(#1470).
* `vec_duplicate_detect()` is a bit faster when there are many unique values.
* `vec_proxy_order()` is described in `vignette("s3-vectors")` (#1373, @krlmlr).
* `vec_chop()` now materializes ALTREP vectors before chopping, which is more
efficient than creating many small ALTREP pieces (#1450).
* New `list_drop_empty()` for removing empty elements from a list (#1395).
* `list_sizes()` now propagates the names of the list onto the result.
* Name repair messages are now signaled by `rlang::names_inform_repair()`. This
means that the messages are now sent to stdout by default rather than to
stderr, resulting in prettier messages. Additionally, name repair messages can
now be silenced through the global option `rlib_name_repair_verbosity`, which
is useful for testing purposes. See `?names_inform_repair` for more
information (#1429).
* `vctrs_vctr` methods for `na.omit()`, `na.exclude()`, and `na.fail()` have
been added (#1413).
* `vec_init()` is now slightly faster (#1423).
* `vec_set_names()` no longer corrupts `vctrs_rcrd` types (#1419).
* `vec_detect_complete()` now computes completeness for `vctrs_rcrd` types in
the same way as data frames, which means that if any field is missing, the
entire record is considered incomplete (#1386).
* The `na_value` argument of `vec_order()` and `vec_sort()` now correctly
respect missing values in lists (#1401).
* `vec_rep()` and `vec_rep_each()` are much faster for `times = 0` and
`times = 1` (@mgirlich, #1392).
* `vec_equal_na()` and `vec_fill_missing()` now work with integer64 vectors
(#1304).
* The `xtfrm()` method for vctrs_vctr objects no longer accidentally breaks
ties (#1354).
* `min()`, `max()` and `range()` no longer throw an error if `na.rm = TRUE` is
set and all values are `NA` (@gorcha, #1357). In this case, and where an empty
input is given, it will return `Inf`/`-Inf`, or `NA` if `Inf` can't be cast
to the input type.
* `vec_group_loc()`, used for grouping in dplyr, now correctly handles
vectors with billions of elements (up to `.Machine$integer.max`) (#1133).