So duplizieren Sie eine Spalte (exakte Kopie außer der Überschrift)Ich bin mir nicht sicher, wie man eine Spalte in JMP 14 am schnellsten duplizieren kann.
Gleiche Informationen (Daten, Metadaten, Formel), aber ein anderer Header (z. B. Kopie des Spaltennamens).
Betreff: So duplizieren Sie eine Spalte (exakte Kopie außer der Überschrift)Dieser Codeausschnitt gibt den Namen der aktuell ausgewählten Spalte zurück
colName = (current data table() << get selected columns)[1];
Betreff: So duplizieren Sie eine Spalte (exakte Kopie außer der Überschrift)Nur zur Information für diejenigen, die dies verwenden: Ich habe diese Funktion regelmäßig verwendet, aber bei größeren Datentabellen (> 100.000 Zeilen) hing sie jmp. Ich habe noch nicht gründlich debuggt, aber ich habe festgestellt, dass das Klonen eines Spaltenthreads hier (im Grunde das Gleiche, außer dass keine char()-Konvertierung des Skripts und keine Ersetzungen vorgenommen werden – ich stelle die Benennung stattdessen mithilfe von Ausdrücken ein) etwa 5x schneller war und ich hoffe, dass es in den Eckfällen, die bei mir zum Hängenbleiben führen, nicht abstürzt.Ich stelle mein Add-In so um, dass es etwas darauf basierendes verwendet, und hoffe, dass es weniger abstürzt.
https://community.jmp.com/t5/Discussions/clone-a-column/td-p/15644
Betreff: So duplizieren Sie eine Spalte (exakte Kopie außer der Überschrift)Danke. Und wenn ich die aktuelle Spalte kopieren möchte, die ausgewählt/hervorgehoben ist?
Betreff: So duplizieren Sie eine Spalte (exakte Kopie außer der Überschrift)Am einfachsten ist es, eval(:col << Get Script) zu verwenden.Sie erhalten eine Kopie der Spalte mit einer Ganzzahl am Ende, um ihr einen eindeutigen Namen zu geben.Sie müssen sicherstellen, dass die Tabelle, für die Sie die Operation ausführen möchten, die aktuelle Tabelle ist.
Hier ist eine praktische Funktion, die Sie in einem Skript verwenden können, mit der Sie die resultierende neue Spalte benennen und die Datentabelle angeben können.Das einzige erforderliche Argument ist das erste, Spaltenname.Sie können eine Datentabelle angeben, andernfalls wird jedoch Current Data Table() angenommen.Wenn Sie keinen Namen angeben, wird der ursprüngliche Spaltenname + „-Kopie“ zurückgegeben.
Names Default to Here(1);
DupCol = function({colname, new = "", dt = Current Data Table() },
col = Column(dt, colname);
if(IsMissing(new), new = colname||" - Copy");
col_script = char(col << Get Script);
col_script = substitute(col_script, "New Column", "dt << New Column");
col_script = substitute(col_script, colname, new);
eval(parse(col_script));
);
Ich werde dies anhand der Football-Beispieldaten (und der Big Class, um die Robustheit der Funktion zu zeigen) veranschaulichen:
football_dat = Open("$SAMPLE_DATA/Football.jmp");
DupCol("Height"); //Produces copy of Height named "Height - Copy"
DupCol("Height", new = "Height Again"); //Produces copy of Height named "Height Again"
Open("$SAMPLE_DATA/Big Class.jmp"); //just to show robustness since this data table also has a column named "height"
//Different ways to specify the data table if not wanting to assume Current Data Table
DupCol("Height", new = "Height Once More", dt = Data Table("Football") );
DupCol("Height", new = "Height Last Time", dt = football_dat );
Betreff: So duplizieren Sie eine Spalte (exakte Kopie außer der Überschrift)Danke. Scripting ist definitiv eine Option, wenn es keinen besseren Weg gibt.
Betreff: So duplizieren Sie eine Spalte (exakte Kopie außer der Überschrift)Aus der Point-and-Click-Perspektive ist der kürzeste Weg, den ich kenne, immer noch ein zweistufiger Prozess.Sie kopieren/fügen die Daten mit einer typischen Strg+C/Strg+V-Operation ein.Sie kopieren/fügen die Metadaten (Spalteneigenschaften) ein, indem Sie mit der rechten Maustaste auf eine Spaltenüberschrift einer Spalte klicken, die Sie duplizieren möchten > Spalteneigenschaften kopieren, mit der rechten Maustaste auf eine neue Kopiespalte klicken > Spalteneigenschaften einfügen.