Ich bin nicht sicher, ob der Titel gut formuliert ist, aber hier ist die Situation:eine beliebige Anzahl von neuen Spalten erstellen in R mit dplyr
Ich habe einen Metadaten-Datensatz, die eine beliebige Anzahl von Zeilen haben kann in es, zum Beispiel:
Control_DF <- cbind.data.frame(
Scenario = c("A","B","C")
,Variable = c("V1","V2","V3")
,Weight = c("w1","w2","w3")
)
die Daten in Control_DF enthaltenen Verwendung, ich möchte eine neue Version von jeder Variable auf meinem Haupt-Datensatz erstellen, wo ich die Variable durch das Gewicht multiplizieren. Also, wenn mein Haupt-Datensatz sieht wie folgt aus:
Main_Data <- cbind.data.frame(
V1 = c(1,2,3,4)
,V2 = c(2,3,4,5)
,V2 = c(3,4,5,6)
,w1 = c(0.1,0.5,1,0.8)
,w2 = c(0.2,1,0.3,0.6)
,w2 = c(0.3,0.7,0.1,0.2)
)
Dann in Open Source, was ich will so aussieht tun:
New_Data <- Main_Data %>%
mutate(
weighted_V1 = V1 * w1
,weighted_V2 = V2 * w2
,weighted_V3 = V3 * w3
)
Ich brauche aber eine Möglichkeit, nicht diese harte Kodierung, und so, dass die Anzahl der Variablen, auf die Bezug genommen wird, beliebig ist.
Kann mir jemand helfen?
was ist die Logik, wenn Sie nicht wollen, zu hart Code? – mtoto
In meinem Beispiel haben wir V1-V3, aber in Anwendung dieser könnte ich V1 - V10, oder V1 - V76, etc .. Die Schönheit von dplyr ist prägnant, lesbaren Code, aber ich habe Mühe, das zu erweitern Problem. Ich könnte lappig oder so etwas machen, aber ich denke, es wird weniger effizient sein, und es ist sicherlich weniger lesbar, was für mich weniger wünschenswert ist. – TomFromWales
Wenn ich irgendwie "gewichtet_V1 = V1 * w1, ..., gewichtet_Vn = Vn * wn" in eine Zeichenkette schreiben und dann "einfügen und ausführen" könnte das in die Mutate-Funktion, die nett wäre! – TomFromWales