# Example I: Single dose-response dataset
df <- data.frame(
dose = c(0.1, 0.3, 1, 3, 10, 30, 100),
response = c(5, 10, 25, 55, 80, 92, 98)
)
sigmoid_emax(
data = df,
dose_col = "dose",
response_col = "response"
)
# Example II: Two treatment groups
df2 <- data.frame(
dose = rep(c(0.1, 0.3, 1, 3, 10, 30), 2),
response = c(
3, 8, 20, 45, 70, 85, # Group A
2, 6, 15, 35, 60, 78 # Group B
),
treatment = rep(c("Group A", "Group B"), each = 6)
)
sigmoid_emax(
data = df2,
dose_col = "dose",
response_col = "response",
group_col = "treatment",
log_dose = TRUE
)
# Example III: Multiple subjects (population-style dose-response pharmacodynamics)
df_subjects <- data.frame(
dose = rep(c(0.1, 0.3, 1, 3, 10, 30), 5),
response = c(
5, 13, 30, 56, 80, 92, # Subject 1
4, 12, 28, 54, 78, 90, # Subject 2
6, 15, 33, 59, 83, 95, # Subject 3
5, 14, 31, 57, 81, 93, # Subject 4
3, 11, 26, 52, 76, 88 # Subject 5
),
subject = rep(paste0("S", 1:5), each = 6)
)
sigmoid_emax(
data = df_subjects,
dose_col = "dose",
response_col = "response",
group_col = "subject",
log_dose = TRUE
)
Run the code above in your browser using DataLab