Compute a normalized weighting vector based on a vector of sampling times.
Source:R/helper_functions.R
time_weights.RdThis function takes a vector of sampling times, \(t = (t_1, t_2, \ldots, t_I)\) and computes a normalized vector which can be used to weight each sample based on the time between the subsequent and the preceding samples. The weighting vector \(w\) is defined such that each entry, \(w_i = d_i / 2T\), where \(T=t_I - t_1\) and \(d_i = t_{i+1} - t_{i-1}\) for \(i\) not equal to 1 or I. \(d_1 = t_2-t_1\) and \(d_I = t_I-t_{I-1}\).
Value
A numeric vector. Each entry provides a weight for each entry in the
provided times vector. If group is not specified, the vector sums to 1. If
group is specified, the vector sums to the number of distinct groups.
Examples
time_vector = c(1, 8, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 44, 50, 57, 64)
time_weights(times = time_vector)
#> [1] 0.05555556 0.16666667 0.11904762 0.01587302 0.01587302 0.01587302
#> [7] 0.01587302 0.01587302 0.01587302 0.01587302 0.01587302 0.01587302
#> [13] 0.01587302 0.01587302 0.01587302 0.01587302 0.01587302 0.01587302
#> [19] 0.01587302 0.04761905 0.08730159 0.10317460 0.11111111 0.05555556