Hallo, ich möchte die folgenden Transaktionsdaten in eine Matrix umwandeln, um die Häufigkeit VERSCHIEDENER Tage zu zählen, an denen der Kunde Bestellungen aufgegeben hat.
Ich versuche es im Grunde herauszufinden, basierend auf Transaktionsdaten aus 2 Jahren. Wie viele verschiedene Tage hat eine Kunden-ID Einkäufe getätigt?
Beispiel: Kunden-ID 17850 Frequenz von 1 im Datensatz unten (es wurden an diesem Tag verschiedene Artikel gekauft, wie Sie in den Transaktionsdaten sehen können).
Ich versuche TABULATE, bin mir aber nicht sicher, wie ich Zeilen mit einzelnen Kunden-IDs und die Häufigkeit (basierend auf eindeutigen Tagen) ermitteln soll.
Beispiel für ein Tabellenergebnis (basierend auf eindeutigen Daten, nicht auf Zeilen!):
| Kundennummer | Frequenz |
| 17850 | 45 |
| 13047 | 30 |
| … | … |
PS: Ich hänge das Excel mit den Transaktionsdaten an
| Rechnungsnr | Lagercode | Beschreibung | Menge | Rechnungsdatum | Einzelpreis | Kundennummer | Land |
| 536365 | 85123A | Weißer, herzförmiger Teelichthalter zum Aufhängen | 6 | 12.01.2010 8:26 | 2,55 | 17850 | Großbritannien |
| 536365 | 71053 | WEISSE METALLLATERNE | 6 | 12.01.2010 8:26 | 3.39 | 17850 | Großbritannien |
| 536365 | 84406B | Cremefarbener Kleiderbügel mit Amor-Herzen-Motiv | 8 | 12.01.2010 8:26 | 2,75 | 17850 | Großbritannien |
| 536365 | 84029G | WÄRMEFLASCHE MIT GESTRICKTER UNION-FLAGGE | 6 | 12.01.2010 8:26 | 3.39 | 17850 | Großbritannien |
| 536365 | 84029E | RED WOOLLY HOTTIE WEISSES HERZ. | 6 | 12.01.2010 8:26 | 3.39 | 17850 | Großbritannien |
| 536365 | 22752 | SET 7 BABUSHKA-NISTKÄSTEN | 2 | 12.01.2010 8:26 | 7.65 | 17850 | Großbritannien |
| 536365 | 21730 | T-LIGHT-HALTER AUS GLASSTERN MIT MATTIERUNG | 6 | 12.01.2010 8:26 | 4.25 | 17850 | Großbritannien |
| 536366 | 22633 | HANDWÄRMER-UNION-JACK | 6 | 12.01.2010 8:28 | 1,85 | 17850 | Großbritannien |
| 536366 | 22632 | HANDWÄRMER ROTER POLKA DOT | 6 | 12.01.2010 8:28 | 1,85 | 17850 | Großbritannien |
| 536367 | 84879 | VERSCHIEDENE FARBIGE VOGELVERZIERUNG | 32 | 12.01.2010 8:34 | 1,69 | 13047 | Großbritannien |
| 536367 | 22745 | POPPY'S PLAYHOUSE SCHLAFZIMMER | 6 | 12.01.2010 8:34 | 2.1 | 13047 | Großbritannien |
| 536367 | 22748 | POPPY'S SPIELHAUSKÜCHE | 6 | 12.01.2010 8:34 | 2.1 | 13047 | Großbritannien |
| 536367 | 22749 | FELTCRAFT-PUPPE PRINZESSIN CHARLOTTE | 8 | 12.01.2010 8:34 | 3,75 | 13047 | Großbritannien |
| 536367 | 22310 | ELFENBEIN STRICKBECHER GEMÜTLICH | 6 | 12.01.2010 8:34 | 1,65 | 13047 | Großbritannien |
| 536367 | 84969 | Schachtel mit 6 Teelöffeln in verschiedenen Farben | 6 | 12.01.2010 8:34 | 4.25 | 13047 | Großbritannien |
| 536367 | 22623 | SCHACHTEL MIT VINTAGE-PUZZLEBLÖCKEN | 3 | 12.01.2010 8:34 | 4,95 | 13047 | Großbritannien |
| 536367 | 22622 | SCHACHTEL MIT VINTAGE-ALPHABETBLÖCKEN | 2 | 12.01.2010 8:34 | 9,95 | 13047 | Großbritannien |
| 536367 | 21754 | WOHNBAU-BLOCKWORT | 3 | 12.01.2010 8:34 | 5,95 | 13047 | Großbritannien |
| 536367 | 21755 | LIEBE-BAUSTEIN-WORT | 3 | 12.01.2010 8:34 | 5,95 | 13047 | Großbritannien |
| 536367 | 21777 | REZEPTBOX MIT METALLHERZ | 4 | 12.01.2010 8:34 | 7,95 | 13047 | Großbritannien |
| 536367 | 48187 | Fußmatte New England | 4 | 12.01.2010 8:34 | 7,95 | 13047 | Großbritannien |
| 536368 | 22960 | Marmeladenzubereitungsset mit Gläsern | 6 | 12.01.2010 8:34 | 4.25 | 13047 | Großbritannien |
| 536368 | 22913 | ROTER GARDEROBENSTÄNDER PARIS MODE | 3 | 12.01.2010 8:34 | 4,95 | 13047 | Großbritannien |
| 536368 | 22912 | GELBE GARDEROBE PARIS FASHION | 3 | 12.01.2010 8:34 | 4,95 | 13047 | Großbritannien |
| 536368 | 22914 | BLAUE GARDEROBE PARIS MODE | 3 | 12.01.2010 8:34 | 4,95 | 13047 | Großbritannien |
| 536369 | 21756 | BADEBAU-BLOCKWORT | 3 | 12.01.2010 8:35 | 5,95 | 13047 | Großbritannien |
| 536370 | 22728 | WECKER BACKÄHNLICH ROSA | 24 | 12.01.2010 8:45 | 3,75 | 12583 | Frankreich |
| 536370 | 22727 | WECKER BACKÄHNLICH ROT | 24 | 12.01.2010 8:45 | 3,75 | 12583 | Frankreich |
| 536370 | 22726 | WECKER BACKÄHNLICH GRÜN | 12 | 12.01.2010 8:45 | 3,75 | 12583 | Frankreich |
| 536370 | 21724 | PANDA- UND HASEN-AUFKLEBERBOGEN | 12 | 12.01.2010 8:45 | 0,85 | 12583 | Frankreich |
| 536370 | 21883 | STERNE GESCHENKBAND | 24 | 12.01.2010 8:45 | 0,65 | 12583 | Frankreich |
Eine alternative Möglichkeit, dies zu tun.Ändern Sie zunächst, wie Jim sagt, die Kunden-ID (entweder in Nominal oder Ordinal).Erstellen Sie eine neue Datumsspalte, indem Sie das aktuelle InvoiceDate in eine Character Nominal-Variable ändern.Erstellen Sie eine neue Spalte für das Datum, indem Sie „Links“ (Rechnungsdatum, 10) verwenden – dadurch wird die Zeit eingespart.Verwenden Sie dann Tabulate mit der Kunden-ID, gefolgt von der neuen Datumsspalte (beide als Zeilen).Beim roten Pfeil „In Datentabelle umwandeln“ wählen.
Erstellen Sie dann eine neue Spalte mit der Formel Spaltennummer (Datum, nach Kunden-ID).Dies gibt die Anzahl der einzelnen Tage an, an denen jeder Kunde Bestellungen aufgegeben hat.
Die Lösung Ihrer Frage ist ganz einfach.Dies können Sie ganz einfach interaktiv oder als Skript durchführen. Diese Schritte finden Sie alle in der einführenden JMP-Dokumentation. Ich empfehle Ihnen, sich die Zeit zum Lesen zu nehmen.Es gibt Ihnen einen guten Überblick über die verschiedenen verfügbaren Komponenten.
Hilfe==>Bücher==>JMP verwenden
Interaktiv:
1. Öffnen Sie die Excel-Datei von JMP
Datei==>Öffnen
2. Die Kunden-ID wird als numerische/kontinuierliche Spalte geöffnet.Es muss ein Ordinalwert sein.
3. Die Spalte „InvoiceDate“ wird so formatiert, dass auch der Zeitteil angezeigt wird.Sie möchten das Rechnungsdatum als separate Tage und nicht als Zeiten innerhalb von Tagen behandeln. Öffnen Sie daher die Spalteninformationen für diese Spalte und ändern Sie das Format in „T/M/J“.
4. Um die Daten in einer Zeile pro Kunden-ID/Rechnungsdatum zusammenzufassen, führen Sie Folgendes aus:
Tabellen==>Zusammenfassung
Geben Sie sowohl CustomerID als auch InvoiceDate in die Gruppenauswahl ein und klicken Sie auf OK
5. Um nun eine Zusammenfassung auf eine Zeile pro Kunden-ID vorzunehmen, führen Sie die Zusammenfassungsplattform erneut für die neu erstellte Tabelle aus
Tabellen==>Zusammenfassung
Platzieren Sie die Spalte „CustomerID“ in der Gruppenauswahl und klicken Sie auf „OK“.
Die resultierende Tabelle enthält Ihre gewünschten Werte
Das folgende Skript wurde im Wesentlichen durch die interaktive Ausführung der oben genannten Schritte und das anschließende Speichern der Skripts für jeden Schritt in einem Skriptfenster generiert.Ich habe nur einen kleinen Teil des folgenden Codes geschrieben.JMP hat es generiert.
names default to here(1);
// Open the Excel file
dt=Open(
// Change the below to the path to the Excel File
"<PATH to="" folder="">\Online Retail.xlsx");
// The CustomerID should not be treated as a continuous,
// analytical column of data, so
// Change CustomerID to an Ordinal Modeling Type
dt:CustomerID<<MODELING type="">Tabulate
// which will allow for the Calculation of the
// counts of the number of different InvoiceDates
dtSum1 << Tabulate(
Show Control Panel( 0 ),
Include missing for grouping columns( 1 ),
Add Table(
Column Table( Analysis Columns( :InvoiceDate ), Statistics( N ) ),
Row Table( Grouping Columns( :CustomerID ) )
)
);
// Or
// Run the Summary Platform again, but this time run it on
// the current Summarized data table to count the number of
// rows for each CustomerID
dtSum2 = dtSum1 << Summary(
Group( :CustomerID ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 )
);
// Now Clean up the N Rows name to # of Invoiced Days
dtSum2:N Rows << set name("# of Invoiced Days");</MODELING></PATH>