Durchlaufen Sie mehrere Spalten und ersetzen Sie ZellenHallo zusammen,
Ich versuche, mehrere Tabellen zu durchlaufen und jeden Wert > 6 Sigma durch ein „.“ zu ersetzen. Unten ist mein Versuch, große Klassen zu durchlaufen und die Gewichts- und Höhenwerte größer als 1 Sigma durch ein .; zu ersetzen. Es funktioniert jedoch nicht wie vorgesehen. Ich glaube, ich verwechsle mich mit den beiden Saiten.
Names Default To Here( 1 );
Clear Globals();
dt = Open("...\SAS\JMP\13\Samples\Data\Big Class.jmp");
mycol = J( N Rows( dt ), 1 );
list_col_names = dt << Get Column Names( String );
For( i = 1, i <= N Items( list_col_names ), i++,
cur_col = (list_col_names[i]);
If( Left( cur_col,1 ) == "ei",
mycol = dt << get as matrix( cur_col );
q25 = Quantile( 0.25, mycol );
q50 = Quantile( 0.50, mycol );
q75 = Quantile( 0.75, mycol );
mycol1 = ((mycol - q50) / ((q75 - q25) / 1.35));
For( r = 1, r <= N Rows( dt ), r++,
If(
mycol1[r] > 1, mycol1[r] = .,
mycol1[r] < -1, mycol1[r] = .
));
);
);
Danke!
Betreff: Durch mehrere Spalten iterieren und Zellen ersetzenDort lag mein Problem, es funktioniert großartig! Ich danke Ihnen für Ihre Hilfe!
Betreff: Durch mehrere Spalten iterieren und Zellen ersetzenDie Hauptprobleme, die ich sehe, sind, dass Sie die Spalten „Höhe“ und „Gewicht“ nicht identifiziert haben und dass die Werte nicht in die Datentabelle zurückgeschrieben wurden, sobald Sie die Zeilen über oder unter 1 Sigma gefunden haben.
Hier ist eine Änderung an Ihrem Code, die diese Probleme behebt.
Names Default To Here( 1 );
Clear Globals();
dt = Open("$SAMPLE_DATA\Big Class.jmp");
mycol = J( N Rows( dt ), 1 );
list_col_names = dt << Get Column Names( String );
For( i = 4, i <= N Items( list_col_names ), i++,
cur_col = (list_col_names[i]);
If( Contains(cur_col,"ei") > 0,
mycol = dt << get as matrix( cur_col );
q25 = Quantile( 0.25, mycol );
q50 = Quantile( 0.50, mycol );
q75 = Quantile( 0.75, mycol );
mycol1 = ((mycol - q50) / ((q75 - q25) / 1.35));
For( r = 1, r <= N Rows( dt ), r++,
If(
mycol1[r] > 1, column(dt,cur_col)[r] = .,
mycol1[r] < -1, column(dt,cur_col)[r] = .
));
);
);