*_case()
functions can now use lists as return values (#7).*_case()
functions no longer perform automatic type conversion on non-atomic return values (#7).grep_case()
andgrep_case_fct()
now support vectors in the left-hand side of arguments (#8).
- Accept named arguments with or without preceding dots, e.g.
default
or.default
(#5). - Take
default
into account when determining the class of output (#5). - Fix bug where replacement would fail if a condition evaluated to a vector made up of both
NA
s andFALSE
s with noTRUE
s. - Improve error messages (#5).
- No longer rely on deprecated
plu
functions (#4).
- Fixed bug where
*_case()
would returnNULL
if no conditions wereTRUE
. - Added
tibble
to suggested packages.
-
Added
*_case_fct()
family of functions- These work the same as their
*_case()
equivalents, but return factors - Factor levels are determined by the order of case statements.
in_case_fct(x < 10 ~ "Low", x < 20 ~ "Medium", default = "High")
returns a factor with levels"Low"
,"Medium"
, and"High"
.
- These work the same as their
-
Added
*_case_list()
family- These work the same as their
*_case()
equivalents, but return lists - This allows the functions to return complex data types that would otherwise be broken by automatic type conversion.
- These work the same as their
-
Implemented lazy-ish evaluation of outputs.
- If the LHS of a formula is never true, the RHS is not evaluated.
- However, the RHS is still evaluated for all inputs if any input is TRUE.
- If
condition
inif_case()
never takes one of the three logical values, the corresponding output is not evaluated.
- If the LHS of a formula is never true, the RHS is not evaluated.
if_case()
no longer produces an error ifcondition
is onlyNA
.
- Fixed NOTE by removing unnecessary import of
stats
. - Uses latest version of plu for more informative error messages.
- Added
grep_case()
which works similarly toswitch_case()
but uses pattern matching instead of exact matching. - Added
fn_case()
which applies a function to the input and each formula's left-hand side to create the logical vectors used byin_case()
. - Added
fn_switch_case()
which applies a function to the left-hand side of each formula to create the vectors used byswitch_case()
.
- Initial CRAN release.