Package 'smoothy'

Title: Automatic Estimation of the Most Likely Drug Combination using Smooth Algorithm
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>.
Authors: Dan Ouchi [aut, cre, cph] , Alvaro Franquet [aut]
Maintainer: Dan Ouchi <[email protected]>
License: GPL (>= 3)
Version: 1.0.0
Built: 2024-12-24 06:43:59 UTC
Source: CRAN

Help Index


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 smooth_algorithm function.

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)