Changelog
Source:NEWS.md
mark (development version)
-
make_sf()now usessubstitute()to provide more information inside the function body when viewing #129 -
round_to()added to round values to a set #142 -
is_true(),is_false()now works as documented #262 -
to_boolean()now works as documented #262-
to_boolean.character(), andto_boolean.factor()have been improved; they will also now require exact matches; cleanup (e.g., trimming whitespace and lowercasing) are not longer performed -
to_boolean.integer()added -
to_boolean.numeric(),to_boolean.integer()will now returnNA
-
-
md5(bytes)added to usetools::md5sum(bytpes)for R > 4.2.0 #258 -
md5()now uses little-endian serialization (i.e.,serialize(xdr = FALSE)) for more consistent results across platforms and faster speed; which may cause hashes created prior to change
mark 0.8.3
CRAN release: 2025-04-23
-
file_copy_md5()now produces more messages #239 -
file_copy_md5()saves md5 sum checks as an attribute - removes tests for
struct()#252
mark 0.8.2
CRAN release: 2024-12-07
-
read_clipboard()andwrite_clipboard()now use clipr to work on non-Windows platforms #125 -
read_clipboard()now works with more methods for readingdata.frames -
read_clipboard()now defaults to atibblereturn when tibble is available - timezone testing updated #247
- actions updated
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) -
lintrGitHub 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()handlesNAs better #183 - internal
switchtests 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.frames 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 reversingfactlevels #78 -
as.Date.fact()added #108 -
as.character.fact()added -
[.factadded -
read_bib()better handles fields where=is present in the text #117
Fixes
-
fact.haven_labelled()works properly and retains thelabelattribute #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 whenxhas onlyNAvalues) no longer throws a warning and returnsNAformin_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 whenxis 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()withfactoranddata.framemethods; functions similarly tobase::droplevels()but is a little faster #54 -
todos()andfixmes()gain a new paramforce- When
TRUE, forces searches for.Rfiles when the given directory does not contain an.Rprojfile - When
FALSE, prevents long start ups when these functions are called in a.Rprofilefile 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)allowsparamto safely returnNULL#89 -
fact_na()is added to usefactvectors withNAlevels that work withis.na()#69 and otherNAhandling 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 treatsNaNthe same asNA, no extra level/unique value is retained -
read_clipboard()now returnsNAwhen the clipboard is empty, rather than""(improvements with internal type conversions) - improvements to
NAhandling 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-DDformat - general clean up and formatting
mark 0.4.1
CRAN release: 2021-11-05
-
details(factor)no longer addsfactclass tofactors#50 -
details()gains new argumentfactor_nto 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_lastto change positioning ofNAvalues -
is_true()andis_false()are now exported as generics with methods fordefaultandlogical - adds
omit_na()for tracking positions ofNAand non-NAvalues -
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 duplicatesorderedclass #44 -
counts.data.frame()andprops.data.frame()correctly make column names unique - internal
try_numeric()correctly handlesNAs -
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 thanorderedandfactor
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 whenxisDateandyisPOSIXt#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()handlesfactorsbetter; S3 methods removed:as_ordered.ordered(),as_ordered.factor() -
remove_na()has better performance whenxhas noNAvalues -
counts.data.frame()andprops.data.frame()retain attributes of selected columns -
todos()andfixmes()will not search for.Ror.Rmdfiles if thepathis not changed from""and no.Rprojis 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.frameof 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 parametersepto separate the file name (sans ext) and the time stamp -
assign_labels.data.frame()gains new argument.lsto explicitly set alist(ordata.frame) of columns -
props()and family gain argumentna.rmto not countNAvalues for proportions
mark 0.2.0
CRAN release: 2021-08-23
Changes
-
package_available()now visibly returnsTRUE/FALSE -
remove_na()now has methods forlists andfactors -
environments()now has it’s ownprint.mark_environments()method rather than callingcat()within the function itself -
array_extract()’s first argument is changed fromarrto.arr -
diff_time()now defaults to using UTC (Related to #32) -
print.note()method has been updated (Related to: #33):- to print
xnormally, without thenote classwhen 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 afactelement -
fact.character()correctly labelsNAs #24 -
fact.factor()not longer simply returnsxbut 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 appendNAif necessary -
fact.fact()added to return a correctly formattedfact() -
fact.logical()now orders levels asTRUEthenFALSE, andNAif present -
fact.Date()andfact.POSIXt()added, which simply callfact.numeric() -
print.fact()method added to print afactvector 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.Rmdfiles - correction to error message in
limit() - adds missing
sortargument toprops() -
pseudo_id.factor()no longer returnsNA_integerwhen a value isNAor a level isNAand 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 createorderedfactors usingfact() - adds
char2fact()to convertcharactervectors (or columns in adata.frame) tofactorsbased on the number unique values - adds
tableNA()to make a table fromNAvalues -
round_by()gains an additional argumentinclude0which ifFALSEwill replace0values withby -
assign_labels.data.frame()gains an additional argument.missingto set how to control for missing labels: you can now use awarningfor a missing label (instead of an error) or silently ignore any missing labels -
sort_names()gains a new argumentnumericto try to sort names ofxby their numeric value #26 - adds
struct(), a simplified version ofstruct() - adds more
fact()methods -
todos()andfixmes()gain an additional argumentpathto specify a directory or file to search within #25 -
print.pseudo_id()added for a cleaner print -
between_more()accepts vectors forleftandrightparams
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
NAcounting incounts();NAcounts 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
invertparameter 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 convertyto aDateobject ifxis passed as date (e.g.,diff_time_days(Sys.Date(), "2021-06-03")will not show decimals)