Я хочу взять несколько запаздывающих значений нескольких столбцов в 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),
coldf <- 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)
lag_1 = lag(col_2, n = 1, by = time_col),
col_1_lag_2 = lag(col_1, n = 2, by = time_col),
coldf <- 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)
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)