Count and format stages transitions.
transitions(
hypnogram,
stages = c("AWA", "REM", "N1", "N2", "N3"),
format = "vector"
)
A hypnogram dataframe. Dataframe must contain begin
(POSIXt
), end
(POSIXt
) and event
(character
) columns.
Stages to include in transitions Defaults to c("N1", "N2", "N3", "N4", "REM")
.
Set the return format. 'vector', 'dataframe' or 'heatmap'.
Count of stages transitions in selected format.
Swihart BJ, Punjabi NM, Crainiceanu CM. Modeling sleep fragmentation in sleep hypnograms: An instance of fast, scalable discrete-state, discrete-time analyses. Comput Stat Data Anal. 2015 Sep;89:1-11. doi: 10.1016/j.csda.2015.03.001. PMID: 27182097; PMCID: PMC4865264.
download.file("https://rsleep.org/data/hypnodensity.csv", "hypnodensity.csv")
hypnodensity <- read.csv2("hypnodensity.csv")
unlink("hypnodensity.csv")
events <- hypnogram(hypnodensity)
transitions(events)
#> AWA_AWA AWA_REM AWA_N1 AWA_N2 AWA_N3 REM_AWA REM_REM REM_N1 REM_N2 REM_N3
#> 120 9 44 0 1 26 269 38 48 1
#> N1_AWA N1_REM N1_N1 N1_N2 N1_N3 N2_AWA N2_REM N2_N1 N2_N2 N2_N3
#> 20 43 35 27 0 6 60 9 391 35
#> N3_AWA N3_REM N3_N1 N3_N2 N3_N3
#> 1 1 0 35 252
transitions(events, format = "dataframe")
#> AWA REM N1 N2 N3
#> AWA 120 9 44 0 1
#> REM 26 269 38 48 1
#> N1 20 43 35 27 0
#> N2 6 60 9 391 35
#> N3 1 1 0 35 252
transitions(events, format = "heatmap")
events <- data.frame(event = c(
"AWA","N1","N2","N2", "N3","N3",
"REM","N2","REM","REM", "N2","REM","AWA"))
events$begin <- as.POSIXlt(seq(from = 0, to = 30*(nrow(events)-1), by = 30),origin = "1970-01-01")
events$end <- as.POSIXlt(seq(from = 30, to = 30*nrow(events), by = 30), origin = "1970-01-01")
transitions(events)
#> AWA_AWA AWA_REM AWA_N1 AWA_N2 AWA_N3 REM_AWA REM_REM REM_N1 REM_N2 REM_N3
#> 0 0 1 0 0 1 1 0 2 0
#> N1_AWA N1_REM N1_N1 N1_N2 N1_N3 N2_AWA N2_REM N2_N1 N2_N2 N2_N3
#> 0 0 0 1 0 0 2 0 1 1
#> N3_AWA N3_REM N3_N1 N3_N2 N3_N3
#> 0 1 0 0 1
transitions(events, format = "dataframe")
#> AWA REM N1 N2 N3
#> AWA 0 0 1 0 0
#> REM 1 1 0 2 0
#> N1 0 0 0 1 0
#> N2 0 2 0 1 1
#> N3 0 1 0 0 1
transitions(events, format = "heatmap")