This function calculates the non-visual circadian response (nvRC). It takes into account the assumed response dynamics of the non-visual system and the circadian rhythm and processes the light exposure signal to quantify the effective circadian-weighted input to the non-visual system (see Details).
Usage
nvRC(
MEDI.vector,
Illuminance.vector,
Time.vector,
epoch = "dominant.epoch",
sleep.onset = NULL
)
Arguments
- MEDI.vector
Numeric vector containing the melanopic EDI data.
- Illuminance.vector
Numeric vector containing the Illuminance data.
- Time.vector
Vector containing the time data. Can be POSIXct, hms, duration, or difftime.
- epoch
The epoch at which the data was sampled. Can be either a duration or a string. If it is a string, it needs to be either
"dominant.epoch"
(the default) for a guess based on the data, or a valid duration string, e.g.,"1 day"
or"10 sec"
.- sleep.onset
The time of habitual sleep onset. Can be HMS, numeric, or NULL. If NULL (the default), then the data is assumed to start at habitual sleep onset. If
Time.vector
is HMS or POSIXct,sleep.onset
must be HMS. Likewise, ifTime.vector
is numeric,sleep.onset
must be numeric.
Details
The timeseries is assumed to be regular. Missing values in the light data will be replaced by 0.
References
Amundadottir, M.L. (2016). Light-driven model for identifying indicators of non-visual health potential in the built environment [Doctoral dissertation, EPFL]. EPFL infoscience. doi:10.5075/epfl-thesis-7146
See also
Other metrics:
bright_dark_period()
,
centroidLE()
,
disparity_index()
,
duration_above_threshold()
,
exponential_moving_average()
,
frequency_crossing_threshold()
,
interdaily_stability()
,
intradaily_variability()
,
midpointCE()
,
nvRD()
,
nvRD_cumulative_response()
,
period_above_threshold()
,
pulses_above_threshold()
,
threshold_for_duration()
,
timing_above_threshold()
Examples
dataset1 <-
tibble::tibble(
Id = rep("B", 60 * 48),
Datetime = lubridate::as_datetime(0) + lubridate::minutes(0:(60*48-1)),
Illuminance = c(rep(0, 60*8), rep(sample(1:1000, 16, replace = TRUE), each = 60),
rep(0, 60*8), rep(sample(1:1000, 16, replace = TRUE), each = 60)),
MEDI = Illuminance * rep(sample(0.5:1.5, 48, replace = TRUE), each = 60)
)
# Time.vector as POSIXct
dataset1.nvRC <- dataset1 %>%
dplyr::mutate(
nvRC = nvRC(MEDI, Illuminance, Datetime, sleep.onset = hms::as_hms("22:00:00"))
)
# Time.vector as difftime
dataset2 <- dataset1 %>%
dplyr::mutate(Datetime = Datetime - lubridate::as_datetime(lubridate::dhours(22)))
dataset2.nvRC <- dataset2 %>%
dplyr::mutate(
nvRC = nvRC(MEDI, Illuminance, Datetime, sleep.onset = lubridate::dhours(0))
)