EDCimport

Import data from EDC softwares

https://github.com/danchaltiel/edcimport

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.7%) to scientific vocabulary

Keywords from Contributors

interpretability standardization hack
Last synced: 10 months ago · JSON representation

Repository

Import data from EDC softwares

Basic Info
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 1
  • Open Issues: 10
  • Releases: 0
Created over 4 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog Codemeta

README.md

EDCimport EDCimport website

Lifecycle: experimental CRAN status Last Commit R-CMD-check <!--CRAN RStudio mirror downloads --> <!-- badges: end -->

Introduction 📦

The EDCimport package is designed to simplify the import and management of Electronic Data Capture (EDC) exports, particularly in clinical research settings. It is an opinionated framework, providing multiple streamlined tools for importing, cleaning, and checking your datasets.

[!WARNING] This package is experimental and under active development. Backward compatibility is not a priority for the moment. For reproducibility, use renv to set the package version.

Installation 🛠️

``` r

Install last version available on CRAN

install.packages("EDCimport")

Install development version on Github

pak::pak("DanChaltiel/EDCimport@v0.6.0.9002") ```

[!WARNING] The documentation pertains to the dev version, not the one on CRAN.

Features 🚀

Load the data

Use one of read_all_sas(), read_all_xpt(), read_all_csv(), or read_trialmaster(), depending on the type of files in your export directory. You can then load your datasets into the global environment with load_database().

r library(EDCimport) db = read_all_sas("path/to/my/files/folder") print(db) load_database(db) #this also removes `db` to save some RAM mean(dataset1$column5)

Database management tools

EDCimport includes a set of useful tools that help with using the imported database. See References for the complete list.

Database summary

edc_lookup() returns a dataframe containing the number of rows, columns, patients, and the CRF name of each dataset.

Search the whole database

find_keyword() runs a global search of the database for a given keyword (or regex).

For instance, say you are looking for the "date of ECG" but don't know where it is, you can run find_keyword("date") or find_keyword("ecg").

It won't look into the actual data, though, as this would take too much computing power.

Get the last news date of each subject

lastnews_table() finds the last date of each subject throughout the whole database and inform on the date original dataset and column. It has arguments to avoid selecting irrelevant dates.

This is very useful to get the actual followup time when fitting survival analyses.

Data checking system

edc_data_warn() throws a warning if an inconsistency is found in a dataset. The interface allows to perform multiple checks and get a report as a CSV file.

Join helpers

As the primary key is almost always the Subject ID, join helpers were added to reduce code clutter. Currently, only edc_left_join(), edc_right_join(), and edc_full_join() are supported.

Shiny browser

edc_viewer() runs a shiny application that browses the whole database. The HTML interface is quicker and less cluttered than it would be in RStudio. It also allows filtering by Subject ID.

Swimmer Plot

edc_swimmerplot() creates a swimmer plot of all date variables of the whole database. This is very useful to find inconsistencies and outliers, especially with the plotly interactive output.

Owner

  • Name: Dan Chaltiel
  • Login: DanChaltiel
  • Kind: user
  • Location: France
  • Company: @gustaveroussy

Data analyst (PharmD, PhD) and programming enthusiast. I love to code in R (tidyverse FTW!) but also in Kotlin/Java (Android), Python, PHP, JS, Arduino...

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "identifier": "EDCimport",
  "description": "A convenient toolbox to import data exported from Electronic Data Capture (EDC) software 'TrialMaster'.",
  "name": "EDCimport: Import Data from EDC Software",
  "relatedLink": [
    "https://danchaltiel.github.io/EDCimport/",
    "https://CRAN.R-project.org/package=EDCimport"
  ],
  "codeRepository": "https://github.com/DanChaltiel/EDCimport",
  "issueTracker": "https://github.com/DanChaltiel/EDCimport/issues",
  "license": "https://spdx.org/licenses/GPL-3.0",
  "version": "0.6.0",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "R",
    "url": "https://r-project.org"
  },
  "runtimePlatform": "R version 4.4.1 (2024-06-14 ucrt)",
  "provider": {
    "@id": "https://cran.r-project.org",
    "@type": "Organization",
    "name": "Comprehensive R Archive Network (CRAN)",
    "url": "https://cran.r-project.org"
  },
  "author": [
    {
      "@type": "Person",
      "givenName": "Dan",
      "familyName": "Chaltiel",
      "email": "dan.chaltiel@gmail.com",
      "@id": "https://orcid.org/0000-0003-3488-779X"
    }
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Dan",
      "familyName": "Chaltiel",
      "email": "dan.chaltiel@gmail.com",
      "@id": "https://orcid.org/0000-0003-3488-779X"
    }
  ],
  "softwareSuggestions": [
    {
      "@type": "SoftwareApplication",
      "identifier": "bslib",
      "name": "bslib",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=bslib"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "callr",
      "name": "callr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=callr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "crosstable",
      "name": "crosstable",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=crosstable"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "DT",
      "name": "DT",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=DT"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "gtools",
      "name": "gtools",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=gtools"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "htmlwidgets",
      "name": "htmlwidgets",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=htmlwidgets"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "janitor",
      "name": "janitor",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=janitor"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "knitr",
      "name": "knitr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=knitr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "openxlsx",
      "name": "openxlsx",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=openxlsx"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "patchwork",
      "name": "patchwork",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=patchwork"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "plotly",
      "name": "plotly",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=plotly"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "quarto",
      "name": "quarto",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=quarto"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rmarkdown",
      "name": "rmarkdown",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rmarkdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rstudioapi",
      "name": "rstudioapi",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rstudioapi"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "testthat",
      "name": "testthat",
      "version": ">= 3.1.8",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=testthat"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "shiny",
      "name": "shiny",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=shiny"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "usethis",
      "name": "usethis",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=usethis"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "vdiffr",
      "name": "vdiffr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=vdiffr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "withr",
      "name": "withr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=withr"
    }
  ],
  "softwareRequirements": {
    "1": {
      "@type": "SoftwareApplication",
      "identifier": "R",
      "name": "R",
      "version": ">= 3.6.0"
    },
    "2": {
      "@type": "SoftwareApplication",
      "identifier": "cli",
      "name": "cli",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=cli"
    },
    "3": {
      "@type": "SoftwareApplication",
      "identifier": "dplyr",
      "name": "dplyr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=dplyr"
    },
    "4": {
      "@type": "SoftwareApplication",
      "identifier": "forcats",
      "name": "forcats",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=forcats"
    },
    "5": {
      "@type": "SoftwareApplication",
      "identifier": "fs",
      "name": "fs",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=fs"
    },
    "6": {
      "@type": "SoftwareApplication",
      "identifier": "glue",
      "name": "glue",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=glue"
    },
    "7": {
      "@type": "SoftwareApplication",
      "identifier": "ggplot2",
      "name": "ggplot2",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=ggplot2"
    },
    "8": {
      "@type": "SoftwareApplication",
      "identifier": "haven",
      "name": "haven",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=haven"
    },
    "9": {
      "@type": "SoftwareApplication",
      "identifier": "lubridate",
      "name": "lubridate",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=lubridate"
    },
    "10": {
      "@type": "SoftwareApplication",
      "identifier": "purrr",
      "name": "purrr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=purrr"
    },
    "11": {
      "@type": "SoftwareApplication",
      "identifier": "readr",
      "name": "readr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=readr"
    },
    "12": {
      "@type": "SoftwareApplication",
      "identifier": "rlang",
      "name": "rlang",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rlang"
    },
    "13": {
      "@type": "SoftwareApplication",
      "identifier": "scales",
      "name": "scales",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=scales"
    },
    "14": {
      "@type": "SoftwareApplication",
      "identifier": "stats",
      "name": "stats"
    },
    "15": {
      "@type": "SoftwareApplication",
      "identifier": "stringr",
      "name": "stringr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=stringr"
    },
    "16": {
      "@type": "SoftwareApplication",
      "identifier": "tibble",
      "name": "tibble",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tibble"
    },
    "17": {
      "@type": "SoftwareApplication",
      "identifier": "tidyr",
      "name": "tidyr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tidyr"
    },
    "18": {
      "@type": "SoftwareApplication",
      "identifier": "tidyselect",
      "name": "tidyselect",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tidyselect"
    },
    "19": {
      "@type": "SoftwareApplication",
      "identifier": "utils",
      "name": "utils"
    },
    "20": {
      "@type": "SoftwareApplication",
      "identifier": "lifecycle",
      "name": "lifecycle",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=lifecycle"
    },
    "SystemRequirements": null
  },
  "fileSize": "1584.675KB",
  "releaseNotes": "https://github.com/DanChaltiel/EDCimport/blob/master/NEWS.md",
  "readme": "https://github.com/DanChaltiel/EDCimport/blob/main/README.md",
  "contIntegration": "https://github.com/DanChaltiel/EDCimport/actions/workflows/check-standard.yaml",
  "developmentStatus": "https://lifecycle.r-lib.org/articles/stages.html"
}

GitHub Events

Total
  • Create event: 77
  • Release event: 1
  • Issues event: 56
  • Delete event: 3
  • Issue comment event: 5
  • Push event: 233
  • Pull request event: 9
Last Year
  • Create event: 77
  • Release event: 1
  • Issues event: 56
  • Delete event: 3
  • Issue comment event: 5
  • Push event: 233
  • Pull request event: 9

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 957
  • Total Committers: 2
  • Avg Commits per committer: 478.5
  • Development Distribution Score (DDS): 0.185
Past Year
  • Commits: 633
  • Committers: 2
  • Avg Commits per committer: 316.5
  • Development Distribution Score (DDS): 0.172
Top Committers
Name Email Commits
Dan Chaltiel 1****l 780
github-actions 4****] 177

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 92
  • Total pull requests: 6
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 9 days
  • Total issue authors: 4
  • Total pull request authors: 1
  • Average comments per issue: 0.25
  • Average comments per pull request: 0.0
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 35
  • Pull requests: 6
  • Average time to close issues: 14 days
  • Average time to close pull requests: 9 days
  • Issue authors: 3
  • Pull request authors: 1
  • Average comments per issue: 0.09
  • Average comments per pull request: 0.0
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • DanChaltiel (95)
  • Lpierott (2)
  • NusaibahIbr (1)
  • BaptisteArchambaud (1)
Pull Request Authors
  • DanChaltiel (8)
Top Labels
Issue Labels
enhancement (27) feature (21) bug (19) improvement (13) internal (7) documentation (4) Questionning (3) Feature request (2) question (1) Test (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 336 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 8
  • Total maintainers: 1
cran.r-project.org: EDCimport

Import Data from EDC Software

  • Versions: 8
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 336 Last month
Rankings
Forks count: 21.9%
Dependent packages count: 29.8%
Stargazers count: 35.2%
Dependent repos count: 35.5%
Average: 38.8%
Downloads: 71.5%
Maintainers (1)
Last synced: 10 months ago

Dependencies

.github/workflows/check-standard.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/update_version.yaml actions
  • EndBug/add-and-commit v7.5.0 composite
  • actions/checkout v2 composite
  • r-lib/actions/setup-r v2 composite
DESCRIPTION cran
  • R >= 3.1.0 depends
  • cli * imports
  • dplyr * imports
  • forcats * imports
  • glue * imports
  • haven * imports
  • labelled * imports
  • purrr * imports
  • readr * imports
  • rlang * imports
  • stringr * imports
  • tibble * imports
  • tidyr * imports
  • callr * suggests
  • covr * suggests
  • crosstable * suggests
  • knitr * suggests
  • testthat >= 3.0.0 suggests
  • withr * suggests
.github/workflows/pkgdown.yaml actions
  • JamesIves/github-pages-deploy-action v4.4.1 composite
  • actions/checkout v3 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite