Wie kann ich Datenrahmenspalten mit unterschiedlichen Werten von einem externen Vektor (mit dplyr) bearbeiten?

In R möchte ich data.frame-Spalten mit entsprechend benannten Werten bearbeiten (beispielsweise multiplizieren), die in einem Vektor gespeichert sind (oder data.frame, falls dies einfacher ist).

Sagen wir, ich möchte zuerstsummarise die Variablendisp, hp, undwt von demmtcars dataset.

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

(Werfen Sie einengroup_by(cyl) in die Mischung, oder verwenden Siemutate_at wenn du mehr Zeilen haben möchtest)

Nun möchte ich jede der resultierenden Spalten mit einem bestimmten Wert multiplizieren, gegeben durch

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

Ist es möglich, innerhalb des @ auf diese zu verweisesummarise_at Funktion?

Das Ergebnis sollte so aussehen (und ich möchte nicht direkt auf die Variablennamen verweisen müssen, wenn ich dorthin komme):

disp    hp    wt
14766.2 14082 411.808

AKTUALISIEREN

Vielleicht war meine MWE zu minimal. Angenommen, ich möchte dieselbe Operation mit einem durch @ gruppierten data.frame ausführecyl

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

Das Ergebnis sollte also sein:

    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

UPDATE 2:

Vielleicht war ich auch hier nicht explizit genug, aber die Spalten im data.frame sollten mit den jeweiligen Werten im Vektor (und nur den im Vektor erwähnten Spalten) multipliziert werden, so dass z.disp sollte mit 2 multipliziert werden,hp um 3 undwt um 4, alle anderen Variablen (z. B.cyl) sollte von der Multiplikation unberührt bleiben.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage