Ich habe einen Datenrahmen, die Skalierung mehr Spalten in einem Datenrahmen mit ddply in R
ID Lot SubLot test1 test2 test3
dffk A A1 6 10 10
wdwd A A1 8 6 5
ewew A A2 2 9 3
llde A A2 2 10 6
e3rw B B1 8 2 2
qweo B B2 2 9 8
cmve B B2 6 5 9
owdf B B2 10 3 2
Mein Ziel zu ersetzen, ist die „Test“ Spalten mit ihren standardisierten Werten wie
aussieht. Die Standardisierung muss während der Gruppierung durch Lot und Sublot Säulen erfolgen.Ich dachte über die Verwendung ddply von plyr pckage. Ich kann es für eine einzelne Spalte tun mit:
new_data <- ddply(old_data, c("Lot","SubLot"), transform, test1 = scale(test1))
Wie sollte die Syntax aussehen, wenn ich auf einmal diese für alle „Test“ Spalten durchführen möchten?
Vielen Dank, David
mit 'ddply', können Sie einfach die Skalierung von anderen Spalten auf den Befehl als zusätzliche Argumente hinzufügen (dh' ddply (old_data, c ("Lot", "SubLot"), transformieren, test1 = skalieren (test1), test2 = skalieren (test2), test3 = skalieren (test3)). "Die Lösung von @Sumedh ist jedoch allgemeiner , und ich glaube nicht, dass Sie das mit 'plyr' machen können. – aichao
Danke, aber es wird nicht funktionieren, da ich Tausende von Spalten im Datensatz habe. @Sumedh Lösung führt zu einem Fehler, den ich unten erwähnte – buras12