Skip to content

daiquiri: Data quality reporting for temporal datasets #535

Description

@phuongquan

Date accepted: 2022-10-25

Submitting Author Name: T. Phuong Quan
Submitting Author Github Handle: @phuongquan
Other Package Authors Github handles: (comma separated, delete if none)
Repository: https://github.com/phuongquan/daiquiri
Version submitted: 0.7.1
Submission type: Standard
Editor: @maurolepore
Reviewers: @brad-cannell, @elinw

Due date for @brad-cannell: 2022-07-27

Due date for @elinw: 2022-08-17
Archive: TBD
Version accepted: TBD
Language: en

  • Paste the full DESCRIPTION file inside a code block below:
Package: daiquiri
Type: Package
Title: Data Quality Reporting for Temporal Datasets
Version: 0.7.1
Authors@R: c(
    person(c("T.", "Phuong"), "Quan", email = "phuong.quan@ndm.ox.ac.uk",
        role = c("aut", "cre"), comment = c(ORCID = "0000-0001-8566-1817")),
    person("Jack", "Cregan", role = "ctb"),
    person(family = "University of Oxford", role = "cph"),
    person(family = "National Institute for Health Research (NIHR)", role = "fnd")
    )
Description: Generate reports that enable quick visual review of 
    temporal shifts in record-level data. Time series plots showing aggregated 
    values are automatically created for each data field (column) depending on its 
    contents (e.g. min/max/mean values for numeric data, no. of distinct 
    values for categorical data), as well as overviews for missing values, 
    non-conformant values, and duplicated rows. The resulting reports are sharable 
    and can contribute to forming a transparent record of the entire analysis process. 
    It is designed with Electronic Health Records in mind, but can be used for 
    any type of record-level temporal data (i.e. tabular data where each row represents 
    a single “event”, one column contains the "event date", and other columns 
    contain any associated values for the event).
URL: https://github.com/phuongquan/daiquiri
BugReports: https://github.com/phuongquan/daiquiri/issues
License: GPL (>=3)
Encoding: UTF-8
Imports:
    data.table (>= 1.12.8),
    readr (>= 1.3.1),
    ggplot2 (>= 3.1.0),
    scales (>= 1.1.0),
    cowplot (>= 0.9.3),
    rmarkdown,
    reactable (>= 0.2.3),
    utils,
    stats
RoxygenNote: 7.1.2
Suggests:
    covr,
    knitr,
    testthat (>= 3.0.0),
    codemetar
VignetteBuilder: knitr
Config/testthat/edition: 3

Scope

  • Please indicate which category or categories from our package fit policies this package falls under: (Please check an appropriate box below. If you are unsure, we suggest you make a pre-submission inquiry.):

    • data retrieval
    • data extraction
    • data munging
    • data deposition
    • data validation and testing
    • workflow automation
    • version control
    • citation management and bibliometrics
    • scientific software wrappers
    • field and lab reproducibility tools
    • database software bindings
    • geospatial data
    • text analysis
  • Explain how and why the package falls under these categories (briefly, 1-2 sentences):

It takes a generic data frame containing raw, record-level, temporal data, and generates a data quality report that enables quick visual review of any unexpected temporal shifts in measures such as missingness, min/max/mean/distinct values, and non-conformance.

  • Who is the target audience and what are scientific applications of this package?

The target audience is all researchers who analyse data from large, temporal datasets, particularly routinely-collected data such as electronic health records. The package helps them to quickly check for temporal biases in their data before embarking on their main analyses. It also helps them to do this in a thorough, consistent and transparent way (since the reports are shareable), hence increasing the quality of their studies as well as trust in the scientific process.

To my knowledge, there are a small number of R packages that generate summary statistics and/or data quality reports, (with the two most similar being dataquieR and DQAstats), but none which assist in identifying temporal changes in the data, nor which are as lightweight to use and consume.

Yes

  • If you made a pre-submission inquiry, please paste the link to the corresponding issue, forum post, or other discussion, or @tag the editor you contacted.

#527

  • Explain reasons for any pkgcheck items which your package is unable to pass.

Here is the list of items from version 0.0.3.11. The latest development version (0.0.3.13) is not currently working on Windows.

  1. These functions do not have examples: [daiquiri] - This is not actually a function, daiquiri is the package help page and includes links to the "most useful" function and vignette.
  2. Package uses global assignment operator (‘<<-’). - This is necessary for a withCallingHandlers() call
  3. Package has no continuous integration checks. - The package uses GitHub Actions for R-CMD-check and for covr so I don't know why this is showing as a fail.
  4. Namespace in Imports field not imported from: ‘reactable’ All declared Imports should be used - The 'reactable' package is in fact used but is probably being missed because it is called from an Rmd file in the inst/rmd folder
  5. There are two functions with cyclocomplexity above 15: a) validate_params_type() and b) aggregatefield(). These functions are essentially large switch statements covering a) all arguments to all exported functions (for validating what a user passes to the function, and where some arguments are used across multiple functions), and b) all the different ways that the package can aggregate a data field (e.g. mean, min, max). The only obvious way I can see to reduce the cyclocomplexity score would be to separate out the items into subfunctions, but I judge that would actually make the code harder to follow rather than easier. I am open to other suggestions.

Technical checks

Confirm each of the following by checking the box.

This package:

Publication options

  • Do you intend for this package to go on CRAN?

  • Do you intend for this package to go on Bioconductor?

  • Do you wish to submit an Applications Article about your package to Methods in Ecology and Evolution? If so:

MEE Options
  • The package is novel and will be of interest to the broad readership of the journal.
  • The manuscript describing the package is no longer than 3000 words.
  • You intend to archive the code for the package in a long-term repository which meets the requirements of the journal (see MEE's Policy on Publishing Code)
  • (Scope: Do consider MEE's Aims and Scope for your manuscript. We make no guarantee that your manuscript will be within MEE scope.)
  • (Although not required, we strongly recommend having a full manuscript prepared when you submit here.)
  • (Please do not submit your package separately to Methods in Ecology and Evolution)

Code of conduct

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions