| link_gaps {mpathsenser} | R Documentation | 
Link gaps to (ESM) data
Description
Gaps in mobile sensing data typically occur when the app is stopped by the operating system or
the user. While small gaps may not pose problems with analyses, greater gaps may cause bias or
skew your data. As a result, gap data should be considered in order to inspect and limit their
influence. This function, analogous to link(), allows you to connect gaps to other data
(usually ESM/EMA data) within a user-specified time range.
Usage
link_gaps(
  data,
  gaps,
  by = NULL,
  offset_before = 0,
  offset_after = 0,
  raw_data = FALSE
)
Arguments
| data | A data frame or an extension to a data frame (e.g. a tibble). While gap data can be linked to any other type of data, ESM data is most commonly used. | 
| gaps | A data frame (extension) containing the gap data. See  | 
| by | A character vector indicating the variable(s) to match by, typically the participant
IDs. If NULL, the default,  To join by different variables on  To join by multiple variables, use a vector with  To perform a cross-join (when  | 
| offset_before | The time before each measurement in  | 
| offset_after | The time after each measurement in  | 
| raw_data | Whether to include the raw data (i.e. the matched gap data) to the output as gap_data. | 
Value
The original data with an extra column duration indicating the gap during within the
interval in seconds (if duration  is TRUE), or an extra column called gap_data containing
the gaps within the interval. The function ensures all durations and gap time stamps are within
the range of the interval.
See Also
bin_data() for linking two sets of intervals to each other; identify_gaps() for
finding gaps in the sampling; add_gaps() for adding gaps to sensor data;
Examples
# Create some data
x <- data.frame(
  time = rep(seq.POSIXt(as.POSIXct("2021-11-14 13:00:00"), by = "1 hour", length.out = 3), 2),
  participant_id = c(rep("12345", 3), rep("23456", 3)),
  item_one = rep(c(40, 50, 60), 2)
)
# Create some gaps
gaps <- data.frame(
  from = as.POSIXct(c("2021-11-14 13:00:00", "2021-11-14 14:00:00")),
  to = as.POSIXct(c("2021-11-14 13:30:00", "2021-11-14 14:30:00")),
  participant_id = c("12345", "23456")
)
# Link the gaps to the data
link_gaps(x, gaps, by = "participant_id", offset_before = 0, offset_after = 1800)
# Link the gaps to the data and include the raw data
link_gaps(
  x,
  gaps,
  by = "participant_id",
  offset_before = 0,
  offset_after = 1800,
  raw_data = TRUE
)