Nothing
## ----setup, echo = FALSE------------------------------------------------------
knitr::opts_chunk$set(
echo = TRUE, warning = FALSE, message = FALSE, collapse = TRUE,
comment = "#>", out.width = "75%", fig.asp = 1 / 1.6, fig.width = 5
)
pckg <- c("actigraph.sleepr", "dplyr", "tidyr", "lubridate", "ggplot2")
inst <- suppressMessages(lapply(pckg, library, character.only = TRUE))
theme_set(
theme_light() +
theme(title = element_text(size = 7))
)
## -----------------------------------------------------------------------------
file_10s <- system.file(
"extdata", "GT3XPlus-RawData-Day01.agd",
package = "actigraph.sleepr"
)
## -----------------------------------------------------------------------------
# UTC (Coordinated Universal Time) is the default time zone
agdb_10s_raw <- read_agd_raw(file_10s, tz = "UTC")
names(agdb_10s_raw)
## -----------------------------------------------------------------------------
agdb_10s <- read_agd(file_10s, tz = "UTC")
attributes(agdb_10s)[10:12]
## -----------------------------------------------------------------------------
agdb_10s <- agdb_10s %>%
select(timestamp, starts_with("axis")) %>%
mutate(magnitude = sqrt(axis1^2 + axis2^2 + axis3^2))
agdb_10s
## -----------------------------------------------------------------------------
plot_activity(agdb_10s, axis1) +
labs(
x = "",
y = "movement (vertical direction)",
title = "24 hours of activity measured every 10 seconds"
) +
scale_x_datetime(date_labels = "%I%p")
## -----------------------------------------------------------------------------
# Collapse epochs from 10 sec to 60 sec by summing counts
agdb_60s <- agdb_10s %>% collapse_epochs(60)
agdb_60s
## -----------------------------------------------------------------------------
plot_activity(agdb_60s, axis1) +
labs(
x = "",
y = "movement (vertical direction)",
title = "24 hours of activity data measured every minute"
) +
scale_x_datetime(date_labels = "%I%p")
## ----eval = TRUE--------------------------------------------------------------
library("purrr")
# Construct a path to the directory which contains the raw AGD files
path <- system.file("extdata", package = "actigraph.sleepr")
list.files(path, pattern = "*.agd", full.names = TRUE) %>%
map_dfr(
~ read_agd(.) %>% collapse_epochs(60),
.id = ".filename"
)
## -----------------------------------------------------------------------------
agdb_sadeh <- agdb_60s %>% apply_sadeh()
## -----------------------------------------------------------------------------
plot_activity(agdb_sadeh, axis1, color = "sleep") +
labs(
x = "",
y = "movement (bounded at 300)",
title = paste(
"For each epoch, Sadeh infers whether",
"the subject is asleep (red) or awake (blue)"
)
) +
scale_x_datetime(date_labels = "%I%p") +
guides(color = FALSE, fill = FALSE)
## -----------------------------------------------------------------------------
agdb_colekripke <- agdb_60s %>% apply_cole_kripke()
## -----------------------------------------------------------------------------
plot_activity(agdb_colekripke, axis1, color = "sleep") +
labs(
x = "",
y = "movement (bounded at 300)",
title = paste(
"For each epoch, Cole-Kripke infers whether",
"the subject is asleep (red) or awake (blue)"
)
) +
scale_x_datetime(date_labels = "%I%p") +
guides(color = FALSE, fill = FALSE)
## -----------------------------------------------------------------------------
table(agdb_sadeh$sleep, agdb_colekripke$sleep)
## -----------------------------------------------------------------------------
periods_sleep <- agdb_sadeh %>% apply_tudor_locke()
periods_sleep
## -----------------------------------------------------------------------------
plot_activity_period(
agdb_60s, periods_sleep, axis1,
in_bed_time, out_bed_time,
fill = "#AAAAAA"
) +
scale_x_datetime(date_labels = "%I%p") +
labs(
x = "",
y = "movement",
title = paste(
"Tudor-Locke detects sleep periods in a series of",
"sleep-scored epochs (Ws and Ss)\n",
"Sleep periods, if any, are highlighted as gray rectangles"
)
)
## -----------------------------------------------------------------------------
periods_awake <- complement_periods(
periods_sleep, agdb_sadeh,
in_bed_time, out_bed_time
)
periods_awake
## -----------------------------------------------------------------------------
# Let's label the epochs with a `period_id`, which indicates the awake period
# that each epoch falls in. The ids are consecutive integers starting from 1.
# If the epoch is outside an awake period, then `period_id` is NA.
agdb_awake <- combine_epochs_periods(
agdb_sadeh, periods_awake,
period_start, period_end
)
agdb_awake
agdb_awake %>% count(period_id)
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.