Changelog
Source:NEWS.md
mark (development version)
-
read_clipboard()
andwrite_clipboard()
now use clipr to work on non-Windows platforms #125 -
read_clipboard()
now works with more methods for readingdata.frame
s -
read_clipboard()
now defaults to atibble
return when tibble is available
mark 0.8.1
CRAN release: 2024-09-29
-
write_file_md5()
now supports"feather"
and"parquet"
methods as wrappers for{arrow}
#234 -
md5()
added to provide MD5 check sums for objects #233 -
unique_rows()
added to subset on (non-)duplicated rows in adata.frame
#87 -
within()
added as an alternative tobetween_more()
#120 - test updated for upcoming R release #240
mark 0.8.0
CRAN release: 2024-05-23
breaking changes
-
echo()
is now removed; useecho::echo()
instead #214 - includes
tryn()
for running an expression a maximum number of times before failure #80
improvements
-
match_param()
has been improved
new features
-
file_copy_md5()
added as a wrapper forfs::file_copy()
but provides MD5 checks throughtools::md5sum()
to avoid overwriting files that had no content changes #207 -
write_file_md5()
added as a general writing function and utilizesfile_copy_md5()
for MD5 checks (including some compression options) #207, #224
mark 0.7.0
CRAN release: 2023-10-23
-
merge_list()
added for combining lists #200 -
glob()
added for basic wildcard globbing on character vectors #167 - adds greater use of fs over base file functions #160
- improvements in
todos()
andfixmes()
- adds more use of
rlang::list2()
for internally #199 - GitHub action included to check version updates with pull requests #211
-
%::%
and%:::%
now exported from fuj
mark 0.6.0
CRAN release: 2023-05-06
New features
- new functions for detecting blank values in a vector or
data.frame
. Blank values are those which do not contain any text (controls forNA
) or are entirely white space.-
is_blank()
for detecting blank values in a vector -
is_blank_cols()
for detecting blank columns -
select_blank_cols()
for selecting blank columns -
remove_blank_cols()
for removing blank columns
-
-
match_param()
now accepts a named listed for alias matching #104 -
echo()
evaluates expressions and logs outputs #164 -
fuj is now imported
- multiple functions now re-exported from fuj (see
?mark::reexports
) -
set_names0()
is deprecated in favor ofset_names()
- error messages are created with
fuj::new_condition()
; - test for errors and warnings enhanced with class checks
- multiple functions now re-exported from fuj (see
Fixes and updates
-
date_from_partial()
works again #155 after fixing an issue with an internal utilityis_valid_date_string()
that wasn’t recognizing%Y-%m-%d
(and potentially others) -
lintr
GitHub action updated #173; this includes plenty of internal improvements and code cleanup - package description in help files corrected #165
- GitHub pages updated with latest pkgdown action #175
- Update to GitHub R-CMD-check action #178
-
switch_in_case()
handlesNA
s better #183 - internal
switch
tests updated for waldo development #182 thanks,@hadley
- methods for
write_clipboard()
are now displayed in documentation #186
mark 0.5.2
CRAN release: 2022-10-01
New features
-
normalize()
added to normalize values invectors
,matrices
, anddata.frame
s by specified ranges and boundaries #143 -
get_labels()
and other label related functions now get exact matches for"label"
attributes #141 -
recode_only()
, andrecode_by()
now accept a namedlist()
forby
#96] -
switch_in_case()
now handles functions in the right hand statements -
update_version()
now correctly checks result of embeddedutils::menu()
call for updating the version #123 -
require_namespace()
now accepts multiple namespaces #121 -
unique.fact()
S3 method #86 -
recode_only()
andrecode_by()
can accept a single value forval
#73 -
fact_reverse()
for reversingfact
levels #78 -
as.Date.fact()
added #108 -
as.character.fact()
added -
[.fact
added -
read_bib()
better handles fields where=
is present in the text #117
Fixes
-
fact.haven_labelled()
works properly and retains thelabel
attribute #136 -
drop_levels()
is exported #105 -
recode_by()
andrecode_only()
handle factors better #81 - Functions that made use of
shell.exec()
now try to determine the appropriate method of opening a file base on OS. #126 - Internal functions for potentially coercing factor levels into dates no longer try to check for
"%Z"
in the date format #147
Breaking changes
-
reverse()
has been removed (useflip()
instead) -
assign_label()
has been removed (useassign_labels()
instead) -
percentile_rank(times)
is deprecated in favor ofpercent_rank(weights)
Non visible changes
-
print.fact()
rewritten as a slightly modifiedprint.factor()
#109 -
percentile_rank()
improvements #131
mark 0.5.0
CRAN release: 2022-03-09
The package website https://jmbarbone.github.io/mark/ is now available! More references and vignettes will make their way here in future releases.
Fixes
-
detail(NA)
(or whenx
has onlyNA
values) no longer throws a warning and returnsNA
formin_c
,max_c
#59 -
print.noted()
now passes...
to next methods #67 - corrects deprecation warning in
assign_label()
#74-
assign_label()
will be removed in0.4.2
-
-
set_not_available()
now seems to work correctly – it probably hasn’t actually be working most of the time -
percentile_rank()
is now more correct whenx
is a decimal by checking for unique values first #92 -
counts.data.frame()
now handle factor columns better
New features
- Functions in
?handlers
, all allow for additional params passed through...
#34 - adds
row_bind()
to bind a list ofdata.frames()
#46 - adds
drop_levels()
withfactor
anddata.frame
methods; functions similarly tobase::droplevels()
but is a little faster #54 -
todos()
andfixmes()
gain a new paramforce
- When
TRUE
, forces searches for.R
files when the given directory does not contain an.Rproj
file - When
FALSE
, prevents long start ups when these functions are called in a.Rprofile
file and R is not launches in a project directory - This be toggled with a new options
mark.todos.force
- When
- adds
set_note()
, a wrapper fornote<-()
#77 - adds
fact2char()
to complimentchar2fact()
#75 -
print.pseudo_id()
now truncates long uniques to a single line #70 -
match_param(NULL, null = TRUE)
allowsparam
to safely returnNULL
#89 -
fact_na()
is added to usefact
vectors withNA
levels that work withis.na()
#69 and otherNA
handling improvements - adds a new
print._mark_bib_df()
method to supporting printing lists - adds new methods for
facts
:as.integer.fact()
,as.double.fact()
,remove_na.fact()
Breaking changes
-
fact.numeric()
now treatsNaN
the same asNA
, no extra level/unique value is retained -
read_clipboard()
now returnsNA
when the clipboard is empty, rather than""
(improvements with internal type conversions) - improvements to
NA
handling as well
Other, non-visible
- github actions updated
- internal type conversion now heavily relies on
utils::type.convert()
with some additional functionality for logical (e.g., character string using"true"
and"false"
) and for guessing dates in aYYYY-MM-DD
format - general clean up and formatting
mark 0.4.1
CRAN release: 2021-11-05
-
details(factor)
no longer addsfact
class tofactors
#50 -
details()
gains new argumentfactor_n
to control threshold for making character vectors into factors -
detail.data.frame()
now works with single column data.frames #48 -
paste_combine()
no longer duplicated the second vector of...
whenlength(...) > 2
#52
mark 0.4.0
CRAN release: 2021-10-22
New features
- adds
percentile_rank()
to calculate percentile ranks with a vector - adds
insert()
to insert multiple values into a vector -
pseudo_id()
gains argumentna_last
to change positioning ofNA
values -
is_true()
andis_false()
are now exported as generics with methods fordefault
andlogical
- adds
omit_na()
for tracking positions ofNA
and non-NA
values -
quick_df(NULL)
now returns an emptydata.frame
-
quick_dfl()
exported as a wrapper forquick_df(list(...))
Fixes
-
squash_vec()
now works correctly when values are not ordered #43 -
as_ordered()
no longer duplicatesordered
class #44 -
counts.data.frame()
andprops.data.frame()
correctly make column names unique - internal
try_numeric()
correctly handlesNA
s -
flip.matrix(, keep_rownames = FALSE)
now works correctly -
any_match()
now works as expected -
lines_of_r_code()
now works correctly reading a single file -
import(, overwrite = TRUE)
now works -
ls_function()
,ls_object()
,ls_dataframe()
, andls_all()
have improvements for environmental searching -
assign_labels.data.frame(.missing = "warning")
correctly removes missing columns -
remove_na.factor()
no long drops additional classes other thanordered
andfactor
Others
- documentation of
struct()
overwriting attributes improved and examples - adds more unit tests
mark 0.3.0
CRAN release: 2021-09-18
Fixes
-
fact.haven_labelled()
now returns an object with classfact
#39; performance enhancements -
set_names0(NULL)
no longer causes an error and returnsNULL
#40 -
diff_time()
correctly handles time zones whenx
isDate
andy
isPOSIXt
#41
Changes
- updates file path finding functions (e.g.,
list_files()
) to try to not search every file depending on desired searches (e.g., by full file paths or just base names) -
as_ordered()
handlesfactors
better; S3 methods removed:as_ordered.ordered()
,as_ordered.factor()
-
remove_na()
has better performance whenx
has noNA
values -
counts.data.frame()
andprops.data.frame()
retain attributes of selected columns -
todos()
andfixmes()
will not search for.R
or.Rmd
files if thepath
is not changed from""
and no.Rproj
is found within the directory
New features
- adds
unlist0()
to retain original names of lists - adds
%names%
for a fun way to set names - adds
file_open()
as alias foropen_file()
- adds
detail()
to return adata.frame
of details for a vector of columns of adata.frame
- adds
squash_vec()
to combined the names of a vector with repeated values - adds
make_sf()
as a simple wrapper for package specificsystem.file()
-
add_file_timestampe()
gains a new parametersep
to separate the file name (sans ext) and the time stamp -
assign_labels.data.frame()
gains new argument.ls
to explicitly set alist
(ordata.frame
) of columns -
props()
and family gain argumentna.rm
to not countNA
values for proportions
mark 0.2.0
CRAN release: 2021-08-23
Changes
-
package_available()
now visibly returnsTRUE
/FALSE
-
remove_na()
now has methods forlist
s andfactor
s -
environments()
now has it’s ownprint.mark_environments()
method rather than callingcat()
within the function itself -
array_extract()
’s first argument is changed fromarr
to.arr
-
diff_time()
now defaults to using UTC (Related to #32) -
print.note()
method has been updated (Related to: #33):- to print
x
normally, without thenote class
when just the note has to be seen - an internal function now handles the note formatted for class
noted
- to print
- changes to
fact()
-
fact()
now returns a vector with afact
element -
fact.character()
correctly labelsNA
s #24 -
fact.factor()
not longer simply returnsx
but rather updates the levels and integer values to confirm with otherfact()
methods.fact.factor()
will retain all levels of the original value, reorder the levels, and appendNA
if necessary -
fact.fact()
added to return a correctly formattedfact()
-
fact.logical()
now orders levels asTRUE
thenFALSE
, andNA
if present -
fact.Date()
andfact.POSIXt()
added, which simply callfact.numeric()
-
print.fact()
method added to print afact
vector as afactor
-
as_ordered.factor()
andas_ordered.ordered()
now callfact()
to check levels
-
Fixes
- functions that check if an argument is a vector no long use
is.vector()
directly; arguments passed with attributes that when removed fulfillis.vector()
are accepted -
todos()
andfixmes()
now correctly show tags for.Rmd
files - correction to error message in
limit()
- adds missing
sort
argument toprops()
-
pseudo_id.factor()
no longer returnsNA_integer
when a value isNA
or a level isNA
and correctly resets the order of the levels from the factor to their order of appearance -
flip.data.frame()
no longer coerces single column data.frames #36
New features
-
fact.pseudo_id()
andpseudo_id.pseudo_id()
methods added - adds
as_ordered()
to quickly createordered
factors usingfact()
- adds
char2fact()
to convertcharacter
vectors (or columns in adata.frame
) tofactors
based on the number unique values - adds
tableNA()
to make a table fromNA
values -
round_by()
gains an additional argumentinclude0
which ifFALSE
will replace0
values withby
-
assign_labels.data.frame()
gains an additional argument.missing
to set how to control for missing labels: you can now use awarning
for a missing label (instead of an error) or silently ignore any missing labels -
sort_names()
gains a new argumentnumeric
to try to sort names ofx
by their numeric value #26 - adds
struct()
, a simplified version ofstruct()
- adds more
fact()
methods -
todos()
andfixmes()
gain an additional argumentpath
to specify a directory or file to search within #25 -
print.pseudo_id()
added for a cleaner print -
between_more()
accepts vectors forleft
andright
params
mark 0.1.3
CRAN release: 2021-06-16
New name! The previous name jordan
was conflicting with recent package on CRAN.
Changes
- corrects use of
...
intodos()
#8 - updates for
counts()
- corrects
NA
counting incounts()
;NA
counts are now appended at the end whether or not sort is called - other optimization for
counts()
- core functions previously on
base::rle()
now use a combination ofpseudo_id()
andbase::tabulate()
- corrects counts for factor data when higher levels are not present #16
- corrects
- update to
multi_grepl()
internal functions to prevent conflicts withR 4.1.0
- corrects error message in
vector2df()
when passed a list
New features
- adds/exports
fact()
andpseudo_id()
- adds
fixmes()
#13 - adds
names_switch()
to switch names and values -
vector2df()
can now output a 1 column data.frame ifname = NULL
- adds an
invert
parameter tocomplete_cases()
to filter for incomplete cases - adds
are_identical()
for comparing 2 or more vectors asidentical()
, element-wise - adds
add_file_timestamp()
-
diff_time()
and related functions will try to converty
to aDate
object ifx
is passed as date (e.g.,diff_time_days(Sys.Date(), "2021-06-03")
will not show decimals)