Es muss eine Spalte erstellt werden, die auf der Reihenfolge der Variablen basiert, die in einer anderen Spalte angezeigt werdenHallo zusammen,
Ich möchte eine Spalte basierend auf erstellen :Kunden ID und wie oft (eine Anzahl von Sequenzen wird nur als 1 Zählung gezählt, siehe die :Kommentar Spalte) erscheint es im Datensatz. Meine Anforderung ist: Letzte Anforderung und würde mich freuen: Erforderliche Spalte 1 sowie. Ich kann die Daten nicht neu anordnen/sortieren.
Irgendeine Hilfe, bitte?
Vielen Dank, -HSS

Datenmischung und -bereinigungQualitäts- und VerfahrenstechnikBetreff: Es muss eine Spalte erstellt werden, die auf der Reihenfolge der Variablen basiert, die in einer anderen Spalte angezeigt werdenVerwendung von SQL-Abfragen (insbesondere GROUP_CONCAT ) oder die verschiedenen Tabellenoperationen von JMP (Teilen, Transponieren, Text in Spalten einfügen und Spalten kombinieren, wieder zusammenfügen) sind möglicherweise einfacher (und schneller) als Formeln, aber Sie können dies beispielsweise mit einer Formel tun, indem Sie verwenden Loc() und Indizierung verschiedener Spalten.
Bearbeiten: Interaktive Methode hinzugefügt
Erste Split-Daten:

Als nächstes transponieren Sie die geteilten Daten:

Verwenden Sie aus transponierten Daten zunächst Text in Spalten, um Req2 und Region voneinander zu trennen

Verwenden Sie dann „Spalten kombinieren“, um Zeilenspalten zu kombinieren

Benennen Sie unnötige Spalten um und entfernen Sie sie. Am Ende sollten Sie so etwas erhalten

Verknüpfen Sie dies mit den Originaldaten2


Entfernen Sie zusätzliche Spalten und Sie sollten alles haben, was Sie brauchen.
Enhanced Log hat möglicherweise ein Skript für Sie parat, aber Sie müssen es möglicherweise etwas bereinigen

Betreff: Es muss eine Spalte erstellt werden, die auf der Reihenfolge der Variablen basiert, die in einer anderen Spalte angezeigt werdenHallo zusammen,
Es gibt eine weitere Anforderung – das Hinzufügen einer weiteren Spalte :Req_3 , wo alle Texte herkommen :Gruppe zusammengefasst und gespeichert werden. :Gruppe Der Text kann bis zu 2 Zeilen lang sein. Separator kann alles sein.
Das Problem besteht darin, dass die Anzahl der zu kombinierenden Zellen nicht festgelegt ist, sondern vom Wert in der Spalte abhängt :Req_1.
„Req_3“ ist erforderlich.
Irgendeine Hilfe, Danke.

Betreff: Es muss eine Spalte erstellt werden, die auf der Reihenfolge der Variablen basiert, die in einer anderen Spalte angezeigt werden@jthi Ich danke Ihnen für Ihre Hilfe.
Ich werde in diese Richtung arbeiten.
Betreff: Es muss eine Spalte erstellt werden, die auf der Reihenfolge der Variablen basiert, die in einer anderen Spalte angezeigt werdenAm einfachsten ist es höchstwahrscheinlich, eine neue Spalte zu erstellen und diese dann als Gruppierung zu verwenden, anstatt :Client_ID (ursprüngliche Formel).

Col Cumulative Sum(:"Concatenate[Region,Client_ID]"n != Lag(:"Concatenate[Region,Client_ID]"n), :"Concatenate[Region,Client_ID]"n)
Andernfalls wird der Teil, der in der kumulativen Summe summiert wird, ziemlich schnell komplizierter (es gibt möglicherweise einfachere als diese, aber dies sollte falsche Werte bei :Region-Änderung behandeln):
Col Cumulative Sum(
If(Row() == Col Minimum(Row(), :Client_ID, :Region),
1
,
:Client_ID != Lag(:Client_ID)
)
, :Client_ID, :Region
)
Betreff: Es muss eine Spalte erstellt werden, die auf der Reihenfolge der Variablen basiert, die in einer anderen Spalte angezeigt werden@jthi Col Cumulative Sum funktioniert, aber ich kann keine korrekte Initialisierung der Schleife/des Startpunkts mit der Gruppierungsvariablen :Region finden.
Irgendwelche anderen Vorschläge?
Danke
Col Cumulative Sum( :Client_ID != Lag( :Client_ID ) & :Region == Lag( :Region ), :Client_ID )
Betreff: Es muss eine Spalte erstellt werden, die auf der Reihenfolge der Variablen basiert, die in einer anderen Spalte angezeigt werdenSie müssten zunächst eine neue „Gruppierungs“-Spalte erstellen, wenn Sie ein assoziatives Array auf diese Weise verwenden möchten. Bei mehreren Gruppierungsspalten ist es möglicherweise einfacher, Col Cumulative Sum zu verwenden (könnte immer einfacher sein, habe mir gerade das ausgedacht). Sie müssen den richtigen Vergleich und die Gruppierung herausfinden
Col Cumulative Sum(:Client_ID != Lag(:Client_ID), :Client_ID)
Betreff: Es muss eine Spalte erstellt werden, die auf der Reihenfolge der Variablen basiert, die in einer anderen Spalte angezeigt werdenHallo @jthi Kann ich die Gruppierung auch für „Associated Array“ mithilfe anderer Spalten durchführen? Etwas wie das ? „Zugehöriges Array(:Client_ID, :Region)“ Und mein Datensatz hat mehr als 700.000 Zeilen. Funktioniert der Associate-Befehl weiterhin? Wenn ich nach gruppieren kann :Region , es kann immer noch mehr als 10.000 Zeilen haben. Auf jeden Fall werde ich das auf jeden Fall versuchen.
Ich danke Ihnen für Ihre Hilfe. Grüße, - HSS
Betreff: Es muss eine Spalte erstellt werden, die auf der Reihenfolge der Variablen basiert, die in einer anderen Spalte angezeigt werdenHier sollte die Verwendung eines assoziativen Arrays zum Speichern des Werts und zum anschließenden Erhöhen nach Bedarf funktionieren.
Formel für die erforderliche Spalte 1:
As Constant(
aa = Associative Array(:Client_ID);
aa = Associative Array(aa << get keys, Repeat(0, N Items(aa)));
retval = 1;
);
If(:Client_ID != Lag(:Client_ID),
aa[:Client_ID]++;
);
aa[:Client_ID];
Und letzte Anforderung:
Eval Insert("^:Client_ID^_^:Required Column 2^");
Beispielskript (verwendet andere Spaltennamen):
Names Default To Here(1);
dt = Open("$DOWNLOADS/data.jmp");
dt << New Column("Required Column 2", Numeric, Ordinal, Formula(
As Constant(
aa = Associative Array(:Client_ID);
aa = Associative Array(aa << get keys, Repeat(0, N Items(aa)));
retval = 1;
);
If(:Client_ID != Lag(:Client_ID),
aa[:Client_ID]++;
);
aa[:Client_ID];
));
dt << New Column("Final Requirement 2", Character, Ordinal, Formula(
Eval Insert("^:Client_ID^_^:Required Column 2^");
));
