Title: Compute Cortisol Sine Score (CSS) for Diurnal Cortisol Analysis
Version: 0.1.0
Description: Computes a single scalar metric for diurnal cortisol cycle analysis, the Cortisol Sine Score (CSS). The score is calculated as the sum over time points of concentration multiplied by sin(2 * pi * time / 24), giving positive weights to morning time points and negative weights to evening ones. The method is model-free, robust, and suitable for regression, classification, clustering, and biomarker research.
License: MIT + file LICENSE
Encoding: UTF-8
Language: en-US
RoxygenNote: 7.3.2
Depends: R (≥ 4.1.0)
Imports: purrr, magrittr, dplyr
Suggests: tibble
URL: https://github.com/simone-anza/CortSineScore
BugReports: https://github.com/simone-anza/CortSineScore/issues
NeedsCompilation: no
Packaged: 2025-10-15 20:33:06 UTC; simon
Author: Simone Anzà [aut, cre]
Maintainer: Simone Anzà <simoneanza@gmail.com>
Repository: CRAN
Date/Publication: 2025-10-20 19:40:14 UTC

Compute Cortisol Sine Score (CSS)

Description

Calculates the Cortisol Sine Score using timepoint-specific sine weights extracted from column names like "time_0200", "time_1400", etc.

Usage

compute_css(data, verbose = FALSE)

Arguments

data

A data.frame or tibble with subject ID in the first column and cortisol values in time_* columns. The time columns must be named using 24-hour format, e.g. time_0200, time_1400, etc.

verbose

Logical; if TRUE, returns the contribution of each timepoint to the CSS.

Value

A tibble with subject ID and cortisol_sin_score. If verbose = TRUE, includes individual contributions.

Examples

# Minimal, always-runnable example using base data.frame
df <- data.frame(
  subject_ID = c("S1", "S2"),
  time_0200 = c(2, 1),
  time_0600 = c(5, 2),
  time_1000 = c(4, 3),
  time_1400 = c(3, 2),
  time_1800 = c(1, 1),
  time_2200 = c(0.5, 0.3),
  stringsAsFactors = FALSE
)
compute_css(df)