Description Usage Arguments Value Note Author(s) See Also Examples
Determine which patients are susceptible or resistant to the guideline drugs, accounting for age category and other user defined covariates.
1 | whichPatientDrug(inf.data, drugGuideline.data, patientdrugs)
|
inf.data |
Linked HES-LabBase2 data set of exposed patients. |
drugGuideline.data |
A data.frame of which antibiotics are first-line treatments for which pathogen. |
patientdrugs |
List of drugs per patient. |
returns: A list of susceptible or resistant status per patient:
Per drug |
TRUE entry if guideline antibiotic and resistant/susceptible |
Aggregated across all drugs |
TRUE entry if guideline antibiotic and resistant/susceptible |
This is an alternative to the whichPatientDrug.join
function which uses joining operations.
N. Green
AgeCatModify
, whichPatientDrug.joins
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | data(infdata_sample)
data(antibioticLookup)
drug.names <<- factor(c("AMPAMOX","CTX","CTZ","CTRI","GENT","IMI","MERO",
"MET","PIPTAZ","CoNSmet","AMINOAMOX1","AMINOMET1","AMINOVAN1","CTXI1",
"pen","met","van2","AMINOAMOXAMP1","AMINOPIPTAZ1","AMINOCTZ1","AMINOIMI1","AMINOMER1","CTXI2"))
##################
# 0: susceptible #
# 1: resistant #
# NA: not tested #
##################
## extract drug columns from original inf.data dataset
inf.drug.data <- infdata_sample[, paste("lab_",drug.names,sep="")]
inf.drug.data <- data.frame(lapply(inf.drug.data, factor))
## make a list of the drugs administered to each patient
## for each response type
patientdrugs.res <- patientdrugs.sus <- list()
for (i in 1:nrow(inf.drug.data)){ # each patient
patientdrugs.res[[i]] <- drug.names[!is.na(inf.drug.data[i,]) & inf.drug.data[i,]==1] # resistant
patientdrugs.sus[[i]] <- drug.names[!is.na(inf.drug.data[i,]) & inf.drug.data[i,]==0] # susceptible
}
whichPatientDrug.res <- whichPatientDrug(infdata_sample, antibioticLookup.dat, patientdrugs.res)
whichPatientDrug.sus <- whichPatientDrug(infdata_sample, antibioticLookup.dat, patientdrugs.sus)
## The function is currently defined as
function (inf.data, drugGuideline.data, patientdrugs)
{
npatient <- length(patientdrugs)
ndrugs <- length(drug.names)
nguidelines <- nrow(drugGuideline.data)
FollowGuideline.tot <- rep(FALSE, npatient)
FollowGuideline.indiv <- matrix(NA, nrow = npatient, ncol = ndrugs)
colnames(FollowGuideline.indiv) <- drug.names
patient.age_cat <- AgeCatModify(inf.data)
for (i in 1:nguidelines) {
if (drugGuideline.data$drug_code[i] != "" & drugGuideline.data$drug_code[i] %in%
drug.names) {
drugMatch <- sapply(patientdrugs, function(x) drugGuideline.data$drug_code[i] %in%
x) & (drugGuideline.data$ageCat[i] == patient.age_cat |
drugGuideline.data$ageCat[i] == "") & (toupper(drugGuideline.data$suspected_organism[i]) ==
inf.data$lab_organismname | toupper(drugGuideline.data$suspected_organism[i]) ==
inf.data$lab_group | toupper(drugGuideline.data$suspected_organism[i]) ==
"")
drugCol <- as.character(drugGuideline.data$drug_code[i])
FollowGuideline.indiv[, drugCol] <- FollowGuideline.indiv[,
drugCol] | drugMatch
FollowGuideline.tot <- FollowGuideline.tot | drugMatch
}
}
list(indiv = FollowGuideline.indiv, all = FollowGuideline.tot)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.