Extraiga el número máximo de una columna y aliméntelo a un bucle for en el mismo script jslMi script JSL tiene 3 partes. En la primera parte, estoy creando una columna numérica (Columna A) con 100 filas llenas de números enteros aleatorios entre 50 y 1000.
En la segunda parte, extraigo el número máximo en la columna A y lo almaceno en una variable i.
En la tercera parte, estoy usando i para crear un bucle for que crea una cantidad i de columnas nuevas en la misma tabla. ¿Cómo puedo hacer esto?
Parece que puedo almacenar los datos en i pero el bucle for no se está ejecutando.
Automatización y secuencias de comandosventanasRe: Extraer el número máximo de una columna y enviarlo a un bucle for en el mismo script jslAquí hay un ejemplo realmente simple...
Names Default To Here( 1 );
dt =
// Open Data Table: Blood Pressure.jmp
// → Data Table( "Blood Pressure" )
Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
dt << New Column( "A", formula( Random Integer( 50, 1000 ) ) );
i = Col Max( dt:A );
For( k = 1, k <= i, k++,
dt << New Column( "col" || Char( k ) )
);
Re: Extraer el número máximo de una columna y enviarlo a un bucle for en el mismo script jslComo no tengo acceso a JMP14, solo tengo que adivinar qué podría ser diferente.
Quizás el bucle no se ejecuta en absoluto -> agregar impresión de depuración para máximo
Names Default To Here(1);
dt = New Table("",
Add Rows(100),
New Column("ColumnA", Numeric, Continuous, Formula(Random Integer(50, 1000)))
);
max = Col Max(Column(dt, "ColumnA"));
Show(max);
For(i = 1, i <= max, i++,
Show(i);
);
otro caso de depuración, intente realizar un bucle sin la tabla
Names Default To Here(1);
max = 10;
For(i = 1, i <= max, i++,
Show(i);
);
Si JMP14 tuviera un depurador (y puede hacerlo funcionar, ya que puede que no sea tan fácil), también podría intentarlo.

Re: Extraer el número máximo de una columna y enviarlo a un bucle for en el mismo script jslCuando ejecuto esto, solo veo /*; en el registro.
Re: Extraer el número máximo de una columna y enviarlo a un bucle for en el mismo script jsl¿Recibes un mensaje de error? ¿Se están creando sus columnas pero tienen valores incorrectos? Dijiste que el bucle for no se ejecuta, pero ahora no crea columnas (lo más probable es que sean problemas separados). Si agrega Show(i); dentro de su bucle, ¿imprime esos valores correctamente para iniciar sesión?
Names Default To Here(1);
dt = New Table("",
Add Rows(100),
New Column("ColumnA", Numeric, Continuous, Formula(Random Integer(50, 1000)))
);
max = Col Max(Column(dt, "ColumnA"));
For(i = 1, i <= max, i++,
Show(i);
);Re: Extraer el número máximo de una columna y enviarlo a un bucle for en el mismo script jslEste código tiene el mismo problema que mi código. Cuando ejecuto su código, no crea las columnas que debería haber creado el bucle for. Estoy usando JMP 14, una versión un poco anterior.
Re: Extraer el número máximo de una columna y enviarlo a un bucle for en el mismo script jslNo publicaste tu código tan difícil como para decir qué está mal. Aquí hay un ejemplo de trabajo.
Names Default To Here(1);
dt = New Table("",
Add Rows(100),
New Column("ColumnA", Numeric, Continuous, Formula(Random Integer(50, 1000)))
);
max = Col Max(Column(dt, "ColumnA"));
For(i = 1, i <= max, i++,
dt << New Column(Char(i), Numeric, Continuous, Set Each Value(i));
);Re: Extraer el número máximo de una columna y enviarlo a un bucle for en el mismo script jslAquí está la extracción del valor máximo de la columna A.
X = Eval(Col Max(:Nombre("Columna A")));
Luego, cuando uso eso como, para (i=1, i<=X...
Este bucle for no se ejecuta. Verifiqué que X está informando el número correcto.
Re: Extraer el número máximo de una columna y enviarlo a un bucle for en el mismo script jsl¿Podrías publicar lo que has probado?