Type: | Package |
Title: | Automatic Estimation of the Most Likely Drug Combination using Smooth Algorithm |
Version: | 1.0.0 |
Description: | A flexible moving average algorithm for modeling drug exposure in pharmacoepidemiology studies as presented in the article: Ouchi, D., Giner-Soriano, M., Gómez-Lumbreras, A., Vedia Urgell, C.,Torres, F., & Morros, R. (2022). "Automatic Estimation of the Most Likely Drug Combination in Electronic Health Records Using the Smooth Algorithm : Development and Validation Study." JMIR medical informatics, 10(11), e37976. <doi:10.2196/37976>. |
License: | GPL (≥ 3) |
Encoding: | UTF-8 |
RoxygenNote: | 7.2.3 |
Depends: | R (≥ 4.3) |
Imports: | dplyr, tidyr (≥ 1.3.0), zoo (≥ 1.8), stringr |
LazyData: | true |
Suggests: | knitr, rmarkdown, ggplot2, gridExtra |
VignetteBuilder: | knitr |
NeedsCompilation: | no |
Packaged: | 2023-08-10 06:01:59 UTC; douchi |
Author: | Dan Ouchi |
Maintainer: | Dan Ouchi <dan.ouchi.vernet@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2023-08-11 07:50:02 UTC |
Drug Administration Data
Description
This dataset contains information about drug administration. Each row represents a unique drug administration event.
Usage
drugstreatment
Format
A data frame with the following columns:
- id
Unique identifier for each drug administration event.
- start_date
The start date of drug administration.
- end_date
The end date of drug administration.
- drug
The name of the drug administered.
Examples
data("drugstreatment")
head(drugstreatment)
Apply Smooth Algorithm in a Dataset
Description
Description part
Usage
smooth_algorithm(id, treatment, day, N, width = 61)
Arguments
id |
Unique identifier of the patient. |
treatment |
Name of the drug used. |
day |
Day of the treatment. |
N |
Number of drugs used in the treatment. |
width |
An integer specifying the window width (in numbers of days, 61 by default). |
Value
A data.frame with the following structure:
- id
A character vector representing the unique identifier for each patient.
- day
A character vector representing the date when the treatment was administered to the patients.
- treatment
A character vector representing the type of treatment given to each patient.
- smoothed_treatment
A character vector representing the smoothed treatment given to each patient.
Examples
library(smoothy)
library(dplyr)
data(drugstreatment)
df <- drugstreatment |>
filter(id == "01f13c15-d9f1-4106-a04f-976c457edd0a")
structured_df <- smooth_parse(
id = df$id,
start_date = df$start_date,
end_date = df$end_date,
drug = df$drug,
study_from = "1970-01-01",
study_to = "1975-01-01"
)
head(structured_df)
id = structured_df$id
treatment = structured_df$treatment
day = structured_df$day
N = structured_df$N
width = 61
smoothed <- smooth_algorithm(id = id, treatment = treatment, day = day, N = N, width = width)
head(smoothed)
Deparse
Description
Transforms the Data with a Row by Date to a Row by Individual.
Usage
smooth_deparse(id, day, treatment)
Arguments
id |
Unique identifier of the patient. |
day |
Day of the treatment. |
treatment |
A character vector representing the type of treatment given to each patient. |
Value
A data.frame with the following structure:
- id
A character vector representing the unique identifier for each patient.
- start_date
Start date of the treatment.
- end_date
End date of the treatment.
- treatment
A character vector representing the type of treatment given to each patient.
Examples
library(smoothy)
library(dplyr)
data(drugstreatment)
my_data <- filter(drugstreatment, id == "01f13c15-d9f1-4106-a04f-976c457edd0a")
structured_df <- smooth_parse(
id = my_data$id,
start_date = my_data$start_date,
end_date = my_data$end_date,
drug = my_data$drug,
study_from = "1970-01-01",
study_to = "1975-01-01"
)
head(structured_df)
id = structured_df$id
treatment = structured_df$treatment
day = structured_df$day
N = structured_df$N
width = 61
smoothed <- smooth_algorithm(id = id, treatment = treatment, day = day, N = N, width = width)
head(smoothed)
deparsed_treatment <- smooth_deparse(smoothed$id, smoothed$day, smoothed$treatment)
deparsed_smothed <- smooth_deparse(smoothed$id, smoothed$day, smoothed$smoothed_treatment)
Compute the Difference Between Initial and Smoothed Treatment
Description
This function computes the differences between the initial treatment and the treatment when it's smoothed.
Usage
smooth_diff(treatment, smoothed_treatment)
Arguments
treatment |
a character vector containing the original treatment data.. |
smoothed_treatment |
a character vector containing the smoothed treatment return by |
Value
A data.frame with three columns: diff_type , diff, change and treatment:
- type
A character vector representing indicating the type of difference computed.
- days_changed
The number of different items.
- proportion_of_change
The proportion of difference computed as number of diferent rows over number of rows.
- treatment
A character vector representing the type of treatment given to each patient.
Examples
library(smoothy)
library(dplyr)
data(drugstreatment)
my_data <- filter(drugstreatment, id == "01f13c15-d9f1-4106-a04f-976c457edd0a")
structured_df <- smooth_parse(
id = my_data$id,
start_date = my_data$start_date,
end_date = my_data$end_date,
drug = my_data$drug,
study_from = "1970-01-01",
study_to = "1975-01-01"
)
head(structured_df)
id = structured_df$id
treatment = structured_df$treatment
day = structured_df$day
N = structured_df$N
width = 61
smoothed <- smooth_algorithm(id = id, treatment = treatment, day = day, N = N, width = width)
head(smoothed)
smooth_diff(treatment = smoothed$treatment, smoothed_treatment = smoothed$smoothed_treatment)
Transform Data to be Used in smooth_algorithm()
Function
Description
This function transforms the data to obtain the daily treatment.
Usage
smooth_parse(
id,
start_date,
end_date,
drug,
study_from = min(start_date),
study_to = max(end_date)
)
Arguments
id |
Unique identifier of the patient. |
start_date |
Start date of the treatment. |
end_date |
End date of the treatment. |
drug |
Name of the drug used. |
study_from |
A date indicating when the study start. |
study_to |
A date indicating when the study finish. |
Value
A data.frame with the following structure:
- id
Unique identifier of the patient.
- drug
Name of the drug used.
- day
Day of the treatment.
- N
Number of drugs used in the treatment
Examples
library(smoothy)
library(dplyr)
data(drugstreatment)
df <- drugstreatment |>
filter(id == "01f13c15-d9f1-4106-a04f-976c457edd0a")
structured_df <- smooth_parse(
id = df$id,
start_date = df$start_date,
end_date = df$end_date,
drug = df$drug,
study_from = "1970-01-01",
study_to = "1975-01-01"
)
head(structured_df)