<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo zusammen,
Ich habe zufällig eine Frage. Beigefügt ist die Datentabelle.
Grundsätzlich möchte ich den Mittelwert, stddev und die Anzahl basierend auf "vol" -Spalten nach Gruppen berechnen. Also habe ich zuerst die folgenden Skripte mit der Funktion "Summarize ()" geschrieben:
Zusammenfassen (vol_g = By (: group),
vol_m_g0 = Mittelwert (: vol_0),
vol_m_g1 = Mittelwert (: vol_1),
vol_m_g2 = Mittelwert (: vol_2),
vol_m_g3 = Mittelwert (: vol_3),
vol_m_g4 = Mittelwert (: vol_4),
vol_m_g5 = Mittelwert (: vol_5),
vol_m_g6 = Mittelwert (: vol_6),
vol_sd_g0 = stddev (: vol_0),
vol_sd_g1 = stddev (: vol_1),
vol_sd_g2 = stddev (: vol_2),
vol_sd_g3 = stddev (: vol_3),
vol_sd_g4 = stddev (: vol_4),
vol_sd_g5 = stddev (: vol_5),
vol_sd_g6 = stddev (: vol_6),
vol_n_g0 = Count (: vol_0),
vol_n_g1 = Anzahl (: vol_1),
vol_n_g2 = Count (: vol_2),
vol_n_g3 = Count (: vol_3),
vol_n_g4 = Count (: vol_4),
vol_n_g5 = Anzahl (: vol_5),
vol_n_g6 = Anzahl (: vol_6)
);
Aber es ist zu lang, deshalb möchte ich stattdessen die "for" -Schleife verwenden:
Für (i = 0, i <= 6, i ++,
Zusammenfassen (vol_g = By (: group),
Eval (Parse (Eval Insert) ("vol_m_g ^ i ^ = Mittelwert (: vol_ ^ i ^)"))),
Eval (Parse (Eval Insert) ("volsd_g ^ i ^ = Stddev (: vol_ ^ i ^)"))),
Eval (Parse (Eval Insert) ("vol_n_g ^ i ^ = Count (: vol_ ^ i ^)")))
)
);
Diese "for loop" -Version funktioniert jedoch nicht. Wie kann ich es überarbeiten, damit es funktioniert?
Danke vielmals!!
Je nachdem, wie allgemein Ihr Code sein soll und was als nächstes passiert, ist es möglicherweise bequemer, eine Übersichtstabelle zu erstellen:
NamesDefaultToHere ( 1 ) ;
dt1 = Datentabelle ( "Raw_data_new" ) ;
// Eine Liste aller Spalten in dt abrufen
Cols = dt1 << GetColumnNames ( "String" ) ;
// Löschen Sie eine Spalte, die nicht zusammengefasst werden soll
Zum ( c = NItems ( Cols ) . c > = 1 . c -, Ob ( ! Enthält ( Cols [ c ] . "vol_" ) . Entfernen von ( Cols . c )) ) ;
// Erstellen Sie eine Übersichtstabelle
dt2 = dt1 << Zusammenfassung ( Gruppe ( : Gruppe ) . Bedeuten ( EvalList ( Cols )) . StdDev ( EvalList ( Cols )) . N ( EvalList ( Cols ))) ;
Es sollte funktionieren, wenn der gesamte zusammenfassende Ausdruck () als String erstellt wird:
Zum ( ich = 0 . ich <= 6 . ich ++
Eval ( Parse ( Eval Insert ( "Zusammenfassen (vol_g = By (: group),
vol_m_g ^ i ^ = Mittelwert (: vol_ ^ i ^),
volsd_g ^ i ^ = Stddev (: vol_ ^ i ^),
vol_n_g ^ i ^ = Count (: vol_ ^ i ^)) "
)))
) ;