NEWS | R Documentation |
News for R Package kit
version 0.0.19 (2024-09-07)
Bug Fixes
Fix multiple warnings in C code.
version 0.0.18 (2024-06-06)
Bug Fixes
Fix
iif
tests for new version of R.
version 0.0.17 (2024-05-03)
Bug Fixes
Fix
nswitch
. Thanks to Sebastian Krantz for raising an issue.
Notes
Update copyright date in c files
Fix note on CRAN regarding SETLENGTH
version 0.0.16 (2024-03-01)
Notes
Check if
"kit.nThread"
is defined before setting it to1L
version 0.0.15 (2023-10-01)
Notes
Correct typo in configure file
version 0.0.14 (2023-08-12)
Notes
Update configure file to extend support for GCC
Correct warnings in NEWS.Rd (strong)
Correct typo in funique.Rd thanks to @davidbudzynski
version 0.0.13 (2023-02-24)
Notes
Function
pprod
now returns double output even if inputs are integer - in line withbase::prod
- to avoid integer overflows.Update configure file
version 0.0.12 (2022-10-26)
New Features
Function
pcountNA
is equivalent topcount(..., value = NA)
.Function
pcountNA
andpcount(..., value = NA)
allowNA
counting with mixed data type (includingdata.frame
).pcountNA
also supports list-vectors as inputs and counts empty orNULL
elements asNA
.Functions
panyv
,panyNA
,pallv
andpallNA
are added as efficient wrappers aroundpcount
andpcountNA
. They are parallel equivalents of scalar functionsbase::anyNA
andanyv
,allv
andallNA
in the 'collapse' R package.Functions
pfirst
andplast
are added to efficiently obtain the row-wise first and last non-missing value or non-empty element of lists. They are parallel equivalents to the (column-wise)ffirst
andflast
functions in the 'collapse' R package. Implemented by @SebKrantz.Functions
psum/pprod/pmean
also support logical vectors as input. Implemented by @SebKrantz.
Bug Fixes
Function
charToFact
was not returning proper results. Thanks to @alex-raw for raising an issue.
Notes
Function
pprod
now returns double output even if inputs are integer - in line withbase::prod
- to avoid integer overflows.C compiler warnings on CRAN R-devel caused by compilation with -Wstrict-prototypes are now fixed. Declaration of functions without prototypes is depreciated in all versions of C. Thanks to Sebastian Krantz for the PR.
version 0.0.11 (2022-03-19)
New Features
Function
pcount
now supports data.frame.
Bug Fixes
Function
pcount
now works with specific NA values, i.e. NA_real_, NA_character_ etc...
version 0.0.10 (2021-11-28)
New Features
Function
psum
,pmean
,pprod
,pany
andpall
now support lists. Thanks to Sebastian Krantz for the request and code suggestion.
Bug Fixes
Function
topn
should now work for ALTREP object. Thanks to @ben-schwen for raising an issue.
version 0.0.9 (2021-09-12)
Notes
Re-organise header to prevent compilation errors with new version of Clang due to conflicts between R C headers and OpenMP.
version 0.0.8 (2021-08-21)
New Features
Function
funique
now preserves the attributes if the input is adata.table
,tibble
or similar objects. Thanks to Sebastian Krantz for the request.Function
topn
now defaults to base Rorder
for large value ofn
. Please see updated documentation for more information?kit::topn
.Function
charToFact
gains a new argumentaddNA=TRUE
to be used to include (or not)NA
in levels of the output.Function
shareData
,getData
andclearData
implemented to share data objects between R sessions. These functions are experimental and might change in the future. Feedback is welcome. Please see?kit::shareData
for more information.
Notes
Few
calloc
functions at C level have been replaced by R C API functionCalloc
to avoid valgrind errors/warnings in Travis CI.Errors reported by
rchk
on CRAN have been fixed.
version 0.0.7 (2021-03-07)
New Features
Function
charToFact
gains a new argumentdecreasing=FALSE
to be used to order levels of the output in decreasing or increasing order.Function
topn
gains a new argumentindex=TRUE
to be used return index (TRUE
) or values (FALSE
) of input vector.
Bug Fixes
Some tests of memory access errors using valgrind and AddressSanitizer were reported by CRAN. An attempt to fix these errors has been submitted as part of this package version. It also seems that these same errors were causing some tests to fail for
funique
andpsort
on some platforms.
Notes
Functions
pmean
,pprod
andpsum
will result in error if used with factors. Documentation has been updated.
version 0.0.6 (2021-02-21)
New Features
Function
funique
andfduplicated
gain an additional argumentfromLast=FALSE
to indicate whether the search should start from the end or beginning PR#11.Functions
pall
,pany
,pmean
,pprod
andpsum
acceptdata.frame
as input PR#15. Please see documentation for more information.Function
charToFact
is equivalent to to base Ras.factor
but is much quicker and only converts character vector to factor. Note that it is parallelised. For more details and benchmark please see?kit::charToFact
.Function
psort
is experimental and equivalent to to base Rsort
but is only for character vector. It can sort by "C locale" or by "R session locale". For more details and benchmark please see?kit::psort
.
Notes
A few OpenMP directives were missing for functions
vswitch
andnswitch
for character vectors. These have been added in PR#12.Function
funique
was not preserving attributes for character, logical and complex vectors/data.frames. Thanks to Sebastian Krantz (@SebKrantz) for bringing that to my attention. This has been fixed in PR#13.Functions
funique
anduniqLen
should now be faster forfactor
andlogical
vectors PR#14.
version 0.0.5 (2020-11-21)
New Features
Function
uniqLen(x)
is equivalent to base Rlength(unique(x))
anduniqueN
in package data.table. FunctionuniqLen
, implemented in C, supports vectors,data.frame
andmatrix
. It should be faster than these functions. For more details and benchmark please see?kit::uniqLen
.Function
vswitch
now supports mixed encoding and gains an additional argumentcheckEnc=TRUE
. Thanks to Xianying Tan (@shrektan) for the request and review PR#7.Function
nswitch
is a nested version of functionvswitch
and also supports mixed encoding. Please see please see?kit::nswitch
for further details. Thanks to Xianying Tan (@shrektan) for the request and review PR#10.
Notes
Small algorithmic improvement for functions
fduplicated
,funique
andcountOccur
forvectors
,data.frame
andmatrix
.A tests folder has been added to the source package to track coverage and bugs.
C-Level Facilities
Function
nif
has been split into two distinctive functions at C level, one has its arguments evaluated in a lazy way and is for R users and the other one (nifInternalR) is not lazy and is intended for usage at C level.
version 0.0.4 (2020-07-21)
New Features
Function
countOccur(x)
, implemented in C, is comparable tobase
R functiontable
. It returns adata.frame
and is between 3 to 50 times faster. For more details, please see?kit::countOccur
.Functions
funique
andfduplicated
now support matrices. Additionally, these two functions should also have better performance compare to previous release.Functions
topn
has an additional argumenthasna=TRUE
to indicates whether data containsNA
value or not. If the data does not containNA
values, the function should be faster.
C-Level Facilities
A few C functions have been added to subset
data.frame
andmatrix
as well as do other operations. These functions are not exported or visible to the user but might become available and callable at C level in the future.
Bug Fixes
Function
fpos
was not properly handlingNaN
andNA
for complex and double. This should now be fixed. The function has also been changed in case the 'needle' and 'haysatck' are vectors so that a vector is returned.Functions
funique
andfduplicated
were not properly handling data containingPOSIX
data. This has now been fixed.
version 0.0.3 (2020-06-21)
New Features
Functions
fduplicated(x)
andfunique(x)
, implemented in C, are comparable tobase
R functionsduplicated
andunique
. For more details, please see?kit::funique
.Functions
psum
andpprod
have now better performance for type double and complex.
Bug Fixes
Function
count(x, y)
now checks thatx
andy
have the same class and levels. So doespcount
.Function
pmean
was not callable at C level because of a typo. This is now fixed.
version 0.0.2 (2020-05-22)
New Features
Function
count(x, value)
, implemented in C, to simply count the number of times an elementvalue
occurs in a vector or in a listx
. For more details, please see?kit::count
.Function
pmean(..., na.rm=FALSE)
,pall(..., na.rm=FALSE)
,pany(..., na.rm=FALSE)
andpcount(..., value)
, implemented in C, are similar to already available functionpsum
andpprod
. These functions respectively apply base R functionsmean
,all
andany
element-wise. For more details, benchmarks and help, please see?kit::pmean
.
Bug Fixes
Fix Solaris Unicode warnings for NEWS file. Benchmarks have been moved from the NEWS file to each function Rd file.
Fix some
NA
edge cases forpprod
andpsum
so these functions behave more like base R functionprod
andsum
.Fix installation errors for version of R (<3.5.0).
version 0.0.1 (2020-05-03)
Initial Release
Function
fpos(needle, haystack, all=TRUE, overlap=TRUE)
, implemented in C, is inspired by base functionwhich
when used in the following formwhich(x == y, arr.ind =TRUE
). Functionfpos
returns the index(es) or position(s) of a matrix/vector within a larger matrix/vector. Please see?kit::fpos
for more details.Function
iif(test, yes, no, na=NULL, tprom=FALSE, nThread=getOption("kit.nThread"))
, originally contributed asfifelse
in package data.table, was moved to package kit to be developed independently. Unlike the current version offifelse
,iif
allows type promotion like base functionifelse
. For further details about the differences withfifelse
, as well ashutils::if_else
anddplyr::if_else
, please see?kit::iif
.Function
nif(..., default=NULL)
, implemented in C, is inspired by SQL CASE WHEN. It is comparable to dplyr functioncase_when
however it evaluates it arguments in a lazy way (i.e only when needed). Functionnif
was originally contributed as functionfcase
in the data.table package but then moved to package kit so its development may resume independently. Please see?kit::nif
for more details.Function
pprod(..., na.rm=FALSE)
andpsum(..., na.rm=FALSE)
, implemented in C, are inspired by base functionpmin
andpmax
. These new functions work only for integer, double and complex types and do not recycle vectors. Please see?kit::psum
for more details.Function
setlevels(x, old, new, skip_absent=FALSE)
, implemented in C, may be used to set levels of a factor object. Please see?kit::setlevels
for more details.Function
topn(vec, n=6L, decreasing=TRUE)
, implemented in C, returns the top largest or smallestn
values for a given numeric vectorvec
. It is inspired bydplyr::top_n
and equivalent to base functions order and sort in specific cases as shown in the documentation. Please see?kit::topn
for more details.Function
vswitch(x, values, outputs, default=NULL, nThread=getOption("kit.nThread"))
, implemented in C, is a vectorised version ofbase
R functionswitch
. This function can also be seen as a particular case of functionnif
. Please see?kit::switch
for more details.