This vignette renders and runs the example scripts provided in the
package’s /inst/examples/ directory, so you can see inputs,
outputs, and typical workflows in one HTML document.
If you are viewing this from RStudio Help, use the “Open in Browser” button for the best experience.
/inst/examples/.source(file.path(examples_dir, "grid.R"), echo = TRUE, print.eval = TRUE, max.deparse.length = Inf)
#>
#> > library(cgmguru)
#>
#> > library(iglu)
#>
#> > data(example_data_5_subject)
#>
#> > data(example_data_hall)
#>
#> > grid_result <- grid(example_data_5_subject, gap = 15,
#> + threshold = 130)
#>
#> > print(grid_result$episode_counts)
#> # A tibble: 5 × 2
#> id episode_counts
#> <chr> <int>
#> 1 Subject 1 10
#> 2 Subject 2 22
#> 3 Subject 3 7
#> 4 Subject 4 18
#> 5 Subject 5 42
#>
#> > print(grid_result$episode_start)
#> # A tibble: 99 × 4
#> id time gl indices
#> <chr> <dttm> <dbl> <int>
#> 1 Subject 1 2015-06-11 15:30:07 143 966
#> 2 Subject 1 2015-06-11 17:10:07 157 985
#> 3 Subject 1 2015-06-11 22:00:06 135 1038
#> 4 Subject 1 2015-06-11 22:25:06 162 1043
#> 5 Subject 1 2015-06-12 07:40:04 160 1154
#> 6 Subject 1 2015-06-13 16:34:59 132 1415
#> 7 Subject 1 2015-06-14 17:39:55 176 1676
#> 8 Subject 1 2015-06-16 19:14:47 166 2222
#> 9 Subject 1 2015-06-18 14:29:40 187 2720
#> 10 Subject 1 2015-06-18 18:19:39 132 2765
#> # ℹ 89 more rows
#>
#> > print(grid_result$grid_vector)
#> # A tibble: 13,866 × 1
#> grid
#> <int>
#> 1 0
#> 2 0
#> 3 0
#> 4 0
#> 5 0
#> 6 0
#> 7 0
#> 8 0
#> 9 0
#> 10 0
#> # ℹ 13,856 more rows
#>
#> > sensitive_result <- grid(example_data_5_subject, gap = 10,
#> + threshold = 120)
#>
#> > large_grid <- grid(example_data_hall, gap = 15, threshold = 130)
#>
#> > print(paste("Detected", sum(large_grid$episode_counts$episode_counts),
#> + "episodes"))
#> [1] "Detected 79 episodes"
#>
#> > print(large_grid$episode_start)
#> # A tibble: 79 × 4
#> id time gl indices
#> <chr> <dttm> <dbl> <int>
#> 1 1636-69-001 2014-02-04 07:47:05 138 336
#> 2 1636-69-001 2014-02-04 17:42:03 138 455
#> 3 1636-69-001 2014-02-05 08:41:59 137 635
#> 4 1636-69-001 2015-03-29 14:33:30 137 786
#> 5 1636-69-001 2015-03-30 10:53:25 132 979
#> 6 1636-69-001 2015-03-31 09:18:19 143 1202
#> 7 1636-69-001 2015-03-31 13:58:18 136 1258
#> 8 1636-69-001 2015-04-01 16:58:12 132 1581
#> 9 1636-69-026 2015-11-24 14:37:18 142 2011
#> 10 1636-69-026 2015-11-24 23:32:16 139 2118
#> # ℹ 69 more rows
#>
#> > print(large_grid$grid_vector)
#> # A tibble: 34,890 × 1
#> grid
#> <int>
#> 1 0
#> 2 0
#> 3 0
#> 4 0
#> 5 0
#> 6 0
#> 7 0
#> 8 0
#> 9 0
#> 10 0
#> # ℹ 34,880 more rowssource(file.path(examples_dir, "detect_all_events.R"), echo = TRUE, print.eval = TRUE, max.deparse.length = Inf)
#>
#> > library(cgmguru)
#>
#> > library(iglu)
#>
#> > data(example_data_5_subject)
#>
#> > data(example_data_hall)
#>
#> > all_events <- detect_all_events(example_data_5_subject,
#> + reading_minutes = 5)
#>
#> > print(all_events)
#> # A tibble: 40 × 6
#> id type level total_episodes avg_ep_per_day avg_episode_duration…¹
#> <chr> <chr> <chr> <int> <dbl> <dbl>
#> 1 Subject 1 hypo lv1 1 0.08 0
#> 2 Subject 1 hypo lv2 0 0 0
#> 3 Subject 1 hypo extended 0 0 0
#> 4 Subject 1 hypo lv1_excl 1 0.08 0
#> 5 Subject 1 hyper lv1 14 1.1 0
#> 6 Subject 1 hyper lv2 2 0.16 0
#> 7 Subject 1 hyper extended 0 0 0
#> 8 Subject 1 hyper lv1_excl 12 0.95 0
#> 9 Subject 2 hypo lv1 0 0 0
#> 10 Subject 2 hypo lv2 0 0 0
#> # ℹ 30 more rows
#> # ℹ abbreviated name: ¹avg_episode_duration_below_54
#>
#> > large_all_events <- detect_all_events(example_data_hall,
#> + reading_minutes = 5)
#>
#> > print(paste("Total event types analyzed:", nrow(large_all_events)))
#> [1] "Total event types analyzed: 152"
#>
#> > hyperglycemia_events <- all_events[all_events$type ==
#> + "hyper", ]
#>
#> > hypoglycemia_events <- all_events[all_events$type ==
#> + "hypo", ]
#>
#> > print("Hyperglycemia events:")
#> [1] "Hyperglycemia events:"
#>
#> > print(hyperglycemia_events)
#> # A tibble: 20 × 6
#> id type level total_episodes avg_ep_per_day avg_episode_duration…¹
#> <chr> <chr> <chr> <int> <dbl> <dbl>
#> 1 Subject 1 hyper lv1 14 1.1 0
#> 2 Subject 1 hyper lv2 2 0.16 0
#> 3 Subject 1 hyper extended 0 0 0
#> 4 Subject 1 hyper lv1_excl 12 0.95 0
#> 5 Subject 2 hyper lv1 17 1.02 0
#> 6 Subject 2 hyper lv2 18 1.08 0
#> 7 Subject 2 hyper extended 9 0.54 0
#> 8 Subject 2 hyper lv1_excl 0 0 0
#> 9 Subject 3 hyper lv1 8 1.39 0
#> 10 Subject 3 hyper lv2 4 0.69 0
#> 11 Subject 3 hyper extended 2 0.35 0
#> 12 Subject 3 hyper lv1_excl 4 0.69 0
#> 13 Subject 4 hyper lv1 13 1.01 0
#> 14 Subject 4 hyper lv2 0 0 0
#> 15 Subject 4 hyper extended 0 0 0
#> 16 Subject 4 hyper lv1_excl 13 1.01 0
#> 17 Subject 5 hyper lv1 34 3.21 0
#> 18 Subject 5 hyper lv2 17 1.6 0
#> 19 Subject 5 hyper extended 10 0.94 0
#> 20 Subject 5 hyper lv1_excl 17 1.6 0
#> # ℹ abbreviated name: ¹avg_episode_duration_below_54
#>
#> > print("Hypoglycemia events:")
#> [1] "Hypoglycemia events:"
#>
#> > print(hypoglycemia_events)
#> # A tibble: 20 × 6
#> id type level total_episodes avg_ep_per_day avg_episode_duration…¹
#> <chr> <chr> <chr> <int> <dbl> <dbl>
#> 1 Subject 1 hypo lv1 1 0.08 0
#> 2 Subject 1 hypo lv2 0 0 0
#> 3 Subject 1 hypo extended 0 0 0
#> 4 Subject 1 hypo lv1_excl 1 0.08 0
#> 5 Subject 2 hypo lv1 0 0 0
#> 6 Subject 2 hypo lv2 0 0 0
#> 7 Subject 2 hypo extended 0 0 0
#> 8 Subject 2 hypo lv1_excl 0 0 0
#> 9 Subject 3 hypo lv1 1 0.17 0
#> 10 Subject 3 hypo lv2 0 0 0
#> 11 Subject 3 hypo extended 0 0 0
#> 12 Subject 3 hypo lv1_excl 1 0.17 0
#> 13 Subject 4 hypo lv1 2 0.16 5
#> 14 Subject 4 hypo lv2 0 0 0
#> 15 Subject 4 hypo extended 0 0 0
#> 16 Subject 4 hypo lv1_excl 2 0.16 0
#> 17 Subject 5 hypo lv1 1 0.09 0
#> 18 Subject 5 hypo lv2 0 0 0
#> 19 Subject 5 hypo extended 0 0 0
#> 20 Subject 5 hypo lv1_excl 1 0.09 0
#> # ℹ abbreviated name: ¹avg_episode_duration_below_54source(file.path(examples_dir, "detect_hyperglycemic_events.R"), echo = TRUE, print.eval = TRUE, max.deparse.length = Inf)
#>
#> > library(cgmguru)
#>
#> > library(iglu)
#>
#> > data(example_data_5_subject)
#>
#> > data(example_data_hall)
#>
#> > hyper_lv1 <- detect_hyperglycemic_events(example_data_5_subject,
#> + start_gl = 180, dur_length = 15, end_length = 15, end_gl = 180)
#>
#> > print(hyper_lv1$events_total)
#> # A tibble: 5 × 3
#> id total_events avg_ep_per_day
#> <chr> <int> <dbl>
#> 1 Subject 1 14 1.1
#> 2 Subject 2 17 1.02
#> 3 Subject 3 8 1.39
#> 4 Subject 4 13 1.01
#> 5 Subject 5 34 3.21
#>
#> > hyper_lv2 <- detect_hyperglycemic_events(example_data_5_subject,
#> + start_gl = 250, dur_length = 15, end_length = 15, end_gl = 250)
#>
#> > print(hyper_lv2$events_total)
#> # A tibble: 5 × 3
#> id total_events avg_ep_per_day
#> <chr> <int> <dbl>
#> 1 Subject 1 2 0.16
#> 2 Subject 2 18 1.08
#> 3 Subject 3 4 0.69
#> 4 Subject 4 0 0
#> 5 Subject 5 17 1.6
#>
#> > hyper_extended <- detect_hyperglycemic_events(example_data_5_subject)
#>
#> > large_hyper <- detect_hyperglycemic_events(example_data_hall,
#> + start_gl = 180, dur_length = 15, end_length = 15, end_gl = 180)
#>
#> > print(paste("Total hyperglycemic events:", sum(large_hyper$events_total$total_events)))
#> [1] "Total hyperglycemic events: 47"
#>
#> > if (nrow(hyper_lv1$events_detailed) > 0) {
#> + first_subject <- hyper_lv1$events_detailed$id[1]
#> + subject_events <- hyper_lv1$events_detailed[hyper_lv1$events_detailed$id ==
#> + first_subject, ]
#> + head(subject_events)
#> + }
#> # A tibble: 6 × 7
#> id start_time start_glucose end_time end_glucose
#> <chr> <dttm> <dbl> <dttm> <dbl>
#> 1 Subject 1 2015-06-11 15:45:07 194 2015-06-11 17:10:07 157
#> 2 Subject 1 2015-06-11 17:25:07 195 2015-06-11 20:05:06 142
#> 3 Subject 1 2015-06-11 22:35:06 187 2015-06-12 00:05:06 151
#> 4 Subject 1 2015-06-12 07:50:04 181 2015-06-12 09:35:04 164
#> 5 Subject 1 2015-06-13 17:04:59 181 2015-06-13 18:40:00 155
#> 6 Subject 1 2015-06-13 19:44:59 223 2015-06-13 20:49:58 158
#> # ℹ 2 more variables: start_indices <int>, end_indices <int>source(file.path(examples_dir, "detect_hypoglycemic_events.R"), echo = TRUE, print.eval = TRUE, max.deparse.length = Inf)
#>
#> > library(cgmguru)
#>
#> > library(iglu)
#>
#> > data(example_data_5_subject)
#>
#> > data(example_data_hall)
#>
#> > hypo_lv1 <- detect_hypoglycemic_events(example_data_5_subject,
#> + start_gl = 70, dur_length = 15, end_length = 15)
#>
#> > print(hypo_lv1$events_total)
#> # A tibble: 5 × 3
#> id total_events avg_ep_per_day
#> <chr> <int> <dbl>
#> 1 Subject 1 1 0.08
#> 2 Subject 2 0 0
#> 3 Subject 3 1 0.17
#> 4 Subject 4 2 0.16
#> 5 Subject 5 1 0.09
#>
#> > hypo_lv2 <- detect_hypoglycemic_events(example_data_5_subject,
#> + start_gl = 54, dur_length = 15, end_length = 15)
#>
#> > hypo_extended <- detect_hypoglycemic_events(example_data_5_subject)
#>
#> > large_hypo <- detect_hypoglycemic_events(example_data_hall,
#> + start_gl = 70, dur_length = 15, end_length = 15)
#>
#> > print(paste("Total hypoglycemic events:", sum(large_hypo$events_total$total_events)))
#> [1] "Total hypoglycemic events: 45"
#>
#> > cat("Level 1 events:", sum(hypo_lv1$events_total$total_events),
#> + "\n")
#> Level 1 events: 5
#>
#> > cat("Level 2 events:", sum(hypo_lv2$events_total$total_events),
#> + "\n")
#> Level 2 events: 0source(file.path(examples_dir, "excursion.R"), echo = TRUE, print.eval = TRUE, max.deparse.length = Inf)
#>
#> > library(cgmguru)
#>
#> > library(iglu)
#>
#> > data(example_data_5_subject)
#>
#> > data(example_data_hall)
#>
#> > excursion_result <- excursion(example_data_5_subject,
#> + gap = 15)
#>
#> > print(paste("Excursion vector length:", length(excursion_result$excursion_vector)))
#> [1] "Excursion vector length: 1"
#>
#> > print(excursion_result$episode_counts)
#> # A tibble: 5 × 2
#> id episode_counts
#> <chr> <int>
#> 1 Subject 1 9
#> 2 Subject 2 14
#> 3 Subject 3 11
#> 4 Subject 4 17
#> 5 Subject 5 34
#>
#> > excursion_30min <- excursion(example_data_5_subject,
#> + gap = 30)
#>
#> > large_excursion <- excursion(example_data_hall, gap = 15)
#>
#> > print(paste("Excursion vector length in larger dataset:",
#> + length(large_excursion$excursion_vector)))
#> [1] "Excursion vector length in larger dataset: 1"
#>
#> > print(paste("Total episodes:", sum(large_excursion$episode_counts$episode_counts)))
#> [1] "Total episodes: 111"source(file.path(examples_dir, "find_local_maxima.R"), echo = TRUE, print.eval = TRUE, max.deparse.length = Inf)
#>
#> > library(cgmguru)
#>
#> > library(iglu)
#>
#> > data(example_data_5_subject)
#>
#> > data(example_data_hall)
#>
#> > maxima_result <- find_local_maxima(example_data_5_subject)
#>
#> > print(paste("Found", nrow(maxima_result$local_maxima_vector),
#> + "local maxima"))
#> [1] "Found 1602 local maxima"
#>
#> > large_maxima <- find_local_maxima(example_data_hall)
#>
#> > print(paste("Found", nrow(large_maxima$local_maxima_vector),
#> + "local maxima in larger dataset"))
#> [1] "Found 4991 local maxima in larger dataset"
#>
#> > head(maxima_result$local_maxima_vector)
#> # A tibble: 6 × 1
#> local_maxima
#> <int>
#> 1 8
#> 2 23
#> 3 24
#> 4 65
#> 5 70
#> 6 77
#>
#> > head(maxima_result$merged_results)
#> # A tibble: 6 × 3
#> id time gl
#> <chr> <dttm> <dbl>
#> 1 Subject 1 2015-06-06 18:05:27 159
#> 2 Subject 1 2015-06-06 20:15:27 174
#> 3 Subject 1 2015-06-06 20:20:26 174
#> 4 Subject 1 2015-06-07 01:20:26 88
#> 5 Subject 1 2015-06-07 01:45:25 92
#> 6 Subject 1 2015-06-07 02:20:25 92source(file.path(examples_dir, "find_max_after_hours.R"), echo = TRUE, print.eval = TRUE, max.deparse.length = Inf)
#>
#> > library(cgmguru)
#>
#> > library(iglu)
#>
#> > data(example_data_5_subject)
#>
#> > data(example_data_hall)
#>
#> > start_indices <- seq(1, nrow(example_data_5_subject),
#> + by = 100)
#>
#> > start_points <- data.frame(start_indices = start_indices)
#>
#> > max_after <- find_max_after_hours(example_data_5_subject,
#> + start_points, hours = 2)
#>
#> > print(paste("Found", length(max_after$max_indices),
#> + "maximum points"))
#> [1] "Found 1 maximum points"
#>
#> > max_after_1h <- find_max_after_hours(example_data_5_subject,
#> + start_points, hours = 1)
#>
#> > large_start_indices <- seq(1, nrow(example_data_hall),
#> + by = 200)
#>
#> > large_start_points <- data.frame(start_indices = large_start_indices)
#>
#> > large_max_after <- find_max_after_hours(example_data_hall,
#> + large_start_points, hours = 2)
#>
#> > print(paste("Found", length(large_max_after$max_indices),
#> + "maximum points in larger dataset"))
#> [1] "Found 1 maximum points in larger dataset"source(file.path(examples_dir, "find_max_before_hours.R"), echo = TRUE, print.eval = TRUE, max.deparse.length = Inf)
#>
#> > library(cgmguru)
#>
#> > library(iglu)
#>
#> > data(example_data_5_subject)
#>
#> > data(example_data_hall)
#>
#> > start_indices <- seq(1, nrow(example_data_5_subject),
#> + by = 100)
#>
#> > start_points <- data.frame(start_indices = start_indices)
#>
#> > max_before <- find_max_before_hours(example_data_5_subject,
#> + start_points, hours = 2)
#>
#> > print(paste("Found", length(max_before$max_indices),
#> + "maximum points"))
#> [1] "Found 1 maximum points"
#>
#> > max_before_1h <- find_max_before_hours(example_data_5_subject,
#> + start_points, hours = 1)
#>
#> > large_start_indices <- seq(1, nrow(example_data_hall),
#> + by = 200)
#>
#> > large_start_points <- data.frame(start_indices = large_start_indices)
#>
#> > large_max_before <- find_max_before_hours(example_data_hall,
#> + large_start_points, hours = 2)
#>
#> > print(paste("Found", length(large_max_before$max_indices),
#> + "maximum points in larger dataset"))
#> [1] "Found 1 maximum points in larger dataset"source(file.path(examples_dir, "find_min_after_hours.R"), echo = TRUE, print.eval = TRUE, max.deparse.length = Inf)
#>
#> > library(cgmguru)
#>
#> > library(iglu)
#>
#> > data(example_data_5_subject)
#>
#> > data(example_data_hall)
#>
#> > start_indices <- seq(1, nrow(example_data_5_subject),
#> + by = 100)
#>
#> > start_points <- data.frame(start_indices = start_indices)
#>
#> > min_after <- find_min_after_hours(example_data_5_subject,
#> + start_points, hours = 2)
#>
#> > print(paste("Found", length(min_after$min_indices),
#> + "minimum points"))
#> [1] "Found 1 minimum points"
#>
#> > min_after_1h <- find_min_after_hours(example_data_5_subject,
#> + start_points, hours = 1)
#>
#> > large_start_indices <- seq(1, nrow(example_data_hall),
#> + by = 200)
#>
#> > large_start_points <- data.frame(start_indices = large_start_indices)
#>
#> > large_min_after <- find_min_after_hours(example_data_hall,
#> + large_start_points, hours = 2)
#>
#> > print(paste("Found", length(large_min_after$min_indices),
#> + "minimum points in larger dataset"))
#> [1] "Found 1 minimum points in larger dataset"source(file.path(examples_dir, "find_min_before_hours.R"), echo = TRUE, print.eval = TRUE, max.deparse.length = Inf)
#>
#> > library(cgmguru)
#>
#> > library(iglu)
#>
#> > data(example_data_5_subject)
#>
#> > data(example_data_hall)
#>
#> > start_indices <- seq(1, nrow(example_data_5_subject),
#> + by = 100)
#>
#> > start_points <- data.frame(start_indices = start_indices)
#>
#> > min_before <- find_min_before_hours(example_data_5_subject,
#> + start_points, hours = 2)
#>
#> > print(paste("Found", length(min_before$min_indices),
#> + "minimum points"))
#> [1] "Found 1 minimum points"
#>
#> > min_before_1h <- find_min_before_hours(example_data_5_subject,
#> + start_points, hours = 1)
#>
#> > large_start_indices <- seq(1, nrow(example_data_hall),
#> + by = 200)
#>
#> > large_start_points <- data.frame(start_indices = large_start_indices)
#>
#> > large_min_before <- find_min_before_hours(example_data_hall,
#> + large_start_points, hours = 2)
#>
#> > print(paste("Found", length(large_min_before$min_indices),
#> + "minimum points in larger dataset"))
#> [1] "Found 1 minimum points in larger dataset"source(file.path(examples_dir, "maxima_grid.R"), echo = TRUE, print.eval = TRUE, max.deparse.length = Inf)
#>
#> > library(cgmguru)
#>
#> > library(iglu)
#>
#> > data(example_data_5_subject)
#>
#> > data(example_data_hall)
#>
#> > maxima_result <- maxima_grid(example_data_5_subject,
#> + threshold = 130, gap = 60, hours = 2)
#>
#> > print(maxima_result$episode_counts)
#> # A tibble: 5 × 2
#> id episode_counts
#> <chr> <int>
#> 1 Subject 1 8
#> 2 Subject 2 18
#> 3 Subject 3 7
#> 4 Subject 4 16
#> 5 Subject 5 39
#>
#> > print(maxima_result$results)
#> # A tibble: 88 × 8
#> id grid_time grid_gl maxima_time maxima_glucose time_to_peak_min
#> <chr> <dttm> <dbl> <dttm> <dbl> <dbl>
#> 1 Subject 1 2015-06-11 15:… 143 2015-06-11… 276 40
#> 2 Subject 1 2015-06-11 22:… 135 2015-06-11… 209 50
#> 3 Subject 1 2015-06-12 07:… 160 2015-06-12… 210 40
#> 4 Subject 1 2015-06-13 16:… 132 2015-06-13… 202 60
#> 5 Subject 1 2015-06-14 17:… 176 2015-06-14… 227 45
#> 6 Subject 1 2015-06-16 19:… 166 2015-06-16… 208 65
#> 7 Subject 1 2015-06-18 14:… 187 2015-06-18… 212 20
#> 8 Subject 1 2015-06-18 18:… 132 2015-06-18… 183 35
#> 9 Subject 2 2015-02-24 20:… 140 2015-02-24… 222 85
#> 10 Subject 2 2015-02-25 19:… 173 2015-02-25… 273 125
#> # ℹ 78 more rows
#> # ℹ 2 more variables: grid_index <int>, maxima_index <int>
#>
#> > sensitive_maxima <- maxima_grid(example_data_5_subject,
#> + threshold = 120, gap = 30, hours = 1)
#>
#> > print(sensitive_maxima$episode_counts)
#> # A tibble: 5 × 2
#> id episode_counts
#> <chr> <int>
#> 1 Subject 1 10
#> 2 Subject 2 19
#> 3 Subject 3 10
#> 4 Subject 4 20
#> 5 Subject 5 40
#>
#> > print(sensitive_maxima$results)
#> # A tibble: 99 × 8
#> id grid_time grid_gl maxima_time maxima_glucose time_to_peak_min
#> <chr> <dttm> <dbl> <dttm> <dbl> <dbl>
#> 1 Subject 1 2015-06-11 15:… 143 2015-06-11… 276 40
#> 2 Subject 1 2015-06-11 17:… 157 2015-06-11… 267 55
#> 3 Subject 1 2015-06-11 21:… 125 2015-06-11… 209 60
#> 4 Subject 1 2015-06-12 07:… 160 2015-06-12… 210 40
#> 5 Subject 1 2015-06-13 16:… 124 2015-06-13… 202 65
#> 6 Subject 1 2015-06-14 17:… 176 2015-06-14… 228 95
#> 7 Subject 1 2015-06-16 19:… 166 2015-06-16… 208 65
#> 8 Subject 1 2015-06-18 13:… 126 2015-06-18… 183 55
#> 9 Subject 1 2015-06-18 14:… 187 2015-06-18… 212 20
#> 10 Subject 1 2015-06-18 18:… 132 2015-06-18… 183 35
#> # ℹ 89 more rows
#> # ℹ 2 more variables: grid_index <int>, maxima_index <int>
#>
#> > large_maxima <- maxima_grid(example_data_hall, threshold = 130,
#> + gap = 60, hours = 2)
#>
#> > print(large_maxima$episode_counts)
#> # A tibble: 18 × 2
#> id episode_counts
#> <chr> <int>
#> 1 1636-69-001 8
#> 2 1636-69-026 7
#> 3 1636-69-032 2
#> 4 1636-69-090 3
#> 5 1636-69-091 1
#> 6 1636-70-1005 8
#> 7 1636-70-1010 2
#> 8 2133-004 5
#> 9 2133-015 4
#> 10 2133-017 2
#> 11 2133-018 12
#> 12 2133-019 2
#> 13 2133-021 10
#> 14 2133-024 1
#> 15 2133-027 1
#> 16 2133-035 1
#> 17 2133-036 2
#> 18 2133-039 5
#>
#> > print(large_maxima$results)
#> # A tibble: 76 × 8
#> id grid_time grid_gl maxima_time maxima_glucose time_to_peak_min
#> <chr> <dttm> <dbl> <dttm> <dbl> <dbl>
#> 1 1636-69-001 2014-02-04 0… 138 2014-02-04… 194 30
#> 2 1636-69-001 2014-02-04 1… 138 2014-02-04… 225 60
#> 3 1636-69-001 2014-02-05 0… 137 2014-02-05… 196 45
#> 4 1636-69-001 2015-03-29 1… 137 2015-03-29… 250 65
#> 5 1636-69-001 2015-03-30 1… 132 2015-03-30… 181 45
#> 6 1636-69-001 2015-03-31 0… 143 2015-03-31… 177 20
#> 7 1636-69-001 2015-03-31 1… 136 2015-03-31… 169 30
#> 8 1636-69-001 2015-04-01 1… 132 2015-04-01… 165 50
#> 9 1636-69-026 2015-11-24 1… 142 2015-11-24… 182 40
#> 10 1636-69-026 2015-11-24 2… 139 2015-11-25… 171 35
#> # ℹ 66 more rows
#> # ℹ 2 more variables: grid_index <int>, maxima_index <int>source(file.path(examples_dir, "orderfast.R"), echo = TRUE, print.eval = TRUE, max.deparse.length = Inf)
#>
#> > library(cgmguru)
#>
#> > library(iglu)
#>
#> > data(example_data_5_subject)
#>
#> > data(example_data_hall)
#>
#> > set.seed(123)
#>
#> > shuffled <- example_data_5_subject[sample(seq_len(nrow(example_data_5_subject)),
#> + replace = FALSE), ]
#>
#> > baseline <- orderfast(example_data_5_subject)
#>
#> > ordered_shuffled <- orderfast(shuffled)
#>
#> > print(paste("Identical after ordering:", identical(baseline,
#> + ordered_shuffled)))
#> [1] "Identical after ordering: TRUE"
#>
#> > head(baseline[, c("id", "time", "gl")])
#> id time gl
#> 1 Subject 1 2015-06-06 16:50:27 153
#> 2 Subject 1 2015-06-06 17:05:27 137
#> 3 Subject 1 2015-06-06 17:10:27 128
#> 4 Subject 1 2015-06-06 17:15:28 121
#> 5 Subject 1 2015-06-06 17:25:27 120
#> 6 Subject 1 2015-06-06 17:45:27 138
#>
#> > head(ordered_shuffled[, c("id", "time", "gl")])
#> id time gl
#> 1 Subject 1 2015-06-06 16:50:27 153
#> 2 Subject 1 2015-06-06 17:05:27 137
#> 3 Subject 1 2015-06-06 17:10:27 128
#> 4 Subject 1 2015-06-06 17:15:28 121
#> 5 Subject 1 2015-06-06 17:25:27 120
#> 6 Subject 1 2015-06-06 17:45:27 138
#>
#> > ordered_large <- orderfast(example_data_hall)
#>
#> > print(paste("Ordered", nrow(ordered_large), "rows in larger dataset"))
#> [1] "Ordered 34890 rows in larger dataset"source(file.path(examples_dir, "start_finder.R"), echo = TRUE, print.eval = TRUE, max.deparse.length = Inf)
#>
#> > library(cgmguru)
#>
#> > library(iglu)
#>
#> > data(example_data_5_subject)
#>
#> > data(example_data_hall)
#>
#> > binary_vector <- c(0, 0, 1, 1, 0, 1, 0, 0, 1, 1)
#>
#> > df <- data.frame(episode_starts = binary_vector)
#>
#> > start_points <- start_finder(df)
#>
#> > print(paste("Start indices:", paste(start_points$start_indices,
#> + collapse = ", ")))
#> [1] "Start indices: 3, 6, 9"
#>
#> > grid_result <- grid(example_data_5_subject, gap = 15,
#> + threshold = 130)
#>
#> > grid_starts <- start_finder(grid_result$grid_vector)
#>
#> > print(paste("GRID episode starts:", length(grid_starts$start_indices)))
#> [1] "GRID episode starts: 99"
#>
#> > large_grid <- grid(example_data_hall, gap = 15, threshold = 130)
#>
#> > large_starts <- start_finder(large_grid$grid_vector)
#>
#> > print(paste("GRID episode starts in larger dataset:",
#> + length(large_starts$start_indices)))
#> [1] "GRID episode starts in larger dataset: 79"source(file.path(examples_dir, "transform_df.R"), echo = TRUE, print.eval = TRUE, max.deparse.length = Inf)
#>
#> > library(cgmguru)
#>
#> > library(iglu)
#>
#> > data(example_data_5_subject)
#>
#> > data(example_data_hall)
#>
#> > threshold <- 130
#>
#> > gap <- 60
#>
#> > hours <- 2
#>
#> > grid_result <- grid(example_data_5_subject, gap = gap,
#> + threshold = threshold)
#>
#> > mod_grid <- mod_grid(example_data_5_subject, start_finder(grid_result$grid_vector),
#> + hours = hours, gap = gap)
#>
#> > mod_grid_maxima <- find_max_after_hours(example_data_5_subject,
#> + start_finder(mod_grid$mod_grid_vector), hours = hours)
#>
#> > local_maxima <- find_local_maxima(example_data_5_subject)
#>
#> > final_maxima <- find_new_maxima(example_data_5_subject,
#> + mod_grid_maxima$max_indices, local_maxima$local_maxima_vector)
#>
#> > transform_maxima <- transform_df(grid_result$episode_start,
#> + final_maxima)
#>
#> > final_between_maxima <- detect_between_maxima(example_data_5_subject,
#> + transform_maxima)
#>
#> > hall_threshold <- 130
#>
#> > hall_gap <- 60
#>
#> > hall_hours <- 2
#>
#> > hall_grid_result <- grid(example_data_hall, gap = hall_gap,
#> + threshold = hall_threshold)
#>
#> > hall_mod_grid <- mod_grid(example_data_hall, start_finder(hall_grid_result$grid_vector),
#> + hours = hall_hours, gap = hall_gap)
#>
#> > hall_mod_grid_maxima <- find_max_after_hours(example_data_hall,
#> + start_finder(hall_mod_grid$mod_grid_vector), hours = hall_hours)
#>
#> > hall_local_maxima <- find_local_maxima(example_data_hall)
#>
#> > hall_final_maxima <- find_new_maxima(example_data_hall,
#> + hall_mod_grid_maxima$max_indices, hall_local_maxima$local_maxima_vector)
#>
#> > hall_transform_maxima <- transform_df(hall_grid_result$episode_start,
#> + hall_final_maxima)
#>
#> > hall_final_between_maxima <- detect_between_maxima(example_data_hall,
#> + hall_transform_maxima)