JSL-Implementierung zum Löschen von Spalten mit ausschließlich fehlenden Werten derselben KategorieIn der beigefügten Datei ist das Feld „Filiale“ in zwei Filialen, A und B, unterteilt. Wenn alle Zellen einer Spalte, die derselben Filiale zugeordnet ist, fehlende Werte enthalten, soll die gesamte Spalte gelöscht werden, wie im beigefügten „Erwarteten Ergebnis“ dargestellt. Wie lässt sich dies mit JSL umsetzen?
Ich kann die fehlenden Werte in jeder Spalte zählen, finde aber keine Möglichkeit zu überprüfen, ob alle Zellen, die demselben Geschäft zugeordnet sind, fehlende Werte enthalten. Kennen Sie eine geeignete Methode? Da es tatsächlich Zehntausende von Spalten gibt, würde eine zeitaufwändige Berechnung zu lange dauern.
Automatisierung und SkripterstellungBetreff: JSL-Implementierung zum Löschen von Spalten mit ausschließlich fehlenden Werten derselben KategorieWarum werden die Preise für Bananen und Durian beibehalten? Alle „A“ Bananenpreise und alle „B“ Durianpreise fehlen.
Betreff: JSL-Implementierung zum Löschen von Spalten mit ausschließlich fehlenden Werten derselben KategorieHallo,
Ich habe mich genau an Ihre Vorgaben gehalten und eine Option ohne Skripte entwickelt. Wie @mmarchandFSLR jedoch anmerkte, würde das Ergebnis nicht Ihren „Ergebnissen“ entsprechen, da Bananen und Durian ausgeschlossen/gelöscht würden.
1) Stapeln Sie alle Spalten übereinander (siehe beigefügtes Beispiel).
2) Verwenden Sie die Formel:
Col Sum( Is Missing( :Data ), :Store, :Label ) / Col Sum( 1, :Store, :Label )
3) Fügen Sie eine Master-Prüfspalte „ZU LÖSCHENDE ZEILEN“ mit folgender Formel hinzu:
Col Max( :MISSING by STORE PCT, :Label )
4) Löschen Sie die markierten Zeilen
5) Teilen Sie die resultierende Tabelle nach "Label" auf.
Am besten,
TS
Betreff: JSL-Implementierung zum Löschen von Spalten mit ausschließlich fehlenden Werten derselben KategorieIch schlage vor, dass Sie eine Tabelle erstellen, die folgendermaßen aussieht.

Anschließend können Sie die Tabelle durchlesen und eine Liste der Spalten erstellen, die die jeweilige Bedingung N vs. N Missing für jeden zu löschenden Shop erfüllen.
Hier ist ein Beispielskript zum Erstellen der Tabelle.
names default to here(1);
dt=data table("Fruite Price");
colNames = dt << get column names(continuous);
dtMissing = dt << Summary( invisible,
Group( :Store ),
N Missing( colNames ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
output table name( "N Missing" )
);
dtStack = dtMissing << Stack( invisible,
columns(
colNames
),
Source Label Column( "Product" ),
Stacked Data Column( "N Missing" ),
Output Table( "Stack of N Missing" )
);
dtEval = dtStack <<
Split(
Split By( :Store ),
Split( :N Missing, :N Rows ),
Group( :Product ),
Output Table( "Eval Table" ),
Sort by Column Property
);
Sie könnten die Tabulate-Plattform verwenden, um die Tabelle zu erstellen, aber Sie haben angegeben, dass Sie Tausende von Spalten haben. Ich glaube nicht, dass Tabulate in diesem Fall die richtige Lösung ist; das obige Skript sollte jedoch funktionieren.