Мы можем использовать
library(dplyr)
library(purrr)
map_dfc(2:5, ~ {n <- .x ;
t %>%
transmute_at(vars(.x), ~ case_when(a == 2 ~ . + n, TRUE ~ .))}) %>%
bind_cols(select(t, a), .)
Если нам нужны другие значения, тогда используйте map2
map2_dfc(2:5, c(2L, 1000L, 1500L, 2000L), ~ {n <- .x
val <- .y;
t %>%
transmute_at(vars(.x), ~ case_when(a == 2 ~ . + val, TRUE ~ .))}) %>%
bind_cols(select(t, a), .)