Cómo duplicar una columna (copia exacta excepto encabezado)No estoy seguro de cuál es la forma más rápida de duplicar una columna en JMP 14.
Misma información (datos, metadatos, fórmula) pero un encabezado diferente (copia del nombre de la columna, por ejemplo).
Re: Como duplicar una columna (copia exacta excepto encabezado)Este fragmento de código devolverá el nombre de la columna actualmente seleccionada
colName = (current data table() << get selected columns)[1];
Re: Como duplicar una columna (copia exacta excepto encabezado)solo un FYI para aquellos que usan esto: he estado usando esta función periódicamente, pero he tenido que colgar jmp en tablas de datos más grandes (> 100k filas). No lo he depurado a fondo, pero encontré el clon de un subproceso de columna aquí (básicamente lo mismo, excepto que no hay conversión de char () del script y no hay sustituciones; en su lugar, estoy configurando nombres usando expresiones) fue ~ 5 veces más rápido y espero que no muera en los casos de esquina que me causan problemas.Estoy cambiando mi complemento para usar algo basado en eso, y espero que sea menos probable que se bloquee.
https://community.jmp.com/t5/Discussions/clone-a-column/td-p/15644
Re: Como duplicar una columna (copia exacta excepto encabezado)Gracias. ¿Y si quiero copiar la columna actual que está seleccionada/resaltada?
Re: Como duplicar una columna (copia exacta excepto encabezado)Lo más fácil es usar eval(:col << Get Script).Obtendrá una copia de la columna con un número entero al final para darle un nombre único.Deberá asegurarse de que la tabla en la que desea realizar la operación sea la tabla actual.
Aquí hay una función útil que podría usar en un script que le permite nombrar la nueva columna resultante y especificar la tabla de datos.El único argumento requerido es el primero, colname.Puede especificar una tabla de datos, pero asumirá la Tabla de datos actual () de lo contrario.Si no especifica un nombre, devolverá el nombre de la columna original + " - Copiar".
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));
);
Lo ilustraré usando los datos de muestra de Football (y Big Class para mostrar la solidez de la función):
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: Como duplicar una columna (copia exacta excepto encabezado)Gracias. La secuencia de comandos es definitivamente una opción si no hay una mejor manera.
Re: Como duplicar una columna (copia exacta excepto encabezado)Desde la perspectiva de apuntar y hacer clic, el camino más corto que conozco sigue siendo un proceso de 2 pasos.Copie/pegue los datos con una operación típica de Ctrl+C/Ctrl+V.Copie/pegue los metadatos (propiedades de columna) haciendo clic con el botón derecho en el encabezado de una columna que desea duplicar > Copiar propiedades de columna, haga clic con el botón derecho en la nueva copia de columna > Pegar propiedades de columna.