Daten in der Auswahl löschenIch habe eine große Tabelle mit mehreren Zeilen und Spalten. Ich möchte einige Daten aus der Tabelle löschen.
Zum Beispiel Daten von Zeile 2 bis Spalte Nr. löschen. 10 basierend auf einigen Kriterien. Aber, Behalten Sie die Daten in derselben Zeile ab Spalte 11 bei. Der Code, den ich habe, ist wie folgt:
cdt = Current Data Table();
cdt << select columns( 1 :: 21 );
cdt << select where(Is Missing(:Name("Record no.")));Ich möchte die ausgewählten Daten löschen.
Es muss eine einfache Möglichkeit geben, das zu bewerkstelligen, aber ich weiß wirklich nicht, wie das geht. Ich kann mit der rechten Maustaste klicken und „Löschen“ auswählen.
Ich möchte jedoch einen JSL-Skriptcode, damit diese Aufgabe automatisiert werden kann.
Automatisierung und SkripterstellungVerbraucher- und MarktforschungBetreff: Daten in der Auswahl löschenVielen Dank. Ich schätze die große Mühe, die Sie mir gegeben haben, um mir bei der Lösung des Problems zu helfen und zu verstehen, was JMP wirklich ist, wirklich zu schätzen. Die Leute sagen immer wieder, JMP sei nicht Excel, aber es ist sehr schwierig, das im Hinterkopf zu behalten, wenn man von Excel zu JMP wechselt. Außerdem lässt jsl vermuten, dass JMP über Fähigkeiten wie MATLAB oder Python verfügt, was möglicherweise nicht immer zutrifft.
Was die Notwendigkeit betrifft, JMP zu schulen und weiterzubilden, kann ich nur zustimmen.
Wie ich sind auch die meisten von uns hier Leute, die mit der Nutzung von JMP begonnen haben, als sie in der Branche zu arbeiten begannen.
Es ist vielleicht nicht gut zum Lernen, aber manchmal führt die Suche nach Lösungen in Foren zu schnelleren Ergebnissen, als wenn man sie durchliest
Dokumentation (was das Richtige ist). Eure Lösungen im Community-Thread haben mir bisher sehr geholfen und ich bin dafür sehr dankbar.
Betreff: Daten in der Auswahl löschenEs gibt Fälle, in denen es am schnellsten/richtigsten ist, zu einem Werkzeug zurückzukehren, mit dem Sie jahrelang gearbeitet haben, und sich die Vor- und Nachteile anzueignen.Und Excel ist sicherlich das wichtigste Tool, wenn es um JMP-Neulinge geht.
Da Excel auf Excel und JMP auf Spalten basiert, verfügt JMP insbesondere nicht über Funktionen, die sich mit Dingen wie dem Verschieben einiger Zellen in einer bestimmten Spalte nach oben oder unten in der Spalte befassen.Das liegt daran, dass JMP davon ausgeht, dass Spaltenwerte in derselben Zeile eine Beziehung haben.Excel hat eine solche Annahme nicht.Da JMP andererseits spaltenbasiert ist, nutzt es dies in vielen Funktionen, Plattformen usw. aus.In vielen Fällen muss man etwas zusätzliche Arbeit leisten und einige der Dinge erledigen, die JMP ganz einfach erledigt.Das Vlookup von Excel ist eines der Elemente, das viel mehr Aufwand erfordert, um Daten „nachzuschlagen“ als die Update-Plattform von JMP.Umgekehrt erfordert die Aufgabe, zu der Sie die Community befragt haben, nämlich das Verschieben von Zellen in einer Spalte nach oben, mehr Arbeit von JMP, um diese Aufgabe zu erfüllen.Eine Sache, die bei JMP im Vergleich zu Excel zutrifft, ist, dass JMP aufgrund seines analytischen Zwecks umfangreicher/komplexer ist.Es ist also mehr Schulung/Ausbildung erforderlich.Aus diesem Grund werden Sie Mitglieder der Community sehen, die Einzelpersonen dazu auffordern, die JMP-Dokumente zu lesen.Sie sind wirklich die einzige Möglichkeit, wirklich zu verstehen, was mit JMP möglich ist und wie man es angeht.
Unten finden Sie ein Skript, das die nicht fehlenden Zeilen in jeder Spalte nach oben verschiebt.Das ist nur eine der Möglichkeiten, die ich mir vorstellen kann, dies zu tun.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt1 = dt << subset(selected rows(0), selected columns(0));
dt1 << set name( "Example 1" );
// randomly clear some data from the different columns
// to have different cells blank or with missing values
For( i = 1, i <= N Cols( dt1 ), i++,
For( k = 1, k <= 5, k++,
If( Column( dt1, i ) << get datatype == "Character",
Column( dt1, i )[Random Integer( 1, N Rows( dt1 ) )] = "",
Column( dt1, i )[Random Integer( 1, N Rows( dt1 ) )] = .
)
)
);
// For the example, create a copy of the Example 1 data table to work on,
// so the beginning and modified tables can be viewed
wk1 = dt1 << subset(selected rows(0), selected columns(0));
wk1 << set name("Working 1");
// Remove the missing cells for each column and move up the remaining
// rows to fill in
For(i=1,i<=n cols(wk1),i++,
dtTemp=wk1<<SUBSET></SUBSET>Betreff: Daten in der Auswahl löschenDerzeit habe ich keine Ahnung, wie das gemacht werden kann. Meine Lösung für dieses Problem ist jetzt:
Exportieren Sie die JMP-Tabelle in Excel.
cdt << Save("C:\Users\Neal\Desktop\Data entry.xlsx");
Nach dem Export nach Excel entferne ich die leeren Zellen und füge die Daten wieder in die JMP-Tabelle ein.
Betreff: Daten in der Auswahl löschenWas hast du versucht?
Betreff: Daten in der Auswahl löschenVielen Dank für die Lösung. Es klappt. Aber ich habe jetzt ein anderes Problem.
Nachdem ich alle Zellen gelöscht habe, möchte ich die Daten konsolidieren. Das heißt, die Daten werden nach oben verschoben, um sie zu übernehmen
Nach dem Löschen verbleibender Speicherplatz. Gibt es einen JSL-Code, um das zu erreichen?Betreff: Daten in der Auswahl löschenHier ist eine alternative Möglichkeit, dies zu codieren.Es verarbeitet einen numerischen Bereich von Spalten und geht davon aus, dass es sich um Zeichenspalten handelt, sodass deren Werte auf ein leeres „“ gesetzt werden.
names default to here(1);
cdt = open("$SAMPLE_DATA/Big Class.jmp");
rows = cdt << get rows where (:sex=="F");
cdt[rows,4::5]= "";Betreff: Daten in der Auswahl löschenIhre Lösung würde für numerische Spalten funktionieren. Aber was ist mit nicht-numerischen?
Auch anstatt eine Spalte nach der anderen zu durchlaufen. Ist es nicht möglich, einfach einen Bereich zu erstellen? Etwas wie 1::4?
Betreff: Daten in der Auswahl löschenOK, tut mir leid, ich habe deine Beschreibung noch einmal gelesen:
cdt = open("$SAMPLE_DATA/Big Class.jmp");
rows = cdt << get rows where (:sex=="F");
column(cdt,4)[rows] = .;
column(cdt,5)[rows] = .;Betreff: Daten in der Auswahl löschenIch möchte nur die ausgewählten Inhalte löschen. Wenn ich es verwende
Delete Rows
Dadurch wird die gesamte Zeile gelöscht. Wie gesagt, ich möchte nicht, dass die ganze Zeile gelöscht wird.
Betreff: Daten in der Auswahl löschen... oder vielleicht bin ich dumm und Sie meinen, dass Sie den Inhalt der ausgewählten Zellen löschen möchten?
Betreff: Daten in der Auswahl löschenIch denke, was Sie fragen, ist, wie Sie bestimmte Zeilen löschen können, nachdem Sie sie ausgewählt haben.Sie können die Nachrichtenzeilen zum Löschen verwenden:
dt << delete rows;
Wenn Sie den Skriptindex überprüfen, werden Sie feststellen, dass nur ausgewählte Zeilen gelöscht werden!
Betreff: Daten in der Auswahl löschenIhre Lösung besteht darin, die Auswahl zu löschen.
Ich suche nach „clear“ – Inhalt der Auswahl löschen.
Entschuldigung, ich konnte es nicht klar erklären.
Betreff: Daten in der Auswahl löschenSie können die Nachrichten verwenden klare Spaltenauswahl Und klare Auswahl für Spalten bzw. Zeilen.
cdt = open("$SAMPLE_DATA/Big Class.jmp");
cdt << select columns(4::5);
cdt << select where(:sex=="F");
wait(2);
cdt << clear column selection;
cdt << clear select;