Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

getData: add fread support, refactor code, expand roxygen #27

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion FourCePhase2.1Data/DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,5 @@ Description: What the package does (one paragraph).
License: What license it uses
Encoding: UTF-8
LazyData: true
RoxygenNote: 6.1.1
RoxygenNote: 7.1.2
Roxygen: list(markdown = TRUE)
37 changes: 20 additions & 17 deletions FourCePhase2.1Data/NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,33 @@ importFrom(tidyr,spread)
importFrom(survival,survfit,Surv,coxph)
importFrom(stringr,str_to_title,str_trim)
importFrom(data.table,data.table)

export(get4ceFile)
export(get4ceRootDirectoryName)
export(getClinicalCourse)
export(getClinicalCourse_nodocker)
export(getContainerScratchDirectory)
export(getDailyCounts)
export(getDailyCounts_nodocker)
export(getDemographics)
export(getDemographics_nodocker)
export(getDiagnoses)
export(getDiagnoses_nodocker)
export(getInputDataDirectoryName)
export(getSiteId)
export(getLabs)
export(getLabs_nodocker)
export(getLocalPatientClinicalCourse)
export(getLocalPatientClinicalCourse_nodocker)
export(getLocalPatientMapping)
export(getLocalPatientMapping_nodocker)
export(getLocalPatientObservations)
export(getLocalPatientObservations_nodocker)
export(getLocalPatientSummary)
export(getLocalPatientMapping)
export(getLabs)
export(getLocalPatientSummary_nodocker)
export(getMedications)
export(getDiagnoses)
export(getDemographics)
export(getDailyCounts)
export(getClinicalCourse)
export(getMedications_nodocker)
export(getObfuscation)
export(getSiteId)
export(runQC)
export(getLocalPatientClinicalCourse_nodocker)
export(getLocalPatientObservations_nodocker)
export(getLocalPatientSummary_nodocker)
export(getLocalPatientMapping_nodocker)
export(getLabs_nodocker)
export(getMedications_nodocker)
export(getDiagnoses_nodocker)
export(getDemographics_nodocker)
export(getDailyCounts_nodocker)
export(getClinicalCourse_nodocker)
export(runQC_nodocker)
importFrom(utils,read.csv)
145 changes: 99 additions & 46 deletions FourCePhase2.1Data/R/getData.R
Original file line number Diff line number Diff line change
@@ -1,70 +1,123 @@

#' Obtain the phase2.1 data
#' Import a 4CE CSV file
#'
#' Files are loaded from the input data directory, optionally using [data.table::fread()].
#'
#' @param filename Name of the file, such as LocalPatientSummary.csv
#' @param dir.input Input directory, which is via [getInputDataDirectoryName()]
#' if using docker.
#' @param fread if TRUE, use data.table::fread() for faster import. Otherwise
#' use read.csv(). This will also check the 4ce.fread option to make it work
#' without passing a function argument.
#' @param tolower Lowercase column names? (default: yes)
#' @param ... (Optional) Additional arguments passed through to fread() or
#' read.csv()
#'
#' @keywords 4CE Phase2 Project
#' @seealso [data.table::fread()], [utils::read.csv()]
#'
#' @export
#' @importFrom utils read.csv
get4ceFile <-
function(filename,
dir.input = getInputDataDirectoryName(),
fread = getOption("4ce.fread", FALSE),
tolower = TRUE,
...) {

filepath = file.path(dir.input, filename)

if (fread) {
df = data.table::fread(filepath, data.table = FALSE, ...)
} else {
df = read.csv(filepath, ...)
}

if (tolower) {
colnames(df) = tolower(colnames(df))
}

return(df)
}

getLocalPatientClinicalCourse<- function(siteid) {
dir.input=getInputDataDirectoryName()
LocalPatientClinicalCourse=read.csv(paste0(dir.input, "/LocalPatientClinicalCourse.csv"))
colnames(LocalPatientClinicalCourse)=tolower(colnames(LocalPatientClinicalCourse))
LocalPatientClinicalCourse
#' Import LocalPatientClinicalCourse.csv
#'
#' Uses [get4ceFile()] - see that file for additional customization.
#'
#' @param siteid (unused)
#' @param ... (Optional) Additional arguments passed to [get4ceFile()].
#'
#' @seealso [get4ceFile()]
#' @export
getLocalPatientClinicalCourse <- function(siteid = NULL, ...) {
get4ceFile("LocalPatientClinicalCourse.csv", ...)
}

getLocalPatientObservations<- function(siteid) {
dir.input=getInputDataDirectoryName()
LocalPatientObservations=read.csv(paste0(dir.input, "/LocalPatientObservations.csv"))
colnames(LocalPatientObservations)=tolower(colnames(LocalPatientObservations))
LocalPatientObservations
#' Import LocalPatientObservations.csv
#' @inherit getLocalPatientClinicalCourse
#' @export
getLocalPatientObservations <- function(siteid = NULL, ...) {
get4ceFile("LocalPatientObservations.csv", ...)
}

getLocalPatientSummary<- function(siteid) {
dir.input=getInputDataDirectoryName()
LocalPatientSummary=read.csv(paste0(dir.input, "/LocalPatientSummary.csv"))
colnames(LocalPatientSummary)=tolower(colnames(LocalPatientSummary))
LocalPatientSummary
#' Import LocalPatientSummary.csv
#' @inherit getLocalPatientClinicalCourse
#' @export
getLocalPatientSummary <- function(siteid = NULL, ...) {
get4ceFile("LocalPatientSummary.csv", ...)
}

getLocalPatientMapping<- function(siteid) {
dir.input=getInputDataDirectoryName()
LocalPatientMapping=read.csv(paste0(dir.input, "/LocalPatientMapping.csv"))
colnames(LocalPatientMapping)=tolower(colnames(LocalPatientMapping))
LocalPatientMapping
#' Import LocalPatientMapping.csv
#' @inherit getLocalPatientClinicalCourse
#' @export
getLocalPatientMapping<- function(siteid = NULL, ...) {
get4ceFile("LocalPatientMapping.csv", ...)
}

getLabs<- function(siteid) {
dir.input=getInputDataDirectoryName()
Labs=read.csv(paste0(dir.input,"/Labs-", siteid,".csv"))
Labs
#' Import Labs-yoursite.csv
#'
#' Uses [get4ceFile()] - see that file for additional customization.
#'
#' @param siteid Name of your site.
#' @param ... (Optional) Additional arguments passed to [get4ceFile()].
#
#' @seealso [get4ceFile()]
#' @export
getLabs<- function(siteid, ...) {
get4ceFile(paste0("Labs-", siteid, ".csv"), tolower = FALSE, ...)
}

getMedications<- function(siteid) {
dir.input=getInputDataDirectoryName()
Medications=read.csv(paste0(dir.input,"/Medications-", siteid,".csv"))
Medications
#' Import Medications-yoursite.csv
#' @inherit getLabs
#' @export
getMedications<- function(siteid, ...) {
get4ceFile(paste0("Medications-", siteid, ".csv"), tolower = FALSE, ...)
}

getDiagnoses<- function(siteid) {
dir.input=getInputDataDirectoryName()
Diagnoses=read.csv(paste0(dir.input,"/Diagnoses-", siteid,".csv"))
Diagnoses
#' Import Diagnoses-yoursite.csv
#' @inheritParams getLabs
#' @export
getDiagnoses<- function(siteid, ...) {
get4ceFile(paste0("Diagnoses-", siteid, ".csv"), tolower = FALSE, ...)
}

getDemographics<- function(siteid) {
dir.input=getInputDataDirectoryName()
Demographics=read.csv(paste0(dir.input,"/Demographics-", siteid,".csv"))
Demographics
#' Import Demographics-yoursite.csv
#' @inheritParams getLabs
#' @export
getDemographics<- function(siteid, ...) {
get4ceFile(paste0("Demographics-", siteid, ".csv"), tolower = FALSE, ...)
}

getDailyCounts<- function(siteid) {
dir.input=getInputDataDirectoryName()
DailyCounts=read.csv(paste0(dir.input,"/DailyCounts-", siteid,".csv"))
DailyCounts
#' Import DailyCounts-yoursite.csv
#' @inheritParams getLabs
#' @export
getDailyCounts<- function(siteid, ...) {
get4ceFile(paste0("DailyCounts-", siteid, ".csv"), tolower = FALSE, ...)
}

getClinicalCourse<- function(siteid) {
dir.input=getInputDataDirectoryName()
ClinicalCourse=read.csv(paste0(dir.input,"/ClinicalCourse-", siteid,".csv"))
ClinicalCourse
#' Import ClinicalCourse-yoursite.csv
#' @inheritParams getLabs
#' @export
getClinicalCourse<- function(siteid, ...) {
get4ceFile(paste0("ClinicalCourse-", siteid, ".csv"), tolower = FALSE, ...)
}

104 changes: 65 additions & 39 deletions FourCePhase2.1Data/R/getData_nodocker.R
Original file line number Diff line number Diff line change
@@ -1,60 +1,86 @@

#' Obtain the phase2.1 data
#'
#' @keywords 4CE Phase2 Project
#' Import LocaLPatientClinicalCourse.csv
#'
#' Uses [get4ceFile()] - see that file for additional customization.
#'
#' @param siteid Name of your site.
#' @param dir.input Input directory
#' @param ... (Optional) Additional arguments passed to [get4ceFile()].
#
#' @seealso [get4ceFile()]
#' @export

getLocalPatientClinicalCourse_nodocker<- function(siteid, dir.input) {
LocalPatientClinicalCourse=read.csv(file.path(dir.input, "LocalPatientClinicalCourse.csv"))
colnames(LocalPatientClinicalCourse)=tolower(colnames(LocalPatientClinicalCourse))
LocalPatientClinicalCourse
getLocalPatientClinicalCourse_nodocker <- function(siteid, dir.input, ...) {
get4ceFile("LocalPatientClinicalCourse.csv", dir.input, ...)
}

getLocalPatientObservations_nodocker<- function(siteid, dir.input) {
LocalPatientObservations=read.csv(file.path(dir.input, "LocalPatientObservations.csv"))
colnames(LocalPatientObservations)=tolower(colnames(LocalPatientObservations))
LocalPatientObservations

#' Import LocaLPatientObservations.csv
#' @inherit getLocalPatientClinicalCourse_nodocker
#' @export
getLocalPatientObservations_nodocker <- function(siteid, dir.input, ...) {
get4ceFile("LocalPatientObservations.csv", dir.input, ...)
}

getLocalPatientSummary_nodocker<- function(siteid, dir.input) {
LocalPatientSummary=read.csv(file.path(dir.input, "LocalPatientSummary.csv"))
colnames(LocalPatientSummary)=tolower(colnames(LocalPatientSummary))
LocalPatientSummary
#' Import LocaLPatientSummary.csv
#' @inherit getLocalPatientClinicalCourse_nodocker
#' @export
getLocalPatientSummary_nodocker <- function(siteid, dir.input, ...) {
get4ceFile("LocalPatientSummary.csv", dir.input, ...)
}

getLocalPatientMapping_nodocker<- function(siteid, dir.input) {
LocalPatientMapping=read.csv(file.path(dir.input, "LocalPatientMapping.csv"))
colnames(LocalPatientMapping)=tolower(colnames(LocalPatientMapping))
LocalPatientMapping
#' Import LocaLPatientSummary.csv
#' @inherit getLocalPatientClinicalCourse_nodocker
#' @export
getLocalPatientMapping_nodocker <- function(siteid, dir.input, ...) {
get4ceFile("LocalPatientMapping.csv", dir.input, ...)
}

getLabs_nodocker<- function(siteid,dir.input) {
Labs=read.csv(file.path(dir.input,paste0("Labs-", siteid,".csv")))
Labs
#' Import Labs-yoursite.csv
#'
#' Uses [get4ceFile()] - see that file for additional customization.
#'
#' @param siteid Name of your site.
#' @param dir.input Input directory
#' @param ... (Optional) Additional arguments passed to [get4ceFile()].
#
#' @seealso [get4ceFile()]
#' @export
getLabs_nodocker <- function(siteid, dir.input, ...) {
get4ceFile(paste0("Labs-", siteid,".csv"), dir.input, tolower = FALSE, ...)
}

getMedications_nodocker<- function(siteid,dir.input) {
Medications=read.csv(file.path(dir.input,paste0("Medications-", siteid,".csv")))
Medications

#' Import Medications-yoursite.csv
#' @inherit getLabs_nodocker
#' @export
getMedications_nodocker <- function(siteid, dir.input, ...) {
get4ceFile(paste0("Medications-", siteid,".csv"), dir.input, tolower = FALSE, ...)
}

getDiagnoses_nodocker<- function(siteid,dir.input) {
Diagnoses=read.csv(file.path(dir.input,paste0("Diagnoses-", siteid,".csv")))
Diagnoses
#' Import Diagnoses-yoursite.csv
#' @inherit getLabs_nodocker
#' @export
getDiagnoses_nodocker <- function(siteid, dir.input, ...) {
get4ceFile(paste0("Diagnoses-", siteid,".csv"), dir.input, tolower = FALSE, ...)
}

getDemographics_nodocker<- function(siteid,dir.input) {
Demographics=read.csv(file.path(dir.input,paste0("Demographics-", siteid,".csv")))
Demographics
#' Import Demographics-yoursite.csv
#' @inherit getLabs_nodocker
#' @export
getDemographics_nodocker <- function(siteid, dir.input, ...) {
get4ceFile(paste0("Demographics-", siteid,".csv"), dir.input, tolower = FALSE, ...)
}

getDailyCounts_nodocker<- function(siteid,dir.input) {
DailyCounts=read.csv(file.path(dir.input,paste0("DailyCounts-", siteid,".csv")))
DailyCounts
#' Import DailyCounts-yoursite.csv
#' @inherit getLabs_nodocker
#' @export
getDailyCounts_nodocker <- function(siteid, dir.input, ...) {
get4ceFile(paste0("DailyCounts-", siteid,".csv"), dir.input, tolower = FALSE, ...)
}

getClinicalCourse_nodocker<- function(siteid,dir.input) {
ClinicalCourse=read.csv(file.path(dir.input,paste0("ClinicalCourse-", siteid,".csv")))
ClinicalCourse
#' Import ClinicalCourse-yoursite.csv
#' @inherit getLabs_nodocker
#' @export
getClinicalCourse_nodocker <- function(siteid, dir.input, ...) {
get4ceFile(paste0("ClinicalCourse-", siteid,".csv"), dir.input, tolower = FALSE, ...)
}

35 changes: 35 additions & 0 deletions FourCePhase2.1Data/man/get4ceFile.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading