JMP-Analogie zu SASHallo zusammen
Ich bin ein alter SAS-Chef (ziemlich kompetent in der Basisprogrammierung ...). Aber... !
Ich möchte eine ziemlich einfache Aufgabe in JMP erledigen. So scheint es ...
Grundsätzlich möchte ich die CITIES.JMP öffnen und einfach alle Zeilen (und Felder) behalten, in denen ein Wert in CO fehlt, und diese Teilmenge möglicherweise unter einer neuen neuen speichern, z CITIES_MISS.jmp.
Das Basisäquivalent ist "wo CO fehlt".
Ich kann es einfach nicht lösen. Auch wenn meine Abfragen zu funktionieren scheinen, finde ich nach dem Öffnen der Teilmenge immer noch alle Datenzeilen, die manchmal nur markiert sind. Bitte helfen Sie mit dem Beispielcode und erklären Sie ggf. die logischen Unterschiede zwischen JMP- und SAS-Logik.
Danke und freundliche Grüße
Neuling
Re: JMP-Analogie zu SAS 'Die erforderliche JSL wäre etwa so:
NamesDefaultToHere(1);
dt1 = Open("$SAMPLE_DATA/Cities.jmp");
missingCORows = dt1 << getRowsWhere(IsMissing(:CO));
dt2 = dt1 << Subset(Rows(missingCORows));
dt2 << setName((dt << getName)||"_MISS");
Versuchen Sie "Hilfe> Bücher> Skripthandbuch" und "Hilfe> Skriptindex". Anstatt zu viel über Vergleiche nachzudenken, würde ich mit einem Problem und einem funktionierenden Code beginnen, der einer Lösung „nahe“ ist. Erfahrung zeigt, dass Sie hier viel Hilfe bekommen.
Re: JMP-Analogie zu SAS 'Vielen Dank. Jetzt habe ich die Reihen.
Ich habe gestern ungefähr vier (!!) Stunden verbracht und es nicht einmal geschafft, dies zu erreichen
dieses Ergebnis mithilfe von Scripting Guide, JSL-Syntaxreferenz, WWW.
Sei also bitte geduldig mit mir, wenn ich dich frage, wie du das alles auch behalten kannst
andere CTITIES-Felder, z STADT, SO2 usw. Mit freundlichen Grüßen.
Re: JMP-Analogie zu SAS 'Ich bin mir sicher, dass Sie nach einer Skriptversion suchen, und ich überlasse diese einer anderen Person. Persönlich bin ich in der Lage, 95% meiner Anforderungen ohne Skripterstellung zu erfüllen, und für mich ist dies ein wesentlicher Unterschied zwischen JMP und SAS (oder fast jedem anderen Programm). Um zu tun, was Sie wollen - ohne Scripting - gehen Sie einfach unter Zeile - Zeilenauswahl - Wählen Sie Wo und markieren Sie den Spaltennamen CO und lassen Sie ihn leer. Es werden die 5 Zeilen ausgewählt, nach denen Sie suchen. Klicken Sie dann unter Tabellen auf Teilmenge, und Sie erhalten alle Spalten und nur diese 5 Zeilen.
Leider glaube ich nicht, dass es für JMP eine Möglichkeit gibt, das, was ich gerade getan habe, automatisch zu skripten. Wenn Sie eine Analyse durchführen und das Skript speichern, wird das Skript automatisch erstellt. Aber ich glaube nicht, dass es eine Möglichkeit gibt, wie JMP automatisch Tabellenmanipulationen durchführt. Ich wünschte, es gäbe - und vielleicht gibt es etwas, das mir nicht bewusst ist.
Re: JMP-Analogie zu SAS 'Vielen Dank für Ihre unkomplizierte Beurteilung
Ein Teil meiner Arbeit besteht darin, die Stärken und Grenzen von JMP für die Automatisierung von Prozessen durch Skripting als Geschäftsanforderung zu bewerten.
Wenn JMP die meisten einfachen ETL-Prozesse nicht beherrscht, müssen wir ohne JMP weitermachen.
Was allerdings schade wäre, denn das Analytics-Portfolio scheint nett und schick zu sein.
Re: JMP-Analogie zu SAS 'Natürlich kann JMP mit einem Skript tun, was Sie wollen. Ich möchte nur darauf hinweisen, dass das, was Sie gefordert haben, auch ohne das getan werden kann. Alles, was ich ohne Skript mache, hat ein Skript, das im Hintergrund ausgeführt wird. Die 4 Stunden, die Sie damit verbracht haben, JMP zum Laufen zu bringen, waren 4 Stunden, um das richtige Skript herauszufinden. Ich habe 5 Sekunden damit verbracht, die Aufgabe ohne Skript zu erledigen. Ich verstehe - Ihre Aufgabe besteht darin, JMP auszuwerten, und eine Anforderung ist das Scripting. Nun, diese Voraussetzung ist erfüllt. Wenn Sie die Skriptsprache auswerten möchten, sollten Sie warten, bis andere antworten. In diesem Forum gibt es viele Leute, die im Vergleich zu anderen Sprachen mit JMP-Skripts sprechen können.
Re: JMP-Analogie zu SAS 'Vielleicht formuliere ich meine Anfrage an die JMP-Community. Kannst du eine empfehlen?
ein bestimmtes JMP-Forum, in dem ich nach einem möglichen Ansatz für ein JMP-Skript fragen könnte?
Re: JMP-Analogie zu SAS 'Ich weiß nicht genau, was Sie tun wollen, wenn Sie sagen: wo ich nach einem möglichen JMP-Skript-Ansatz fragen könnte '. Um was genau?
Wie bereits erwähnt, ist dies ein guter Ort, um Unterstützung für JMP zu erhalten, einschließlich JSL. Aber, wie dieser Thread vielleicht zeigt, kann es schwierig sein, ein klares Bild zu bekommen - Je nachdem, wie die Frage gestellt wird, können Antworten vielleicht sofort hilfreich sein oder nicht, und sie können mehr Kontext und Vorwissen voraussetzen als der Fragesteller hat.
Und wie bereits erwähnt, können 'Vergleiche' für die Codierung schwierig sein: Sie sind für Softwareanwendungen noch schwieriger.
Wenn Sie sich ernsthaft damit befassen wollen, wie JMP Ihre Anforderungen in Bezug auf andere Software (einschließlich SAS) erfüllen kann, ist mir bekannt, dass das lokale JMP-Team Ihnen gerne helfen würde, dies herauszufinden.
Re: JMP-Analogie zu SAS 'Vielen Dank für Ihr freundliches Feedback. Vielleicht habe ich mich nicht klar genug gemacht.
Da ich für JMP mehr als neu bin, hätte ich eher einen Hinweis darauf
Mit welcher JMP-Gruppe oder Liste kann ich meine Frage zum Filtern einer JMP posten
Datensatz in eine Teilmenge durch die "misisngs" -Bedingung. Ich merke jetzt wie ich
Das "Thema" auf meinem ursprünglichen Beitrag formuliert, das ist mehr als irreführend.
Leider habe ich gemerkt, dass es danach schon raus war und zu spät ...
Betreff: JMP-Analogie zu SAS: Filtern von Daten nach fehlendem Wert in einer SpalteNah dran, aber ....
//open data table
dt1 = Open( "$SAMPLE_DATA/Cities.jmp" );
//select all rows of data table where column CO is missing
dt1 << Select Where( Is Missing( :CO ) );
//create a subset of data table with only selected rows, keeping all columns
dt1 << subset( selected rows( 1 ) );
//note that renaming and saving can be done in one step [DOESNT WORK: SAVED dataset still contains all (N=52) data rows instead of selected (N=5) rows]
dt2 << save( "V:/Process/.../Data/AnewDEMOname.jmp" );
Ich habe sogar eine Variante ausprobiert wie
Close( dt2, save( "V:/Process/.../Data/AnewDEMOname.jmp" ) );
Es funktioniert einfach nicht. Der SAVED-Datensatz enthält weiterhin alle (N = 52) Datenzeilen anstelle der ausgewählten (N = 5) Zeilen.
Ist das ein JMP-Fehler?
Ich verwende JMP ® 14.0.0 (64-Bit) unter Microsoft Windows 10 Enterprise 64-Bit.
Betreff: JMP-Analogie zu SAS: Filtern von Daten nach fehlendem Wert in einer SpalteEntschuldigung, ich habe anscheinend die Zuweisung für dt2 verpasst.
Es sollte sein:
//open data table
dt1 = Open( "$SAMPLE_DATA/Cities.jmp" );
//select all rows of data table where column CO is missing
dt1 << Select Where( Is Missing( :CO ) );
//create a subset of data table with only selected rows, keeping all columns
//note the assignment of the result of the subset into the variable dt2
dt2 = dt1 << subset( selected rows( 1 ) );
//note that renaming and saving can be done in one step
dt2 << save( "V:/Process/.../Data/AnewDEMOname.jmp" );
Ich werde den früheren Beitrag korrigieren, damit niemand verwirrt wird, der dies später liest.
Entschuldigen Sie. Bitte teilen Sie uns weiterhin Ihren Fortschritt mit.
Betreff: JMP-Analogie zu SASFolgend auf @ian_jmp Antwort, er hat recht, hier ist der Ort um Ihre Fragen zu JMP zu stellen.
Alle Mitglieder hier helfen Ihnen gerne dabei, die richtige Richtung einzuschlagen. Stellen Sie weiter Fragen und lassen Sie sich von uns helfen.
Der beste Weg, um JSL zu erlernen, besteht jedoch darin, die interaktive Verwendung von JMP zu erlernen. Versuchen Sie, keine Annahmen darüber zu treffen, wie die Dinge auf der Grundlage der Vorgehensweise in SAS ausgeführt werden. Die beiden Produkte JMP und SAS werden mit unterschiedlichen Verwendungsmustern erstellt, sodass die Funktionsweise unterschiedlich ist.
Die meisten Skriptsprachen basieren auf der Automatisierung von JMP mit denselben Befehlen, die Sie für die interaktive Ausführung verwenden würden. In Ihrer ursprünglichen Frage wollten Sie beispielsweise Folgendes wissen:
Grundsätzlich möchte ich die CITIES.JMP öffnen und einfach alle Zeilen (und Felder) behalten, in denen ein Wert in CO fehlt, und diese Teilmenge möglicherweise unter einer neuen neuen speichern, z CITIES_MISS.jmp.
Die Möglichkeit, dies interaktiv zu tun, besteht darin, CITIES.JMP zu öffnen, alle Zeilen auszuwählen, in denen CO fehlt, und dann mit Tables-> Subset eine neue Datentabelle zu erstellen.
Dementsprechend folgt die JSL dem gleichen Muster:
//open data table
dt1 = Open("$SAMPLE_DATA/Cities.jmp");
//select all rows of data table where column CO is missing
dt1 << Select Where(is Missing(:CO));
//create a subset of data table with only selected rows, keeping all columns
dt2 = dt1 << subset(selected rows(1));
//note that renaming and saving can be done in one step
dt2 << save("A new name.jmp");
Du sagtest:
Wenn JMP die meisten einfachen ETL-Prozesse überhaupt nicht verarbeiten kann, müssten wir ohne JMP weitermachen.
Das wäre allerdings schade, denn das Analytics-Portfolio scheint nett und gut zu sein.
Ich denke, die meisten hier würden sagen, dass JMP einfache (und komplexe!) ETL-Prozesse verarbeiten kann. Wenn Sie also nicht wissen, wie es geht, fragen Sie einfach.
Hier ist eine Liste von die besten Ressourcen zum Erlernen von JMP.
Lassen Sie uns wissen, wie Sie JMP weiter erforschen, und wir helfen Ihnen gerne weiter.
[Anmerkung 20Mai2019: Der obige Code wurde korrigiert, um eine Zuordnung zu dt2 anzuzeigen. Ursprünglich wurde dies versehentlich weggelassen. In späteren Posts wurde dies vermerkt und hier korrigiert.]
Betreff: JMP-Analogie zu SAS: Filtern von Daten nach fehlendem Wert in einer SpalteJetzt hat es funktioniert. Wie ein Zauber. Danke vielmals.