@@ -187,6 +187,8 @@ add_weekofmonth <- function(df, time_col, wm = WEEK_ISSUES) {
187
187
# ' @template lag_col-template
188
188
# ' @template ref_lag-template
189
189
# '
190
+ # ' @importFrom dplyr full_join left_join
191
+ # ' @importFrom purrr reduce
190
192
# ' @importFrom tidyr pivot_wider drop_na
191
193
# '
192
194
# ' @export
@@ -203,16 +205,21 @@ add_7davs_and_target <- function(df, value_col, refd_col, lag_col, ref_lag) {
203
205
names(avg_df )[names(avg_df ) == value_col ] <- ' value_7dav'
204
206
avg_df_prev7 <- add_shift(avg_df , 7 , refd_col )
205
207
names(avg_df_prev7 )[names(avg_df_prev7 ) == ' value_7dav' ] <- ' value_prev_7dav'
206
-
207
- backfill_df <- Reduce(function (x , y ) merge(x , y , all = TRUE ),
208
- list (df , avg_df , avg_df_prev7 ))
208
+
209
+ backfill_df <- reduce(
210
+ list (df , avg_df , avg_df_prev7 ),
211
+ full_join , by = c(refd_col , " issue_date" )
212
+ )
209
213
210
214
# Add target
211
215
target_df <- df [df $ lag == ref_lag , c(refd_col , value_col , " issue_date" )]
212
216
names(target_df )[names(target_df ) == value_col ] <- ' value_target'
213
217
names(target_df )[names(target_df ) == ' issue_date' ] <- ' target_date'
214
218
215
- backfill_df <- merge(backfill_df , target_df , by = refd_col , all.x = TRUE )
219
+ backfill_df <- left_join(backfill_df , target_df , by = c(refd_col ))
220
+
221
+ # Remove invalid rows
222
+ backfill_df <- drop_na(backfill_df , c(lag_col ))
216
223
217
224
# Add log values
218
225
backfill_df $ log_value_raw = log(backfill_df $ value_raw + 1 )
@@ -221,9 +228,6 @@ add_7davs_and_target <- function(df, value_col, refd_col, lag_col, ref_lag) {
221
228
backfill_df $ log_value_prev_7dav = log(backfill_df $ value_prev_7dav + 1 )
222
229
backfill_df $ log_7dav_slope = backfill_df $ log_value_7dav - backfill_df $ log_value_prev_7dav
223
230
224
- # Remove invalid rows
225
- backfill_df <- drop_na(backfill_df , c(lag_col ))
226
-
227
231
return (as.data.frame(backfill_df ))
228
232
}
229
233
0 commit comments