Subsets für eine Datentabelle<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo zusammen,
Ich bin ein Neuling in der JMP-Codierung und brauche Ihre Hilfe, um dies herauszufinden.
Im Grunde versuche ich, eine Excel-Datei zu importieren und als datierbare Datei zu speichern, die ich mit diesem Befehl erreiche.
Öffnen Sie die Datenbank ("DSN = Excel-Dateien; DBQ =" xyz ".xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;", "SELECT * FROM '' CPASU nach Warteschlange $ '` "," CPASU nach Warteschlange $) ");
So weit, ist es gut.
und dann von der CPASU nach Warteschlangendatentabelle erstellt - Ich versuche, eine Teilmenge dieser Datentabelle mit dem folgenden Befehl zu erstellen
(Datentabelle ("CPASU nach Warteschlange $") << SELECT WHERE AND (FWEEK> 201201, Prognosegenauigkeit> 0)
<< Teilmenge (
Linked,
Name der Ausgabetabelle ("Teilmenge der Prognosegenauigkeit $")
Wenn ich nun diese Befehle ausführen kann, kann ich die Datentabelle CPASU nach Warteschlange und auch die Teilmenge der Teilmenge der Prognosegenauigkeit erstellen. In der Subset-Tabelle zurückgegebene Zeilen werden jedoch nicht gemäß der in der Select-Klausel angegebenen Bedingung zurückgegeben. Es werden alle Zeilen aus der Hauptdatentabelle (CPASU nach Warteschlange) zurückgegeben.
Kann mir bitte jemand bei der Suche helfen?
Auch wenn es ein Buch gibt, dem ich folgen kann, um JMP JSL zu verstehen ... Ich habe versucht, dem Skript zu folgen, das automatisch von der JMP-GUI erstellt wird, aber es war bisher ein Albtraum.
Vielen Dank im Voraus für die Hilfe.
Re: Subsets für eine DatentabelleIhre IF-Anweisung schloss die Klammern zu früh und Ihnen fehlte ein Komma:
ob ( found_rows > 0
dp << Teilmenge ( Name der Ausgabetabelle ( "Teilmenge der Prognosegenauigkeit $" )) ;
);
Re: Subsets für eine DatentabelleOk das Problem ist wieder aufgetaucht ... Nicht wirklich sicher, was mit dem Code passiert ist
dp = Datentabelle ( "CPASU nach Warteschlange $" ) << WÄHLEN SIE WO ( UND ( FWEEK > 201201 . Keine maskiert ! = 0 )) ;
found_rows = nrows ( dp << Ausgewählte Zeilen abrufen ) ;
ob ( found_rows > 0 )
dp << Teilmenge ( Name der Ausgabetabelle ( "Teilmenge der Prognosegenauigkeit $" )) ;
CPASU by queue ist eine Datentabelle, die aus einer zuvor im Code vorhandenen Excel-Datei erstellt wurde. Bitte helfen
Vielen Dank,
Re: Subsets für eine DatentabelleDenken Sie daran, die Antwort nach guten Ratschlägen zu lösen und die richtige Antwort sowie hilfreiche Antworten zu markieren (= macht die Nutzung des Forums effizienter)!
Re: Subsets für eine DatentabelleJa, ich glaube, das Problem lag in der Platzierung von Klammern ... Es hat jetzt funktioniert ... Danke ..
Re: Subsets für eine DatentabelleEs sieht so aus, als hätten Sie bei der Auswahl der zweiten Teilmenge einige Klammern verlegt. Sie müssen das And () in Select Where () einfügen.
So was:
dp = Datentabelle ( "CPASU nach Warteschlange $" ) << WÄHLEN SIE WO ( Und ( FWEEK > 201201 . Keine Maskierung ! = 0 ) ) ;
Re: Subsets für eine DatentabelleIch habe es versucht, aber es gibt immer noch kein neues Ergebnis. Unten ist der vollständige Code.
// - Öffnen der Datei und Herstellen einer Verbindung in JMP.
Öffnen Sie die Datenbank ("DSN = Excel-Dateien; DBQ = C: \ Benutzer \\ Dokumente \\ JMP-Analyse \ XXX.xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;", "SELECT * FROM" CPASU nach Warteschlange) $ '`", "CPASU nach Warteschlange $");
// Erzeuge die 1. Teilmenge
(Datentabelle ("CPASU nach Warteschlange $") << Auswahl Wo (UND (FWEEK> = 201201, FWEEK! = 201248, FWEEK! = 201247, FWEEK! = 201243, Aktuelle CPASU> 0)) << Teilmenge (verknüpft) ;
Aktuelle Datentabelle (Datentabelle ("Teilmenge der CPASU nach Warteschlange $"))));
// Erzeugt die zweite Teilmenge für die Prognosegenauigkeit
dp = (Datentabelle ("CPASU nach Warteschlange $") << SELECT WHERE AND (FWEEK> 201201, No Masking! = 0));
found_rows = nrows (dp << Ausgewählte Zeilen abrufen);
if (found_rows> 0,
// dann
dp << Teilmenge (Name der Ausgabetabelle ("Teilmenge der Prognosegenauigkeit $")),
// sonst
schreiben ("Es wurden keine Zeilen ausgewählt")
);
Das Problem liegt in der zweiten Teilmenge. Obwohl es die zweite Teilmenge erstellt, gibt es dieselbe Ergebnismenge zurück wie die Abfrage der ersten Teilmenge. Ich bin mir ziemlich sicher, dass es in der Datentabelle CPASU nach Warteschlange mehrere Zeilen gibt, die mit der SQL-Bedingung von SELECT WHERE AND übereinstimmen (FWEEK> 201201, Keine Maskierung! = 0));
Bitte helfen Sie ... Danke
Re: Subsets für eine DatentabelleSie sollten nur dann eine Untermenge erstellen, wenn für Ihre Suche Zeilen gefunden wurden. Wenn keine Zeilen gefunden wurden, entspricht die Teilmenge genau Ihrer ursprünglichen Tabelle. Du brauchst so etwas. Ich habe einige Codeverbesserungen für die Lesbarkeit eingefügt.
dt = Datenbank öffnen ( "DSN = Excel-Dateien; DBQ =" xyz ".xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;" .
"SELECT * FROM" CPASU nach Warteschlange $ "" . "CPASU nach Warteschlange $" ) ;
// Zeilen entsprechend Ihrer Bedingung auswählen
dt << wähle wo ( : FWEEK > 201201 & : Prognosegenauigkeit > 0 ) ;
// Prüfen Sie, ob Zeilen ausgewählt wurden
found_rows = nrows ( dt << Ausgewählte Zeilen abrufen ) ;
ob ( found_rows > 0 .
// dann
dt << Teilmenge ( Name der Ausgabetabelle ( "Teilmenge der Prognosegenauigkeit $" )) .
// sonst
drucken ( "Es wurden keine Zeilen ausgewählt" )
) ;
Es gibt mehrere ausgezeichnete JMP-Skriptbücher. In JMP ist das JMP Script PDF-Handbuch enthalten, aber es gibt auch das Buch Springen Sie in JMP (r) Scripting von Wendy Murphrey und Rosemary Lucas, ISBN 978-1-59994-658-0