We are very excited to announce the release of a new linelist version v1.0.0. Here is a automatically generated summary of the changes in this version.
New features
Increased compatibility with dplyr is now documented and ensured through tests of all dplyr verbs on linelist objects as part of our testing & continuous integration system, as well as a new vignette: https://epiverse-trace.github.io/linelist/articles/compat-dplyr.html (@Bisaloo, #53)
A new selection helper is provided for tidyverse users, based on the existing selectors provided by the tidyselect package:
has_tag()
(@Bisaloo, #61). By feeding it a character vector of tags to operate on, you can work with dplyr verbs on specific tagged columns without having to explicitly use the column names:%>% x ::select(has_tag(c("id", "date_of_onset"))) dplyr
Breaking changes
It is no longer possible to use
lost_tags_action()
within a pipeline. It must now be set as a separate step. This makes the internal code more robust and clarifies what is part of the pipeline versus a global option (@Bisaloo, #79).The
select_tags()
function is now deprecated to ensure we provide just one clear way to address a given issue and that our “happy path” is clearly signposted (@Bisaloo, #61). If you were using this function, we now recommend using the more explicit two-steps process:# Deprecated %>% x select_tags("age") # Instead use %>% x tags_df() %>% select(age) # Or %>% x select(has_tag("age")) %>% tags_df()
The custom
select.linelist()
method has been deprecated as providing a custom[.linelist()
is sufficient to ensure compatibility withdplyr::select()
default methods, including triggeringlost_tags_action()
on tag removal (@Bisaloo, #61). A full deletion of this method is not possible at the moment because we want to provide a smooth transition for users that relied on the customtags
argument of theselect.linelist()
method. It is now recommend instead to use the newhas_tag()
selection helper:%>% x ::select(has_tag(c("id", "date_of_onset"))) dplyr # Instead of %>% x select(tags = c("id", "date_of_onset"))
The custom
rename.linelist()
method has been removed as providing a customnames<-().linelist
method is sufficient to ensure compatibility withdplyr::rename()
, including appropriate modification of the tags. (@Bisaloo, #60)
Documentation
added a hex logo thanks to David Mascarina’s contribution (@dgmascarina)
added short lay description to README thanks to Emma Marty’s contribution
Bug fixes
- linelist is now explicitly marked as incompatible with data.table. In practice,
make_linelist(x)
now errors ifx
inherits fromdata.table
(#55, @Bisaloo, based on discussions with @TimTaylor). [.linelist()
now works to subset by column when including just one argument (#54, @Bisaloo). E.g.,x[1]
. As an indirect effect, this also improves compatibility with dplyr verbs that rely on this method (#51).- subsetting a linelist with extra tags (e.g., created via
make_linelist(allow_extra = TRUE)
) no longer causes an error (#65, @Bisaloo; reported by @TimTaylor in #63)
Internal changes
- testthat tests now run in parallel (#76, @Bisaloo)
- testthat tests now warn on partial matching (#76, @Bisaloo)
Reuse
Citation
@online{epiverse-trace_development_team2023,
author = {Epiverse-TRACE development team, The},
title = {Linelist V1.0.0},
date = {2023-10-19},
url = {https://epiverse-trace.github.io/posts/linelist_v1.0.0/},
langid = {en}
}