Nothing
## ----options, include = FALSE-------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
out.width = "90%",
fig.width = 6,
fig.asp = 0.618,
fig.align = "center",
dpi = 300
)
library(ggplot2)
ar <- arrow(length = unit(0.1, "inches"), type = "closed")
dsblue <- "#0053A4"
## ----setup--------------------------------------------------------------------
library(spiro)
# Get example data
file <- spiro_example("zan_gxt")
spiro(file)
## ----piping, eval = FALSE-----------------------------------------------------
# # Note: The Base R pipe requires R version 4.1 or greater
#
# protocol <- set_protocol(
# pt_wu(duration = 120, load = 50),
# pt_steps(duration = 30, load = 100, increment = 20, count = 24)
# )
#
# spiro(file = spiro_example("zan_ramp")) |>
# add_bodymass(bodymass = 63.4) |>
# add_protocol(protocol) |>
# add_hr(hr_file = spiro_example("hr_ramp.tcx"), hr_offset = 0)
## ----raw----------------------------------------------------------------------
spiro_raw(file, device = NULL, anonymize = TRUE)
## ----raw2, eval=FALSE---------------------------------------------------------
# s <- spiro(file)
# spiro_raw(s)
## ----protocol-----------------------------------------------------------------
s <- spiro(file)
attr(s,"protocol")
## ----set_protocol_manual------------------------------------------------------
# manually setting a test protocol
pt <- set_protocol_manual(
duration = c(60,300,30,300,30,300,30,300,30,300,30,300,30,300,30,300,30,300),
load = c(0,3,0,3.2,0,3.4,0,3.6,0,3.8,0,4,0,4.2,0,4.4,0,4.6)
)
# attach protocol within spiro call
s <- spiro(file, protocol = pt)
# attach protocol with `add_protocol`
t <- spiro(file)
add_protocol(t, pt)
## ----set_protocol-variables, echo=FALSE---------------------------------------
ar2 <- arrow(length = unit(0.1, "inches"), type = "closed", ends = "both")
path <- data.frame(
x = c(0,0.1,0.1,0.3,0.3,0.32,0.32,0.42,0.42,0.44,0.44,0.54,0.54,0.56,0.56,
0.66,0.66,0.68,0.68,0.78,0.78,0.8,0.8,0.9,0.9,0.95),
y = c(0,0,0.2,0.2,0,0,0.4,0.4,0,0,0.5,0.5,0,0,0.6,0.6,0,0,
0.7,0.7,0,0,0.8,0.8,0,0),
type = factor(
c("pre","wu","wu","wu","wu",rep("load",21)),
levels = c("pre","wu","load")
)
)
ggplot() +
(if (utils::packageVersion("ggplot2") >= "3.4") {
list(
geom_segment(
aes(x = 0, xend = 0.95, y = 0, yend = 0),
colour = "grey",
linewidth = 1
),
geom_path(
aes(x = x, y = y, colour = type),
data = path,
linewidth = 1,
group = TRUE,
show.legend = FALSE
)
)
} else {
list(
geom_segment(
aes(x = 0, xend = 0.95, y = 0, yend = 0),
colour = "grey",
size = 1
),
geom_path(
aes(x = x, y = y, colour = type),
data = path,
size = 1,
group = TRUE,
show.legend = FALSE
)
)
}) +
annotate(
"text",
x = c(0.03,0.05,0.05,0.05,0.03), y = c(0.98,0.91,0.84,0.77,0.70),
label = c(
"set_protocol(",
"pt_pre(duration),",
"pt_wu(duration, load, rest),",
"pt_steps(duration, load, increment, count, rest)",
")"
),
hjust = "left", vjust = "top",
colour = c("black", "#d55e00", "#009e73", dsblue, "black"),
size = 4.5
) +
scale_x_continuous(
limits = c(-0.02,1),
expand = expansion(0,0),
breaks = NULL
) +
scale_y_continuous(
limits = c(-0.15,1),
expand = expansion(0,0),
breaks = NULL
) +
scale_colour_manual(values = c("#d55e00","#009e73",dsblue)) +
labs(x = "time", y = "load") +
theme_minimal()
## ----set_protocol-------------------------------------------------------------
set_protocol(pt_pre(60), pt_wu(300,80), pt_steps(180,100,25,6,30))
## ----add_weight---------------------------------------------------------------
# set body mass as an argument in `spiro()`
s <- spiro(file, bodymass = 68.3)
# set body mass using `add_weight()`
t <- spiro(file)
u <- add_bodymass(t, 68.3)
## ----add_hr-------------------------------------------------------------------
# get example data file path
hpath <- spiro_example("hr_ramp.tcx")
# add heart rate data within `spiro()`
h <- spiro(file, hr_file = hpath, hr_offset = 0)
# add heart rate data with `add_hr()`
i <- spiro(file)
j <- add_hr(i, hr_file = hpath, hr_offset = 0)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.