Después de crear una nueva columna, ¿cómo la mueve para que se convierta en la primera columna usando un script?Hola a todos,
Fondo:
Entonces, estoy tratando de automatizar un proceso que uso para recuperar datos de muestra de una base de datos SQL. Lo que hago es usar el generador de consultas de la base de datos y extraer datos con un script posterior a la consulta, que es donde irá el código ficticio a continuación.
Problema:
Actualmente tengo el script para crear una nueva columna y darle las fórmulas que quiero, pero lo que sería realmente útil es tener algunas líneas de código para luego barajar algunas de estas nuevas columnas.
Mi código ficticio es el siguiente:
"
New Column( "ColumnToMove",
Numeric,
"Nominal",
Format( "Best", 12 )
Formula(1));
Move Selected Columns({“ColumnToMove”}, To First);
"
(Por favor, disculpe cualquier malentendido sobre cómo funciona este lenguaje de secuencias de comandos, actualmente soy muy nuevo en esto)
muchas gracias por cualquier ayuda brindada
Re: Después de crear una nueva columna, ¿cómo la mueve para que se convierta en la primera columna usando un script?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />No hay nada de malo en ordenar las columnas, y es genial mantener las cosas organizadas cuando codificas.Sin embargo, PUEDE ralentizar su código.Lo obvio es que está agregando un paso adicional que en realidad no hace nada.Reordenar una tabla invisible será más rápido, pero, de nuevo, las tablas son invisibles, por lo que reordenar no sirve para nada.
Además, un programador novato también podría acostumbrarse a reordenar las columnas para ejecutar tal o cual análisis en las primeras 5 columnas, o en las últimas 5 columnas, lo cual es un mal hábito y produce un código menos flexible y más lento.
Por último, elegir entre agregar columnas con SQL o JSL es una opinión personal.Obviamente, ambos pueden agregar una columna adicional donde Columna 3 = Columna 1 + Columna 2. Con SQL, esto transfiere la potencia de procesamiento de la computadora host a la CPU del servidor, lo que podría ser más lento o más rápido, pero será más consistente en todas las plataformas.Con SQL viene el beneficio adicional de poder colocar esa columna donde quieras sin agregar uno o dos pasos adicionales.Dicho todo esto, a menudo prefiero usar JSL para agregar columnas.
Re: Después de crear una nueva columna, ¿cómo la mueve para que se convierta en la primera columna usando un script?Gracias por toda su ayuda a todos, realmente lo aprecio. Tengo mi respuesta y más
(msharp: la razón por la que no estoy usando SQL para hacer más trabajo es porque estoy usando el generador de consultas para obtener mis datos de SQL y no creo que pueda hacer más ajustes al SQL que está usando). Ahora podía escribir toda mi consulta en el lenguaje de secuencias de comandos y hacer todo el trabajo dentro de SQL en lugar de JMP. Sin embargo, encuentro bastante útil poder seleccionar diferentes variables utilizando el generador de consultas cada vez antes de extraerlas (en lugar de codificarlas y tener que encontrar las entradas en el script cada vez). Igualmente, puede que me esté perdiendo algo.
También estoy de acuerdo con la capa de presentación, pero actualmente la encuentro bastante útil en este momento mientras me familiarizo con las cosas para organizar sobre la marcha. También tengo bastantes columnas (mi próximo paso será agruparlas usando el lenguaje de secuencias de comandos), lo que significa que cuando se trata de la exploración de datos (que es lo que estoy haciendo actualmente), es útil tener las columnas más relevantes al alcance de la mano. Además, cuando uso el generador de gráficos, etc., hace que la exploración de datos sea un poco más fácil. Gracias, de nuevo, por toda su ayuda)
(Jeff Perkinson - No, no sabía nada de eso. Muchas gracias por traer eso a mi atención. Será muy utilizado a partir de ahora)
Re: Después de crear una nueva columna, ¿cómo la mueve para que se convierta en la primera columna usando un script?Impresionante consejo.
Generalmente nunca muevo columnas.O Ordenar columnas es más una cuestión de presentación ya que los datos no deben depender del orden de las columnas.Es mejor dejar la presentación en una capa de presentación como un gráfico o tabla y no una tabla de datos.
Re: Después de crear una nueva columna, ¿cómo la mueve para que se convierta en la primera columna usando un script?
Por cierto: si aún no lo ha encontrado, el Índice de secuencias de comandos bajo la Ayuda el menú es tu amigo.

Re: Después de crear una nueva columna, ¿cómo la mueve para que se convierta en la primera columna usando un script?Si proporciona los nombres de las columnas a mover columnas seleccionadas no es necesario seleccionarlos para moverlos.
dt = New Table( "Untitled", Add Rows( 1 ),
New Column( "First", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [1] ) ),
New Column( "Second", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [2] ) )
);
dt << New Column( "ColumnToMove", Numeric, "Nominal", Format( "Best", 12 ), Formula(1));
wait(2); // Put a delay to see the effect
dt << Move Selected Columns({"ColumnToMove"}, To First);
Re: Después de crear una nueva columna, ¿cómo la mueve para que se convierta en la primera columna usando un script?Es posible mover columnas, pero siempre se siente como si tomara dos o tres pasos adicionales de lo que debería.Principalmente, solo puede mover columnas seleccionadas y no es fácil seleccionar columnas.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Go To( :Age );
Wait( 2 );
dt << Move Selected Columns( To last );
dt << Clear Column Selection;
Wait( 2 );
dt << Reverse Order;
¿Hay alguna razón por la que no pueda simplemente modificar su SQL para obtener las columnas en el orden que desea?SQL es un lenguaje lo suficientemente sólido como para realizar la mayoría de las secuencias de comandos de columnas directamente en la extracción de datos.
Re: Después de crear una nueva columna, ¿cómo la mueve para que se convierta en la primera columna usando un script?Creo que puede usar agregar varias columnas para establecer la posición cuando la crea o usar el mensaje de mover columnas seleccionadas que menciona:
dt=currentdatatable();
dt<<ADD multiple="" columns=""></ADD>
Puede especificar la ubicación con After(col) para ambos métodos