Wie die COALESCE-Funktion in JSLIch habe nach einer Funktion gesucht, mit der wir einen alternativen Wert (z. B. A) erhalten, wenn die Spalte X null ist, wie bei der Funktion COALESCE. Die Gleichung könnte dann etwa so aussehen:
COALESCE(:X, A)
wenn X nicht null ist, wird der Wert von X zurückgegeben
wenn X null ist, wird der Wert A zurückgegeben
Mir ist klar, dass wir solche Ergebnisse mit einer etwas komplizierteren Gleichung erzielen können, aber ich habe mich gefragt, ob wir in JSL standardmäßig eine ähnliche Funktion haben könnten.
Vielen Dank für Ihre Hilfe.
Konsumenten- und MarktforschungErgebnisse teilen und kommunizierenBetreff: Wie COALESCE-Funktion in JSLSie könnten loc nonmissing verwenden, um nur den ersten zu finden, es 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 COALESCE-Funktion in JSLEs ist nichts eingebaut 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, es wird mit mehr Spalten etwas länger, aber es ist trotzdem nicht allzu schlimm.
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 ein Listen- oder Matrix-Argument und gibt eine Liste oder Matrix von Nullen und Einsen zurück, die an diesen Stellen fehlen oder nicht vorhanden sind.
Is Missing( {"a", " ", "c"} ); // returns {0, 1, 0}
Vielleicht kann jemand, der klüger ist als ich, das verwenden, um eine einfachere Version zu erstellen.
Und natürlich kann jede Methode, die Sie wählen, verwendet werden, um eine zu erstellen benutzerdefinierte Funktion , Koaleszenz().