Wie die COALESCE-Funktion in JSLIch habe nach der Funktion gesucht, mit der wir einen alternativen Wert haben könnten (z. B. A), wenn die Spalte X null ist, wie die COALESCE-Funktion, und die Gleichung könnte ungefähr so aussehen:
COALESCE(:X, A)
Wenn X nicht null ist, gibt es den Wert von X zurück
Wenn X null ist, gibt es den Wert A zurück
Ich habe verstanden, dass wir solche Ergebnisse durch eine etwas komplizierte Gleichung erzielen können, aber ich habe mich gefragt, ob wir standardmäßig eine ähnliche Funktion in JSL haben könnten.
Vielen Dank für Ihre Hilfe.
AndereBetreff: Wie die COALESCE-Funktion in JSLSie können loc nonmissing verwenden, um nur den ersten zu finden. Dies funktioniert sowohl für fehlende Werte als auch für leere Zeichen.
Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
// blanking out some rows.
dt:age[[2, 5, 8]] = .;
dt:sex[[2, 9, 18]] = "";
dt:height[[2, 4, 14]] = .;
dt:weight[[1, 4, 14]] = .;
coalesce = function({list_of_whatever},
{DEFAULT LOCAL},
l = Evallist(list_of_whatever);
lnm = LocNonMissing(l);
if(nitems(lnm),
return(char(l[lnm[1]])); // assuming you'll want to use both numeric and character columns
);
);
// this should never be the weight value
New Column("Coalesce", character,
<<FORMULA></FORMULA>Betreff: Wie die COALESCE-Funktion in JSLEs ist kein eingebauter VERSCHMELZEN Funktion in JSL. Für eine einzelne Spalte ist die Formel jedoch nicht so kompliziert:
if( !Is Missing( :X ),
:X, //:X is not missing
"A" //else
);
Zugegeben, mit mehr Spalten wird es etwas länger, aber es ist immer noch nicht schlecht.
if(
!Is Missing( :X ), :X, //:X is not missing
!Is Missing( :Y ), :Y, //:Y is not missing
!Is Missing( :Z ), :Z, //:Z is not missing
"A" //else
);
Wird vermisst() nimmt eine Liste oder ein Matrixargument und gibt eine Liste oder Matrix mit Nullen und Einsen zurück, die angibt, dass an diesen Stellen etwas fehlt oder nicht.
Is Missing( {"a", " ", "c"} ); // returns {0, 1, 0}
Vielleicht kann jemand, der klüger ist als ich, damit eine einfachere Version erstellen.
Und natürlich kann jede Methode, die Sie wählen, verwendet werden, um eine zu erstellen benutzerdefinierte Funktion , Koaleszenz ().