@@ -4,9 +4,83 @@ Note that `epiprocess` uses the [Semantic Versioning
4
4
("semver")] ( https://semver.org/ ) scheme for all release versions, but not for
5
5
development versions. A ".9999" suffix indicates a development version.
6
6
7
+ ## Breaking changes:
8
+
9
+ * Changes to both ` epi_slide ` and ` epix_slide ` :
10
+ * The ` n ` , ` align ` , and ` before ` arguments have been replaced by new ` before `
11
+ and ` after ` arguments. To migrate to the new version, replace these
12
+ arguments in every ` epi_slide ` and ` epix_slide ` call. If you were only using
13
+ the ` n ` argument, then this means replacing ` n = <n value> ` with `before =
14
+ <n value > - 1`.
15
+ * ` epi_slide ` 's time windows now extend ` before ` time steps before and
16
+ ` after ` time steps after the corresponding ` ref_time_values ` . See
17
+ ` ?epi_slide ` for details on matching old alignments.
18
+ * ` epix_slide ` 's time windows now extend ` before ` time steps before the
19
+ corresponding ` ref_time_values ` all the way through the latest data
20
+ available at the corresponding ` ref_time_values ` .
21
+ * Slide functions now keep any grouping of ` x ` in their results, like
22
+ ` mutate ` and ` group_modify ` .
23
+ * To obtain the old behavior, ` dplyr::ungroup ` the slide results immediately.
24
+ * Additional` epix_slide ` changes:
25
+ * ` epix_slide ` 's ` group_by ` argument has been replaced by ` dplyr::group_by ` and
26
+ ` dplyr::ungroup ` S3 methods. The ` group_by ` method uses "data masking" (also
27
+ referred to as "tidy evaluation") rather than "tidy selection".
28
+ * Old syntax:
29
+ * ` x %>% epix_slide(<other args>, group_by=c(col1, col2)) `
30
+ * ` x %>% epix_slide(<other args>, group_by=all_of(colname_vector)) `
31
+ * New syntax:
32
+ * ` x %>% group_by(col1, col2) %>% epix_slide(<other args>) `
33
+ * ` x %>% group_by(across(all_of(colname_vector))) %>% epix_slide(<other args>) `
34
+ * ` epix_slide ` no longer defaults to grouping by non-` time_value ` , non-` version `
35
+ key columns, instead considering all data to be in one big group.
36
+ * To obtain the old behavior, precede each ` epix_slide ` call lacking a
37
+ ` group_by ` argument with an appropriate ` group_by ` call.
38
+ * ` epix_slide ` now guesses ` ref_time_values ` to be a regularly spaced sequence
39
+ covering all the ` DT$version ` values and the ` version_end ` , rather than the
40
+ distinct ` DT$time_value ` s. To obtain the old behavior, pass in
41
+ ` ref_time_values = unique(<ungrouped archive>$DT$time_value) ` .
42
+ * ` epi_archive ` 's ` clobberable_versions_start ` 's default is now ` NA ` , so there
43
+ will be no warnings by default about potential nonreproducibility. To obtain
44
+ the old behavior, pass in `clobberable_versions_start =
45
+ max_version_with_row_in(x)`.
46
+
47
+ ## Potentially-breaking changes:
48
+
49
+ * Fixed ` [ ` on grouped ` epi_df ` s to maintain the grouping if possible when
50
+ dropping the ` epi_df ` class (e.g., when removing the ` time_value ` column).
51
+ * Fixed ` epi_df ` operations to be more consistent about decaying into
52
+ non-` epi_df ` s when the result of the operation doesn't make sense as an
53
+ ` epi_df ` (e.g., when removing the ` time_value ` column).
54
+ * Changed ` bind_rows ` on grouped ` epi_df ` s to not drop the ` epi_df ` class. Like
55
+ with ungrouped ` epi_df ` s, the metadata of the result is still simply taken
56
+ from the first result, and may be inappropriate
57
+ ([ #242 ] ( https://github.com/cmu-delphi/epiprocess/issues/242 ) ).
58
+ * ` epi_slide ` and ` epix_slide ` now raise an error rather than silently filtering
59
+ out ` ref_time_values ` that don't meet their expectations.
60
+
61
+ ## New features:
62
+
63
+ * ` epix_slide ` , ` <epi_archive>$slide ` have a new parameter ` all_versions ` . With
64
+ ` all_versions=TRUE ` , ` epix_slide ` will pass a filtered ` epi_archive ` to each
65
+ computation rather than an ` epi_df ` snapshot. This enables, e.g., performing
66
+ pseudoprospective forecasts with a revision-aware forecaster using nested
67
+ ` epix_slide ` operations.
68
+
69
+ ## Improvements:
70
+
71
+ * Added ` dplyr::group_by ` and ` dplyr::ungroup ` S3 methods for ` epi_archive `
72
+ objects, plus corresponding ` $group_by ` and ` $ungroup ` R6 methods. The
73
+ ` group_by ` implementation supports the ` .add ` and ` .drop ` arguments, and
74
+ ` ungroup ` supports partial ungrouping with ` ... ` .
75
+ * ` as_epi_archive ` , ` epi_archive$new ` now perform checks for the key uniqueness
76
+ requirement (part of
77
+ [ #154 ] ( https://github.com/cmu-delphi/epiprocess/issues/154 ) ).
78
+
7
79
## Cleanup:
8
80
9
81
* Added a ` NEWS.md ` file to track changes to the package.
82
+ * Implemented ` ?dplyr::dplyr_extending ` for ` epi_df ` s
83
+ ([ #223 ] ( https://github.com/cmu-delphi/epiprocess/issues/223 ) ).
10
84
11
85
# epiprocess 0.5.0:
12
86
0 commit comments