Wie erreiche ich mit JSL eine automatische Stapelersetzung?Diese Tabelle wird dynamisch vom laufenden JSL-Prozess generiert. Wie verwendet man die automatische JSL-Implementierung, um den 0-Wert ab Spalte 2 dieser Tabelle durch einen Nullwert "" zu ersetzen?
JSL muss durch eine Liste von Spaltennummern oder dynamischen Namen ersetzt werden.
Entweder ein spaltenweiser Austausch oder ein einmaliger Austausch.

Betreff: Wie erreicht man eine automatische Stapelersetzung mit JSL?Danke sehr!
For( i = 3, i <= N Col( d2 ), i++,
As Column( i )[d2 << get rows where( As Column( i ) == 0 )] = Empty()
);
Betreff: Wie erreicht man eine automatische Stapelersetzung mit JSL?Die Syntax:
For( c = 4, c <= N Cols( dt ), c++,
target row = dt << Get Rows Where( Column( dt, c )[] == 0 );
If( N Rows( target row ) > 0,
Column( dt, c )[target row] = .;
);
);
funktioniert bereits in JMP 14.
Betreff: Wie erreicht man eine automatische Stapelersetzung mit JSL?Ich freue mich wirklich darauf, JMP 15 zu verwenden. Vielen Dank!Betreff: Wie erreicht man eine automatische Stapelersetzung mit JSL?Diese Verarbeitung wird in JMP 15 noch einfacher und schneller. Sie können den fehlenden Wert allen Zeilen in einem Aufruf zuweisen.
Names Default to Here( 1 );
// assume that data table is open
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Wait( 1 );
// create 5 observations of zero
n = N Row( dt );
For( i = 1, i < 6, i++,
r = Random Integer( 1, n );
:weight[r] = 0;
r = Random Integer( 1, n );
:height[r] = 0;
);
Wait( 1 );
For( c = 4, c <= N Cols( dt ), c++,
target row = dt << Get Rows Where( Column( dt, c )[] == 0 );
If( N Rows( target row ) > 0,
Column( dt, c )[target row] = .;
);
);
Betreff: Wie erreicht man eine automatische Stapelersetzung mit JSL?Schön, dies reduziert die Anzahl der zu durchlaufenden Zeilen und spart Zeit bei großen Tabellen. Ich dachte, es könnte eine Möglichkeit geben, die Recode-Funktion für die Tabelle als Ganzes zu verwenden, aber ich sehe, Sie haben ( @Mark_Bailey ) bereits an anderer Stelle erklärt dass dies ein interaktiver Editor ist, keine JSL-Funktion.
Betreff: Wie erreicht man eine automatische Stapelersetzung mit JSL?Ich kann dieses Skript nicht testen, aber es sollte arbeiten.
Names Default to Here( 1 );
// assume that data table is open
dt = Current Data Table();
For( c = 2, c <= N Cols( dt ), c++,
target row = dt << Get Rows Where( Column( dt, c )[] == 0 );
If( N Rows( target row ) > 0,
For( r = 1, r <= N Rows( target row ), r++,
Column( dt, c )[target row[r]] = .;
);
);
);
Betreff: Wie erreicht man eine automatische Stapelersetzung mit JSL?Ich weiß nicht, ob dies der recheneffizienteste Weg ist, dies zu tun - ich gehe sogar davon aus, dass dies nicht der Fall ist. Aber wenn Sie eine schnelle Brute-Force-Lösung benötigen, hat dies in der Vergangenheit für mich funktioniert: Schleifen Sie über die Spalten, dann über die Zeilen und suchen Sie nach dem Wert, den Sie ersetzen möchten, und legen Sie den neuen Wert so fest, wie Sie ihn finden.
dt = current data table();
colnames = dt << Get Column Names(String);
for(c=2,c<=N Items(colnames),c++, // starting at 2 per your note
For Each Row(
If(column(dt,colnames[c])[]==0, // if you find a 0
column(dt,colnames[c])[]=Empty() // make it empty
)
)
);
Betreff: Wie erreicht man eine automatische Stapelersetzung mit JSL?Ich war unvorsichtig. Ich habe die Grammatik von VBA direkt verwendet und vergessen, "Empty()" zu verwenden.Betreff: Wie erreicht man eine automatische Stapelersetzung mit JSL?Laden Sie eine Datendatei hoch, fragen Sie die Experten um Hilfe. Vielen Dank!