fuj (development version)
-
quick_df()no longer allowsNULLvalues in the input list #81 -
vapfamily functions added #83-
vapsare vector apply functions, with certain presets to assist with common cases - all
vapfunctions have type-stable variants:
-
The below table shows inputs for vap functions and how they behave with the provided functions (f). Arguments to f()) can use any name.
vap function |
f args |
|---|---|
vap(x, f) |
f(x) |
vap2(x, y, f) |
f(x, y) |
vap3(x, y, z, f) |
f(x, y, z) |
vapi(x, f) |
f(x, i) |
vapp(p, f) |
f(...) |
Note: vapi() uses either the index or names of x as the second argument to f.
Each vap function comes with the following type variants:
| Function | Output Type | Conversion |
|---|---|---|
*_chr() |
character | as.vector(_, "character") |
*_dbl() |
double/numeric | as.vector(_, "double") |
*_int() |
integer | as.vector(_, "integer") |
*_lgl() |
logical | as.vector(_, "logical") |
*_raw() |
raw | as.vector(_, "raw") |
*_cpl() |
complex | as.vector(_, "complex") |
*_date() |
Date | as.Date(as.vector(_, "double"), origin = "1970-01-01") |
*_dttm() |
POSIXct | as.POSIXct(as.vector(_, "double"), origin = "1970-01-01", tz = "UTC") |
Note: these variants do not perform checks on output results, but rather coerce the output to the specified type.
fuj 0.2.2
CRAN release: 2025-04-23
-
require_namespace()now produces a more reasonable error when specifying a version #63 - adds
yes_no()prompting #64 - adds internal
package()utility as the default fornew_condition(pkg = package())#67 -
new_condition()now allowstype = "message"#74 - workflows updated
-
quick_df(list())now works #72 - removes tests for
struct()#78
fuj 0.2.0
CRAN release: 2024-05-07
New features
-
fp()added for creating file path objects withis_path()as a means of checking for the class;file_path()andis_file_path()exported as aliases, respectively #55 -
include()added as a means of partially attaching a package with specific exports #49 -
op.fuj, a named list of default options for fuj is now exported - multiple improvements for
verbose()#50-
verbose()has additional options for controlling the message output #36-
.labelcan be set to a string to prepend to the message (defaults to"[verbose]") -
.fillcan be set to repeat.labelon each line of the message (defaults toFALSE) -
.verbosecan be set toTRUEto print the message rather than relying onoptions()
-
-
verbose()prints prepended with"verbose "instead of"[verbose] "#42 -
make_verbose()is included to create a verbose function that will be triggered with a configured option, rather than the defaultgetOption("fuj.verbose", getOption("verbose"))pattern. This can be used to define your own custom verbose function:
-
-
lst()exported as an alias forlist0()
Internals
-
%||%is now copied from{base}when available (R versions >= 4.4) #35 - additional local testing for os version
-
covr dropped as a
suggestdependency -
require_namespace()now allows for version requirements (e.g.,require_namespace("fuj>=0.1.4")). When the version requirement is not met, an error of classnamespaceVersionErroris returned #41 -
simpleErrors converted to custom errors #43
fuj 0.1.4
CRAN release: 2023-10-22
- adds
%::%and%:::%(which now aliases%colons$) or retrieving exported and non-exported values from namespaces #31 - adds
verbose()for conditional message printing #29 - GitHub workflow added to maintain version bumps on merge
jmbarbone/actions/r-check-version
fuj 0.1.2
CRAN release: 2023-03-06
-
new_condition()gains apkgargument to control for prepending a package name to the condition call. The default value ofTRUEwill try to find the.packageNameobject from your package. Change the default setting ofpkgto prevent this addition. #12 -
require_namespace()can now accept multiple namespaces. The first namespace not found will throw an error #14 -
list0()now correctly throws valid errors #19 - typo fixed in README #20
