Das Ersetzen mehrerer Zeilenwerte aus einer Spalte funktioniert nicht ordnungsgemäßHallo JMP-Community,
Mir ist ein ziemlich seltsames Problem aufgetreten. Hier ist mein Code:
dt_temp = data table("aaaa");
dt_temp << Summary( Group( :Column1,:Column2), Freq( "None" ), Weight( "None" ),output table name( "summary" ) );
data table("summary") << select where (:N rows >= 2 & !contains(:Column1,"AA") & !contains(:Column1,"BB") );
rows = dt_temp << get selected rows;
dt_temp:Column3[rows] = "";
//Column(dt_temp, "Column3")[rows] = "";
Wenn ich diesen Code ausführe, haben sogar die Zeilen Werte wie [10, 11, 20, 21], aber das Endergebnis von Spalte3 ist anders. Es ersetzt andere Zeilen (z. B. Zeile 1, 5, ...) anstelle von Zeilen in ausgewählten Zeilen.
Könnten Sie mir helfen, dieses Problem zu lösen?
Qualitäts- und VerfahrenstechnikErgebnisse teilen und kommunizierenBetreff: Das Ersetzen mehrerer Zeilenwerte aus einer Spalte funktioniert nicht ordnungsgemäßVielen Dank, Jim und Jarmo! Beide Lösungen funktionieren für mich wie ein Zauber!
Betreff: Das Ersetzen mehrerer Zeilenwerte aus einer Spalte funktioniert nicht ordnungsgemäßVersuchen Sie, die Übersichtstabelle zu schließen, bevor Sie die Werte in der Originaltabelle festlegen.Die Zusammenfassungstabelle ist mit dem Original verknüpft und verhindert, dass diese aktualisiert wird.
dt_temp = data table("aaaa");
dt_summ = dt_temp << Summary( Group( :Column1,:Column2), Freq( "None" ), Weight( "None" ),output table name( "summary" ) );
data table("summary") << select where (:N rows >= 2 & !contains(:Column1,"AA") & !contains(:Column1,"BB") );
rows = dt_temp << get selected rows;
close( dt_summ, nosave );
dt_temp:Column3[rows] = "";
//Column(dt_temp, "Column3")[rows] = "";Betreff: Das Ersetzen mehrerer Zeilenwerte aus einer Spalte funktioniert nicht ordnungsgemäßBasierend auf Abonnieren der Datentabelle Die Art und Weise, wie ich die Zellenwerte festlege, ist möglicherweise in JMP13 verfügbar.
Ich werde versuchen, Schleifen zu vermeiden, aber ich habe keinen Zugriff auf eine ältere Version von JMP als 15, daher bin ich mir nicht sicher, ob das auch funktionieren wird:
Names Default To Here(1);
dt_temp = Open("$SAMPLE_DATA/Big Class.jmp");
dt_summary = dt_temp << Summary(Group(:age, :sex), Freq("None"), Weight("None"), output table name( "summary" ));
dt_summary << Select Where(:N Rows >= 3 & !Contains(:sex, "M"));<BR />
//get rows which should be set to empty
rows = dt_temp << Get Selected Rows;
//get all values in name column
colValues = dt_temp:name << get values;
show(colValues);
//set selected rows in the colValues list to ""
colValues[rows] = "";
show(colValues);
dt_temp:name << Set Values(colValues);
Betreff: Das Ersetzen mehrerer Zeilenwerte aus einer Spalte funktioniert nicht ordnungsgemäßIch verwende Jmp Pro 12.2.0, 64-Bit-Version. Protokolldatei als Referenz:

Die Protokolldatei mit der Zeilennummer (-1) ist zwar nicht ungültig, aber wenn ich Zeilen zeige, gibt es keine solche Zeile.
Betreff: Das Ersetzen mehrerer Zeilenwerte aus einer Spalte funktioniert nicht ordnungsgemäßWelche JMP-Version verwenden Sie? Ich verwende 15.2.1 und mein Beispiel scheint für mich gut zu funktionieren:

Betreff: Das Ersetzen mehrerer Zeilenwerte aus einer Spalte funktioniert nicht ordnungsgemäßHallo Jarmo,
Vielen Dank für Ihren Vorschlag, aber er scheint bei mir nicht zu funktionieren.
Zur Verdeutlichung möchte ich Werte in der Originaltabelle basierend auf der Bedingung der Übersichtstabelle ersetzen.
Ich habe auch versucht, Ihren Code auszuführen, und hier ist das Ergebnis:
Ausgewählte Zeilen aus der Übersichtstabelle:

Ausgewählte Zeilen aus der Haupttabelle. Es wurden 15 Reihen ausgewählt, es wurden jedoch nur die ersten Reihen jeder Gruppe ersetzt:

Betreff: Das Ersetzen mehrerer Zeilenwerte aus einer Spalte funktioniert nicht ordnungsgemäßVersuchen Sie, Werte in der Originaldatentabelle oder in der Übersichtstabelle zu ersetzen? Das scheint bei mir ganz gut zu funktionieren:
Names Default To Here(1);
dt_temp = Open("$SAMPLE_DATA/Big Class.jmp");
dt_temp << Summary(Group(:age, :sex), Freq("None"), Weight("None"), output table name( "summary" ));
data table("summary") << Select Where(:N Rows >= 3 & !Contains(:sex, "M"));
rows = dt_temp << Get Selected Rows;
show(dt_temp:name[rows]);
dt_temp:name[rows] = "";
show(dt_temp:name[rows]);