{
  "_id": "6a39903e4c3da884a92893b9",
  "Package": "nocturn",
  "Title": "Sleep Data Filtering and Visualisation",
  "Version": "1.1.3",
  "Authors@R": "person(\n\"Daniel\",\n\"Thedie\",\nemail = \"daniel.thedie@ed.ac.uk\",\nrole = c(\"aut\", \"cre\", \"cph\"),\ncomment = c(ORCID = \"0000-0002-1352-7245\")\n)",
  "Description": "An online app and command-line utility to import, filter\nand visualise sleep data. Can be used with sleep data collected\nfrom any type of device (e.g. radar, sleep diary,...) as long\nas the data contains sleep onset and wake-up times for each\nsleep session.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Config/testthat/edition": "3",
  "LazyData": "true",
  "URL": "https://github.com/chronopsychiatry/AMBIENT-BD-nocturn",
  "BugReports": "https://github.com/chronopsychiatry/AMBIENT-BD-nocturn/issues",
  "Config/roxygen2/version": "8.0.0",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-22 19:39:00 UTC",
    "User": "root"
  },
  "Author": "Daniel Thedie [aut, cre, cph] (ORCID:\n<https://orcid.org/0000-0002-1352-7245>)",
  "Maintainer": "Daniel Thedie <daniel.thedie@ed.ac.uk>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-06-22 18:32:38 UTC",
  "RemoteUrl": "https://github.com/cran/nocturn",
  "RemoteRef": "HEAD",
  "RemoteSha": "f0e382850a88e7827962eb3c305b2ec8cc061ccf",
  "MD5sum": "a36f0f5fb018fdfb35acf6e76b824bbd",
  "_user": "cran",
  "_type": "src",
  "_file": "nocturn_1.1.3.tar.gz",
  "_fileid": "74f9e7866862d208bebe18f206046a8a8703f5fc4037180ac37235f35b4f819b",
  "_filesize": 3528944,
  "_sha256": "74f9e7866862d208bebe18f206046a8a8703f5fc4037180ac37235f35b4f819b",
  "_created": "2026-06-22T19:39:00.000Z",
  "_published": "2026-06-22T19:42:54.329Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 82804082720,
      "time": 178,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7803069701"
    },
    {
      "job": 82804082800,
      "time": 166,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7803064881"
    },
    {
      "job": 82803232645,
      "time": 262,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7802998507"
    },
    {
      "job": 82804082672,
      "time": 143,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7803055211"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/27978754852",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/cran/nocturn",
  "_commit": {
    "id": "f0e382850a88e7827962eb3c305b2ec8cc061ccf",
    "author": "Daniel Thedie <daniel.thedie@ed.ac.uk>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 1.1.3\n",
    "time": 1782153158
  },
  "_maintainer": {
    "name": "Daniel Thedie",
    "email": "daniel.thedie@ed.ac.uk",
    "login": "danielthedie",
    "description": "Research Software Engineer in the BioRDM team at the University of Edinburgh.",
    "uuid": 62017239,
    "orcid": "0000-0002-1352-7245"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.3",
      "role": "Depends"
    },
    {
      "package": "circular",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "edfReader",
      "role": "Imports"
    },
    {
      "package": "ggnewscale",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "lubridate",
      "role": "Imports"
    },
    {
      "package": "readxl",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "scales",
      "role": "Imports"
    },
    {
      "package": "shiny",
      "role": "Imports"
    },
    {
      "package": "shinyalert",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "rsvg",
      "role": "Imports"
    },
    {
      "package": "svgedit",
      "role": "Imports"
    },
    {
      "package": "qpdf",
      "role": "Imports"
    },
    {
      "package": "bslib",
      "role": "Suggests"
    },
    {
      "package": "devtools",
      "role": "Suggests"
    },
    {
      "package": "DT",
      "role": "Suggests"
    },
    {
      "package": "markdown",
      "role": "Suggests"
    },
    {
      "package": "readr",
      "role": "Suggests"
    },
    {
      "package": "shinyjs",
      "role": "Suggests"
    },
    {
      "package": "shinyWidgets",
      "role": "Suggests"
    },
    {
      "package": "svglite",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-26",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "1.1.3",
      "date": "2026-06-22"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "danielthedie",
      "count": 1,
      "uuid": 62017239
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 609,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/nocturn"
  },
  "_devurl": "https://github.com/chronopsychiatry/ambient-bd-nocturn",
  "_searchresults": 2,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/nocturn.html",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "1.1.3",
      "date": "2026-06-22"
    }
  ],
  "_exports": [
    "check_epoch_colnames",
    "check_session_colnames",
    "check_suggests",
    "chronotype",
    "clean_epochs",
    "clean_sessions",
    "composite_phase_deviation",
    "filter_by_age_range",
    "filter_by_night_range",
    "filter_by_sex",
    "filter_epochs_from_sessions",
    "get_col",
    "get_colnames",
    "get_epoch_colnames",
    "get_epochs_summary",
    "get_non_complying_sessions",
    "get_removed_sessions",
    "get_session_colnames",
    "get_sessions_summary",
    "get_time_per_day",
    "group_epochs_by_night",
    "group_sessions_by_night",
    "interdaily_stability",
    "is_iso8601_datetime",
    "load_batch",
    "load_epochs",
    "load_sessions",
    "max_time",
    "mean_time",
    "min_time",
    "nocturn",
    "parse_date",
    "parse_time",
    "plot_bedtimes_waketimes",
    "plot_hypnogram",
    "plot_sleep_bubbles",
    "plot_sleep_clock",
    "plot_sleep_spiral",
    "plot_timeseries",
    "plot_timeseries_sessions",
    "read_edf_epochs",
    "read_edf_sessions",
    "remove_sessions_no_sleep",
    "sd_time",
    "select_devices",
    "select_subjects",
    "set_colnames",
    "set_data_type",
    "set_min_sleep_period",
    "set_min_time_in_bed",
    "set_session_sleep_onset_range",
    "set_session_start_time_range",
    "shift_times_by_12h",
    "show_log_once",
    "sleep_regularity_index",
    "sleep_report",
    "sleeptimes_boxplot",
    "sleeptimes_density",
    "sleeptimes_histogram",
    "social_jet_lag",
    "time_diff",
    "time_to_hours",
    "update_date",
    "write_log"
  ],
  "_datasets": [
    {
      "name": "example_epochs",
      "title": "Example Epoch data",
      "object": "example_epochs",
      "class": [
        "data.frame"
      ],
      "fields": [
        "timestamp",
        "session_id",
        "signal_quality_mean",
        "movement_fast_mean",
        "movement_fast_nonzero_pct",
        "distance_mean",
        "motion_data_count",
        "light_ambient_mean",
        "sound_amplitude_mean",
        "temperature_ambient_mean",
        "pressure_mean",
        "humidity_mean",
        "indoor_air_quality_mean",
        "epoch_duration",
        "sleep_stage",
        "filename",
        "is_asleep",
        "night"
      ],
      "rows": 18755,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_epochs_v1",
      "title": "Example Epoch data (Somnofy API v1)",
      "object": "example_epochs_v1",
      "class": [
        "data.frame"
      ],
      "fields": [
        "timestamp",
        "movement_fast_filtered_custom_mean",
        "signal_quality_mean",
        "distance_mean",
        "motion_data_count",
        "light_ambient_mean",
        "sound_amplitude_mean",
        "temperature_ambient_mean",
        "pressure_mean",
        "humidity_mean",
        "indoor_air_quality_mean",
        "epoch_duration",
        "sleep_stage",
        "filename",
        "session_id",
        "is_asleep",
        "night"
      ],
      "rows": 1373,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_sessions",
      "title": "Example Sessions data",
      "object": "example_sessions",
      "class": [
        "data.frame"
      ],
      "fields": [
        "id",
        "state",
        "subject_id",
        "device_serial_number",
        "epoch_count",
        "session_start",
        "relative_session_start",
        "session_end",
        "time_at_last_epoch",
        "time_at_intended_sleep",
        "time_at_intended_wakeup",
        "time_in_undefined",
        "time_at_sleep_onset",
        "time_at_wakeup",
        "time_at_midsleep",
        "sleep_onset_latency",
        "sleep_period",
        "time_in_bed",
        "time_asleep",
        "sleep_efficiency",
        "time_in_light_sleep",
        "time_in_rem_sleep",
        "time_in_deep_sleep",
        "time_in_no_presence",
        "number_of_times_no_presence",
        "time_wake_after_sleep_onset",
        "number_of_times_awake",
        "number_of_times_awake_long",
        "time_wake_pre_post_sleep",
        "time_from_sleep_onset_to_first_rem",
        "movement_fast_during_sleep_period_mean",
        "rpm_non_rem_filtered_mean",
        "rpm_non_rem_mean_var",
        "rpm_non_rem_baseline",
        "rpm_non_rem_baseline_std",
        "heart_rate_non_rem_filtered_mean",
        "heart_rate_non_rem_mean",
        "external_heart_rate_non_rem_filtered_mean",
        "epochs_with_movement_pct",
        "epochs_with_movement_during_time_in_bed_pct",
        "time_with_movement_pct",
        "time_with_movement_during_time_in_bed_pct",
        "sleep_cycles_count",
        "is_workday",
        "chronotype",
        "social_jet_lag",
        "jet_lag",
        "regularity",
        "sleep_score_standard",
        "sleep_fragmentation",
        "external_spo2_mean",
        "external_spo2_min",
        "distance_during_sleep_mean",
        "distance_during_sleep_std",
        "air_pressure_filtered_mean",
        "light_ambient_filtered_mean",
        "light_ambient_at_wakeup_mean",
        "sound_amplitude_filtered_mean",
        "sound_amplitude_during_sleep_mean",
        "sound_amplitude_during_sleep_filtered_for_noise_mean",
        "sound_amplitude_during_sleep_filtered_for_movement_mean",
        "sound_amplitude_at_wakeup",
        "epochs_with_sound_spikes_during_sleep_count",
        "awakenings_caused_by_sound_count",
        "temperature_filtered_mean",
        "indoor_air_quality_filtered_mean",
        "air_humidity_filtered_mean",
        "night"
      ],
      "rows": 124,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_sessions_v1",
      "title": "Example Sessions data (Somnofy API v1)",
      "object": "example_sessions_v1",
      "class": [
        "data.frame"
      ],
      "fields": [
        "user_id",
        "first_name",
        "last_name",
        "display_name",
        "sex",
        "height",
        "weight",
        "birth_year",
        "session_id",
        "epoch_count",
        "session_start",
        "relative_session_start",
        "ems_report_start",
        "session_end",
        "time_at_last_epoch",
        "time_at_intended_sleep",
        "time_at_intended_wakeup",
        "time_in_undefined",
        "time_at_sleep_onset",
        "time_at_wakeup",
        "time_at_midsleep",
        "sleep_onset_latency",
        "sleep_period",
        "time_in_bed",
        "time_asleep",
        "sleep_efficiency",
        "time_in_light_sleep",
        "time_in_rem_sleep",
        "time_in_deep_sleep",
        "time_in_no_presence",
        "number_of_times_no_presence",
        "time_wake_after_sleep_onset",
        "number_of_times_awake",
        "number_of_times_awake_long",
        "time_wake_pre_post_sleep",
        "time_from_sleep_onset_to_first_rem",
        "movement_fast_during_sleep_period_mean",
        "rpm_non_rem_filtered_mean",
        "heart_rate_non_rem_filtered_mean",
        "external_heartrate_non_rem_filtered_mean",
        "epochs_with_movement_pct",
        "epochs_with_movement_during_time_in_bed_pct",
        "sleep_cycles_count",
        "is_workday",
        "chronotype",
        "social_jet_lag",
        "jet_lag",
        "regularity",
        "sleep_score_2_standard",
        "sleep_fragmentation",
        "external_spo2_mean",
        "external_spo2_min",
        "distance_during_sleep_mean",
        "distance_during_sleep_std",
        "air_pressure_filtered_mean",
        "light_ambient_filtered_mean",
        "light_ambient_before_intended_sleep_mean",
        "light_ambient_at_wakeup_mean",
        "sound_amplitude_filtered_mean",
        "sound_amplitude_during_sleep_mean",
        "sound_amplitude_during_sleep_filtered_for_noise_mean",
        "sound_amplitude_during_sleep_filtered_for_movement_mean",
        "sound_amplitude_at_wakeup",
        "epochs_with_sound_spikes_during_sleep_count",
        "awakenings_caused_by_sound_count",
        "temperature_filtered_mean",
        "indoor_air_quality_filtered_mean",
        "air_humidity_filtered_mean",
        ".data_type",
        "night"
      ],
      "rows": 87,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "check_suggests",
      "title": "Check whether suggested packages are installed",
      "concept": [
        "internal"
      ],
      "topics": [
        "check_suggests"
      ]
    },
    {
      "page": "chronotype",
      "title": "Calculate the Chronotype",
      "concept": [
        "sleep metrics"
      ],
      "topics": [
        "chronotype"
      ]
    },
    {
      "page": "clean_epochs",
      "title": "Clean epoch data",
      "topics": [
        "clean_epochs"
      ]
    },
    {
      "page": "clean_sessions",
      "title": "Clean session data",
      "topics": [
        "clean_sessions"
      ]
    },
    {
      "page": "composite_phase_deviation",
      "title": "Calculate Composite Phase Deviation (CPD)",
      "concept": [
        "sleep metrics"
      ],
      "topics": [
        "composite_phase_deviation"
      ]
    },
    {
      "page": "example_epochs",
      "title": "Example Epoch data",
      "topics": [
        "example_epochs"
      ]
    },
    {
      "page": "example_epochs_v1",
      "title": "Example Epoch data (Somnofy API v1)",
      "topics": [
        "example_epochs_v1"
      ]
    },
    {
      "page": "example_sessions",
      "title": "Example Sessions data",
      "topics": [
        "example_sessions"
      ]
    },
    {
      "page": "example_sessions_v1",
      "title": "Example Sessions data (Somnofy API v1)",
      "topics": [
        "example_sessions_v1"
      ]
    },
    {
      "page": "filter_by_age_range",
      "title": "Filter sessions by age range",
      "concept": [
        "filtering"
      ],
      "topics": [
        "filter_by_age_range"
      ]
    },
    {
      "page": "filter_by_night_range",
      "title": "Filter sessions for nights within a night range",
      "concept": [
        "filtering"
      ],
      "topics": [
        "filter_by_night_range"
      ]
    },
    {
      "page": "filter_by_sex",
      "title": "Filter by sex",
      "concept": [
        "filtering"
      ],
      "topics": [
        "filter_by_sex"
      ]
    },
    {
      "page": "filter_epochs_from_sessions",
      "title": "Filter epochs based on session IDs",
      "concept": [
        "filtering"
      ],
      "topics": [
        "filter_epochs_from_sessions"
      ]
    },
    {
      "page": "get_col",
      "title": "Get a column from a dataframe safely",
      "concept": [
        "internal"
      ],
      "topics": [
        "get_col"
      ]
    },
    {
      "page": "get_colnames",
      "title": "Get standard column names for a data frame (sessions or epochs)",
      "concept": [
        "internal"
      ],
      "topics": [
        "get_colnames"
      ]
    },
    {
      "page": "get_epoch_colnames",
      "title": "Get a list of standard column names for epochs data",
      "concept": [
        "internal"
      ],
      "topics": [
        "get_epoch_colnames"
      ]
    },
    {
      "page": "get_epochs_summary",
      "title": "Summarise epoch information",
      "concept": [
        "data tables"
      ],
      "topics": [
        "get_epochs_summary"
      ]
    },
    {
      "page": "get_non_complying_sessions",
      "title": "Get non-complying sessions (i.e. where there is more than one session on the same day)",
      "concept": [
        "data tables"
      ],
      "topics": [
        "get_non_complying_sessions"
      ]
    },
    {
      "page": "get_removed_sessions",
      "title": "Get a table of sessions that were removed during filtering",
      "concept": [
        "data tables"
      ],
      "topics": [
        "get_removed_sessions"
      ]
    },
    {
      "page": "get_session_colnames",
      "title": "Get a list of standard column names for sessions data",
      "concept": [
        "internal"
      ],
      "topics": [
        "get_session_colnames"
      ]
    },
    {
      "page": "get_sessions_summary",
      "title": "Make a summary of session information",
      "concept": [
        "data tables"
      ],
      "topics": [
        "get_sessions_summary"
      ]
    },
    {
      "page": "get_time_per_day",
      "title": "Calculate the number of time units in a day",
      "concept": [
        "internal"
      ],
      "topics": [
        "get_time_per_day"
      ]
    },
    {
      "page": "group_epochs_by_night",
      "title": "Create a grouping by night for epoch data",
      "concept": [
        "time processing"
      ],
      "topics": [
        "group_epochs_by_night"
      ]
    },
    {
      "page": "group_sessions_by_night",
      "title": "Create a grouping by night for session data",
      "concept": [
        "time processing"
      ],
      "topics": [
        "group_sessions_by_night"
      ]
    },
    {
      "page": "interdaily_stability",
      "title": "Calculate Interdaily Stability (IS)",
      "concept": [
        "sleep metrics"
      ],
      "topics": [
        "interdaily_stability"
      ]
    },
    {
      "page": "is_iso8601_datetime",
      "title": "Check if a column contains ISO 8601 datetime strings",
      "concept": [
        "internal"
      ],
      "topics": [
        "is_iso8601_datetime"
      ]
    },
    {
      "page": "load_batch",
      "title": "Load session or epoch data in batch mode",
      "concept": [
        "data loading"
      ],
      "topics": [
        "load_batch"
      ]
    },
    {
      "page": "load_epochs",
      "title": "Load epoch data",
      "concept": [
        "data loading"
      ],
      "topics": [
        "load_epochs"
      ]
    },
    {
      "page": "load_sessions",
      "title": "Load session data",
      "concept": [
        "data loading"
      ],
      "topics": [
        "load_sessions"
      ]
    },
    {
      "page": "max_time",
      "title": "Calculate the maximum time from 12pm to 12pm",
      "concept": [
        "time processing"
      ],
      "topics": [
        "max_time"
      ]
    },
    {
      "page": "mean_time",
      "title": "Calculate the mean time from a vector of time strings",
      "concept": [
        "time processing"
      ],
      "topics": [
        "mean_time"
      ]
    },
    {
      "page": "min_time",
      "title": "Calculate the minimum time from 12pm to 12pm",
      "concept": [
        "time processing"
      ],
      "topics": [
        "min_time"
      ]
    },
    {
      "page": "nocturn",
      "title": "nocturn app",
      "topics": [
        "nocturn"
      ]
    },
    {
      "page": "parse_date",
      "title": "Parse a vector of date strings into Date objects",
      "concept": [
        "time processing"
      ],
      "topics": [
        "parse_date"
      ]
    },
    {
      "page": "parse_time",
      "title": "Parse a vector of time strings into POSIXct objects",
      "concept": [
        "time processing"
      ],
      "topics": [
        "parse_time"
      ]
    },
    {
      "page": "plot_bedtimes_waketimes",
      "title": "Plot bedtimes and waketimes",
      "topics": [
        "plot_bedtimes_waketimes"
      ]
    },
    {
      "page": "plot_hypnogram",
      "title": "Plot Hypnogram",
      "concept": [
        "plot epochs"
      ],
      "topics": [
        "plot_hypnogram"
      ]
    },
    {
      "page": "plot_sleep_bubbles",
      "title": "Plot Sleep Bubbles",
      "concept": [
        "plot sessions"
      ],
      "topics": [
        "plot_sleep_bubbles"
      ]
    },
    {
      "page": "plot_sleep_clock",
      "title": "Plot Sleep Clock",
      "concept": [
        "plot sessions"
      ],
      "topics": [
        "plot_sleep_clock"
      ]
    },
    {
      "page": "plot_sleep_spiral",
      "title": "Plot Sleep Spiral",
      "concept": [
        "plot epochs"
      ],
      "topics": [
        "plot_sleep_spiral"
      ]
    },
    {
      "page": "plot_timeseries",
      "title": "Plot epoch time series data for a given variable",
      "concept": [
        "plot epochs"
      ],
      "topics": [
        "plot_timeseries"
      ]
    },
    {
      "page": "plot_timeseries_sessions",
      "title": "Plot session time series data for a given variable",
      "concept": [
        "plot sessions"
      ],
      "topics": [
        "plot_timeseries_sessions"
      ]
    },
    {
      "page": "read_edf_epochs",
      "title": "Read EDF Epochs",
      "concept": [
        "data loading"
      ],
      "topics": [
        "read_edf_epochs"
      ]
    },
    {
      "page": "read_edf_sessions",
      "title": "Read EDF Sessions",
      "concept": [
        "data loading"
      ],
      "topics": [
        "read_edf_sessions"
      ]
    },
    {
      "page": "remove_sessions_no_sleep",
      "title": "Remove sessions with no sleep",
      "concept": [
        "filtering"
      ],
      "topics": [
        "remove_sessions_no_sleep"
      ]
    },
    {
      "page": "sd_time",
      "title": "Calculate the circular standard deviation of a vector of times",
      "concept": [
        "time processing"
      ],
      "topics": [
        "sd_time"
      ]
    },
    {
      "page": "select_devices",
      "title": "Select devices by ID",
      "concept": [
        "filtering"
      ],
      "topics": [
        "select_devices"
      ]
    },
    {
      "page": "select_subjects",
      "title": "Select subjects by ID",
      "concept": [
        "filtering"
      ],
      "topics": [
        "select_subjects"
      ]
    },
    {
      "page": "set_colnames",
      "title": "Set column names for a data frame (sessions or epochs)",
      "concept": [
        "internal"
      ],
      "topics": [
        "set_colnames"
      ]
    },
    {
      "page": "set_data_type",
      "title": "Set the type attribute for a data frame",
      "concept": [
        "internal"
      ],
      "topics": [
        "set_data_type"
      ]
    },
    {
      "page": "set_min_sleep_period",
      "title": "Set minimum sleep period",
      "concept": [
        "filtering"
      ],
      "topics": [
        "set_min_sleep_period"
      ]
    },
    {
      "page": "set_min_time_in_bed",
      "title": "Set minimum time in bed",
      "concept": [
        "filtering"
      ],
      "topics": [
        "set_min_time_in_bed"
      ]
    },
    {
      "page": "set_session_sleep_onset_range",
      "title": "Set sleep onset time range",
      "concept": [
        "filtering"
      ],
      "topics": [
        "set_session_sleep_onset_range"
      ]
    },
    {
      "page": "set_session_start_time_range",
      "title": "Set session start time range",
      "concept": [
        "filtering"
      ],
      "topics": [
        "set_session_start_time_range"
      ]
    },
    {
      "page": "shift_times_by_12h",
      "title": "Shift times to break at 12 pm",
      "concept": [
        "time processing"
      ],
      "topics": [
        "shift_times_by_12h"
      ]
    },
    {
      "page": "sleep_regularity_index",
      "title": "Calculate the Sleep Regularity Index (SRI)",
      "concept": [
        "sleep metrics"
      ],
      "topics": [
        "sleep_regularity_index"
      ]
    },
    {
      "page": "sleep_report",
      "title": "Generate a patient sleep report in PDF format",
      "topics": [
        "sleep_report"
      ]
    },
    {
      "page": "sleeptimes_boxplot",
      "title": "Plot boxplots for sleep onset, midsleep, and wakeup times",
      "topics": [
        "sleeptimes_boxplot"
      ]
    },
    {
      "page": "sleeptimes_density",
      "title": "Plot density curves for sleep onset, midsleep, and wakeup times with a dashed line showing the median",
      "topics": [
        "sleeptimes_density"
      ]
    },
    {
      "page": "sleeptimes_histogram",
      "title": "Plot histograms for sleep onset, midsleep, and wakeup times",
      "topics": [
        "sleeptimes_histogram"
      ]
    },
    {
      "page": "social_jet_lag",
      "title": "Calculate Social Jet Lag",
      "concept": [
        "sleep metrics"
      ],
      "topics": [
        "social_jet_lag"
      ]
    },
    {
      "page": "time_diff",
      "title": "Compute the forward time difference from t1 to t2 (wrapping at 24)",
      "concept": [
        "time processing"
      ],
      "topics": [
        "time_diff"
      ]
    },
    {
      "page": "time_to_hours",
      "title": "Convert time vector to numeric hours",
      "concept": [
        "time processing"
      ],
      "topics": [
        "time_to_hours"
      ]
    },
    {
      "page": "update_date",
      "title": "Update the date component of a POSIXct time object",
      "concept": [
        "time processing"
      ],
      "topics": [
        "update_date"
      ]
    }
  ],
  "_pkglogo": "https://github.com/cran/nocturn/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/cran/nocturn/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "base64enc",
    "boot",
    "bslib",
    "cachem",
    "cellranger",
    "circular",
    "cli",
    "commonmark",
    "cpp11",
    "crayon",
    "curl",
    "digest",
    "dplyr",
    "edfReader",
    "farver",
    "fastmap",
    "fontawesome",
    "fs",
    "generics",
    "ggnewscale",
    "ggplot2",
    "glue",
    "gtable",
    "hms",
    "htmltools",
    "httpuv",
    "isoband",
    "jquerylib",
    "jsonlite",
    "labeling",
    "later",
    "lifecycle",
    "lubridate",
    "magrittr",
    "memoise",
    "mime",
    "mvtnorm",
    "otel",
    "pillar",
    "pkgconfig",
    "prettyunits",
    "progress",
    "promises",
    "purrr",
    "qpdf",
    "R6",
    "rappdirs",
    "RColorBrewer",
    "Rcpp",
    "readxl",
    "rematch",
    "rlang",
    "rsvg",
    "S7",
    "sass",
    "scales",
    "shiny",
    "shinyalert",
    "sourcetools",
    "stringi",
    "stringr",
    "svgedit",
    "sys",
    "tibble",
    "tidyr",
    "tidyselect",
    "timechange",
    "utf8",
    "uuid",
    "vctrs",
    "viridisLite",
    "withr",
    "xml2",
    "xtable"
  ],
  "_score": 1.6989700043360187,
  "_indexed": false,
  "_nocasepkg": "nocturn",
  "_universes": [
    "cran",
    "danielthedie",
    "chronopsychiatry"
  ],
  "_indexurl": "https://chronopsychiatry.r-universe.dev/nocturn",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.1.3",
      "date": "2026-06-22T19:41:44.000Z",
      "distro": "noble",
      "commit": "f0e382850a88e7827962eb3c305b2ec8cc061ccf",
      "fileid": "091771622057f2bc0dd727a46d2c25d3d8333a4bd7e6b3b03bdb8660793ae5d6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27978754852"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.1.3",
      "date": "2026-06-22T19:41:33.000Z",
      "distro": "noble",
      "commit": "f0e382850a88e7827962eb3c305b2ec8cc061ccf",
      "fileid": "accd34d33e14ef77cfae3cfcbebed09bc447f44d645565dc3de2da23969894ed",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27978754852"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.1.3",
      "date": "2026-06-22T19:41:45.000Z",
      "commit": "f0e382850a88e7827962eb3c305b2ec8cc061ccf",
      "fileid": "6488dd152cd796f6ef985fff342001af0be7e3fdf02245c2da625d404f74c8f6",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27978754852"
    }
  ]
}