set.seed(65535)
participants <- seq_len(3)
sessions_per_cond <- 4
ctrl_sim <- abs(rnorm(max(participants) * sessions_per_cond, 0, 0.125))
attn_sim <- abs(rnorm(max(participants) * sessions_per_cond, 1, 0.25))
dmnd_sim <- abs(rnorm(max(participants) * sessions_per_cond, 1, 0.25))
tang_sim <- abs(rnorm(max(participants) * sessions_per_cond, 0, 0.125))
data_frame <- data.frame(
Participant = numeric(0),
Condition = character(0),
CTB = numeric(0),
Session = numeric(0)
)
for (p in participants) {
conditions <- c(
rep("Control", sessions_per_cond),
rep("Attention", sessions_per_cond),
rep("Demand", sessions_per_cond),
rep("Tangible", sessions_per_cond)
)
indices <- (p - 1) * sessions_per_cond + 1
indices <- c(
indices,
indices + 1,
indices + 2,
indices + 3
)
rates <- c(
ctrl_sim[indices],
attn_sim[indices],
dmnd_sim[indices],
tang_sim[indices]
)
new_p <- data.frame(
Participant = rep(p, sessions_per_cond * 4),
Condition = conditions,
CTB = rates
)
new_p_shuffled <- new_p[sample(1:nrow(new_p)), ]
new_p_shuffled$Session <- 1:nrow(new_p)
data_frame <- rbind(
data_frame,
new_p_shuffled
)
}
data_frame$Integrity <- sample(
70:100,
nrow(data_frame),
replace = TRUE
)
bar_styler <- function(data_frame, ...) {
input_list <- list(...)
local_frame <- input_list[["plot_frame"]]
local_frame$col <- "orange"
local_frame[local_frame$pct >= .95, "col"] <- "green"
local_frame[local_frame$pct < .95 & local_frame$pct >= .80, "col"] <- "lightgreen"
local_frame[local_frame$pct < .80, "col"] <- "orange"
rect(local_frame$X - 0.25,
0,
local_frame$X + 0.25,
local_frame$mod_y,
col = local_frame$col
)
}
describe("FA Plot with Integrity", {
it("Should render as normal", {
expect_no_error(
scr_plot(
data_frame,
aesthetics = var_map(
x = Session,
y = CTB,
p = Condition,
facet = Participant
),
mai = c(
0.5,
0.5,
0.1,
0.5
),
omi = c(
0.25,
0.25,
0.25,
0.25
)
) |>
scr_yoverride(c(-.175, 5),
yticks = c(0, 1, 2, 3, 4, 5),
ytickslabs = c("0", "1", "2", "3", "4", "5")
) |>
scr_xoverride(c(0.5, 16.5),
xticks = 1:16,
xtickslabs = as.character(1:16)
) |>
scr_bar_support(
color = rgb(.8, .8, .8, alpha = 1),
guide_line = 80,
guide_line_color = "blue",
guide_line_type = 2,
guide_line_size = 1,
styler = bar_styler,
label = "Procedural Fidelity",
mapping = list(
x = Session,
y = Integrity
)
) |>
scr_lines(
size = 1
) |>
scr_points(
cex = 2,
pch = list(
"Control" = 21,
"Attention" = 22,
"Demand" = 24,
"Tangible" = 8
),
fill = list(
"Control" = "black",
"Attention" = "white",
"Demand" = "white",
"Tangible" = "black"
),
color = list(
"Control" = "black",
"Attention" = "black",
"Demand" = "black",
"Tangible" = "black"
)
) |>
scr_xlabel("Session") |>
scr_ylabel("Combined Target Behavior (Per Minute)") |>
scr_title("Analog Functional Analyses an Assocated Procedural Fidelity") |>
scr_legend(
panel = "3",
position = list(
x = 0.85,
y = 4.75
), # Specify legend location
legend = c(
"Toy Play", # labels to include (ordered)
"Attention",
"Demand",
"Tangible"
),
col = c(
"black", # color of markers (ordered)
"black",
"black",
"black"
),
bg = "white",
pt_bg = c(
"black", # color of markers (ordered)
"white",
"white",
"black"
),
lty = c(1, 1, 1, 1), # line types (ordered)
pch = c(16, 22, 24, 8), # marker types (ordered)
bty = "y", # remove border
pt_cex = 2.25, # point size scale
cex = 1.25, # text size scale
text_col = "black", # text color
horiz = FALSE, # list items vertically
box_lty = 1
) |>
print()
)
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.