Comment dupliquer une colonne (copie exacte sauf en-tête)Je ne sais pas quel est le moyen le plus rapide de dupliquer une colonne dans JMP 14.
Mêmes informations (données, métadonnées, formule) mais un en-tête différent (copie du nom de colonne, par exemple).
Re : Comment dupliquer une colonne (copie exacte sauf en-tête)Cet extrait de code renverra le nom de la colonne actuellement sélectionnée
colName = (current data table() << get selected columns)[1];
Re : Comment dupliquer une colonne (copie exacte sauf en-tête)juste un FYI pour ceux qui l'utilisent - j'utilise cette fonction périodiquement, mais je l'ai fait accrocher jmp sur des tables de données plus grandes (> 100k lignes). Je n'ai pas complètement débogué - mais j'ai trouvé que le clone d'un thread de colonne ici (essentiellement le même, sauf qu'il n'y a pas de conversion char() du script et pas de substitutions - je règle le nommage en utilisant des expressions à la place) était ~ 5 fois plus rapide et j'espère ne pas mourir dans les cas les plus difficiles qui me bloquent.Je change mon addin pour utiliser quelque chose basé sur cela, et j'espère qu'il est moins susceptible de planter.
https://community.jmp.com/t5/Discussions/clone-a-column/td-p/15644
Re : Comment dupliquer une colonne (copie exacte sauf en-tête)Merci. Et si je veux copier la colonne actuelle qui est sélectionnée/surlignée ?
Re : Comment dupliquer une colonne (copie exacte sauf en-tête)Le plus simple est d'utiliser eval(:col << Get Script).Vous obtiendrez une copie de la colonne avec un entier à la fin pour lui donner un nom unique.Vous devez vous assurer que la table sur laquelle vous souhaitez effectuer l'opération est la table actuelle.
Voici une fonction pratique que vous pouvez utiliser dans un script qui vous permet de nommer la nouvelle colonne résultante et de spécifier la table de données.Le seul argument requis est le premier, nomcol.Vous pouvez spécifier une table de données, mais sinon, elle supposera Current Data Table().Si vous ne spécifiez pas de nom, il renverra le nom de la colonne d'origine + " - Copie".
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));
);
Je vais illustrer en utilisant les exemples de données Football (et Big Class pour montrer la robustesse de la fonction):
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 );
Re : Comment dupliquer une colonne (copie exacte sauf en-tête)Merci. Les scripts sont certainement une option s'il n'y a pas de meilleur moyen.
Re : Comment dupliquer une colonne (copie exacte sauf en-tête)Du point de vue du pointer-cliquer, le chemin le plus court que je connaisse est toujours un processus en 2 étapes.Vous copiez/collez les données avec une opération typique Ctrl+C/Ctrl+V.Vous copiez/collez les métadonnées (propriétés de la colonne) en cliquant avec le bouton droit sur un en-tête de colonne d'une colonne que vous souhaitez dupliquer > Copier les propriétés de la colonne, cliquez avec le bouton droit sur nouvelle colonne de copie > Coller les propriétés de la colonne.