Я хочу взять несколько запаздывающих значений нескольких столбцов в R.
Как использовать mutate_at для получения тех же результатов, что и ниже? Допустим, в реальном примере 30 столбцов, поэтому нет смысла выписывать формулу отставания 30x для каждого периода времени.
df <- data_frame(time_col = 1:26, col_1 = letters, col_2 = rev(letters))
df %>% mutate(col_1_lag_1 = lag(col_1, n = 1, by = time_col),
col_2_lag_1 = lag(col_2, n = 1, by = time_col),
col_1_lag_2 = lag(col_1, n = 2, by = time_col),
col_2_lag_2 = lag(col_2, n = 2, by = time_col))
Я думаю, что это должно быть примерно так, но я не знаю, как указать оба набора параметров:
df <- data_frame(time_col = 1:26, col_1 = letters, col_2 = rev(letters))
df %>% mutate_at(vars(col_1, col_2), funs(lag, lag), n = 1, n = 2, by = time_col)