Calculate Monthly Count by Site and Month
Input_CountSiteByMonth.RdCalculates monthly event counts and ratios by site and month for KRI analysis. Joins subject, numerator, and denominator data to create monthly metrics. When strDenominatorEndDateCol is provided, calculates days between start/end dates per month instead of counting records. Note: This function returns monthly counts, not cumulative. Cumulative aggregation is performed at the study level in Transform_CumCount. Supports both in-memory data frames and dbplyr lazy tables.
Usage
Input_CountSiteByMonth(
dfSubjects = NULL,
dfNumerator,
dfDenominator,
strStudyCol = "studyid",
strGroupCol = "invid",
strGroupLevel = "Site",
strSubjectCol = "subjid",
strNumeratorDateCol,
strDenominatorDateCol,
strDenominatorEndDateCol = NULL,
strDenominatorType = NULL,
nMinDenominator = 0
)Arguments
- dfSubjects
data.frame or tbl. Subject-level data with enrolled subjects.
- dfNumerator
data.frame or tbl. Event data for numerator (e.g., adverse events).
- dfDenominator
data.frame or tbl. Event data for denominator (e.g., visits).
- strStudyCol
character. Column name for study identifier (default: "studyid").
- strGroupCol
character. Column name for site identifier (default: "invid").
- strGroupLevel
character. Grouping level name (default: "Site").
- strSubjectCol
character. Column name for subject identifier (default: "subjid").
- strNumeratorDateCol
character. Date column name in numerator data.
- strDenominatorDateCol
character. Date column name in denominator data (start date).
- strDenominatorEndDateCol
character. End date column in denominator data (default: NULL). When provided, calculates sum of days between start/end dates per month instead of record counts.
- strDenominatorType
character. Optional denominator type label (e.g., "Visits", "Days on Study"). When provided, adds a DenominatorType column to the output.
- nMinDenominator
numeric. Minimum denominator threshold for date normalization (default: 0). When > 0, adjusts dates of the first N denominator events to the MAX date in that group, creating a consistent "study start" at the threshold. Preserves event durations for date ranges.
Value
data.frame with columns: GroupID, GroupLevel, Numerator, Denominator, Metric, StudyID, MonthYYYYMM If strDenominatorType is provided, also includes DenominatorType column.
Examples
dfSubjects <- clindata::rawplus_dm
dfNumerator <- clindata::rawplus_ae
dfDenominator <- clindata::rawplus_visdt
# Count-based calculation
result <- Input_CountSiteByMonth(
dfSubjects = dfSubjects,
dfNumerator = dfNumerator,
dfDenominator = dfDenominator,
strNumeratorDateCol = "aest_dt",
strDenominatorDateCol = "visit_dt"
)
# Days-based calculation with end dates
result_days <- Input_CountSiteByMonth(
dfSubjects = dfSubjects,
dfNumerator = dfNumerator,
dfDenominator = dfSubjects,
strNumeratorDateCol = "aest_dt",
strDenominatorDateCol = "firstparticipantdate",
strDenominatorEndDateCol = "lastparticipantdate"
)