Como posso manipular colunas de quadro de dados com valores diferentes de um vetor externo (com dplyr)

Em R, eu gostaria de manipular (digamos, multiplicar) as colunas data.frame com valores nomeados apropriadamente armazenados em um vetor (ou data.frame, se for mais fácil).

Digamos, eu quero primeirosummarise as variáveisdisp, hpewt demtcars conjunto de dados.

vars <- c("disp", "hp", "wt")
mtcars %>% 
  summarise_at(vars, funs(sum(.))

(lançar umgroup_by(cyl) na mistura ou usemutate_at se você quiser ter mais linhas)

Agora, gostaria de multiplicar cada uma das colunas resultantes por um valor específico, fornecido por

multiplier <- c("disp" = 2, "hp" = 3, "wt" = 4)

É possível fazer referência a eles dentro dosummarise_at função?

O resultado deve ficar assim (e eu não quero ter que me referir diretamente aos nomes das variáveis ao chegar lá):

disp    hp    wt
14766.2 14082 411.808

ATUALIZAR:

Talvez meu MWE fosse mínimo demais. Digamos que eu queira fazer a mesma operação com um data.frame agrupado porcyl

mtcars %>% 
  group_by(cyl) %>% 
  summarise_at(vars, sum) 

O resultado deve ser assim:

    cyl   disp   hp      wt
1     4 2313.0 2727 100.572
2     6 2566.4 2568  87.280
3     8 9886.8 8787 223.956

ATUALIZAÇÃO 2:

Talvez eu também não tenha sido suficientemente explícito aqui, mas as colunas no data.frame devem ser multiplicadas pelos respectivos valores no vetor (e apenas pelas colunas mencionadas no vetor), por exemplo,disp deve ser multiplicado por 2,hp por 3 ewt por 4, todas as outras variáveis (por exemplo,cyl) deve permanecer intocado pela multiplicação.

questionAnswers(2)

yourAnswerToTheQuestion