¿Cómo calculo el intervalo de la última fila anterior que no es nula?Use un ejemplo de esto en la figura:
¡Gracias!

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt[2::8,"height"]="";
dt[10::17,"height"]="";
dt[19::28,"height"]="";
dt[30::39,"height"]="";
New Column("new",Character,"Nominal",Width(5));ScriptingRe: ¿Cómo calculo el intervalo de la última fila de arriba que no es nula?- No creo que desee que la nueva columna llamada "Nuevo" sea una columna de caracteres, ni tampoco que sea "Nominal", por lo que escribí mi fórmula en función de esas suposiciones.
- Parece que está luchando con el concepto de una fórmula JMP. Varias de sus entradas de Discusión han solicitado ayuda para resolver algunos problemas bastante simples. ¿Qué puede hacer la Comunidad para ayudarte a que puedas crear estas fórmulas?
- Aquí está mi solución ... otros pueden tener métodos diferentes o mejores
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt[2 :: 8, "height"] = "";
dt[10 :: 17, "height"] = "";
dt[19 :: 28, "height"] = "";
dt[30 :: 39, "height"] = "";
New Column( "new",
formula(
If( Row() == 1, last = 0 );
If( Is Missing( :height ) == 0,
If( last == 0,
x = .;
last = Row();
,
x = Row() - last
);
last = Row();
,
x = .
);
x;
)
);
Re: ¿Cómo calculo el intervalo de la última fila de arriba que no es nula?¡Gracias Jim!
Siempre he usado Excel y estos procesos de datos simples son fáciles.
No quiero procesar datos a través de Excel y luego usar un módulo profesional que UTILICE JMP. En su lugar, use JMP para manejarlos todos.
Creo que JMP se puede hacer con esta fórmula. Pero sepas escribirlo
Contains(:[Index(1,Row())],,-1)
Re: ¿Cómo calculo el intervalo de la última fila de arriba que no es nula?Los parámetros como "> 0" no funcionan en JMP, pero Excel sí.
Contains(:[Index(1,Row())],">0",-1)
Contains(:[Index(1,Row())],!is Missing(:),-1)
Re: ¿Cómo calculo el intervalo de la última fila de arriba que no es nula?¿Cuáles esperas que sean los resultados con esta fórmula?
Re: ¿Cómo calculo el intervalo de la última fila de arriba que no es nula?Solo estoy usando esta "Clase grande" procesada. JMP "para ilustrar:
Si la columna de altura de una fila no está vacía, encuentre el intervalo del número de filas no vacías en la última fila de los datos de la columna de altura encima de la fila.
Por ejemplo, dt [18, "altura"] no está vacío, la última línea no vacía en la parte superior de la línea 18 es DT [9, "altura"]. Entonces dt [18, "nuevo"] devuelve: 18 - 9 = 9
¡Gracias!Re: ¿Cómo calculo el intervalo de la última fila de arriba que no es nula?¿La fórmula que proporcioné no es suficiente?
Re: ¿Cómo calculo el intervalo de la última fila de arriba que no es nula?Excel es como muchos idiomas, incluido JMP, que tienen sus propios atajos de codificación únicos. Algunos de ellos se utilizan de forma más universal en muchos idiomas, pero la mayoría se mantiene como una sintaxis única dentro de su propio idioma. Todos estos elementos sintácticos en JMP se tratan en la Guía de secuencias de comandos.
Aquí hay otra forma de hacer el cálculo. Funciona bien en una tabla de datos pequeña, pero se vuelve costoso con muchas filas.
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt[2 :: 8, "height"] = "";
dt[10 :: 17, "height"] = "";
dt[19 :: 28, "height"] = "";
dt[30 :: 39, "height"] = "";
New Column( "new",
formula(
If( Is Missing( :height ) == 0,
curRow = Row();
x = curRow - Max( Current Data Table() << get rows where( Row() < curRow & Is Missing( :height ) == 0 ) );
,
x = .
);
x;
)
)
Re: ¿Cómo calculo el intervalo de la última fila de arriba que no es nula?¡Gracias Jim!
Utilizo VBA y, a menudo, escribo bucles para completar mis propios proyectos.
A menudo utilizo más de unos pocos millones de líneas de datos, la velocidad es un tema clave.
Siento que JMP es más rápido.
Re: ¿Cómo calculo el intervalo de la última fila de arriba que no es nula?¡Gracias!
Re: ¿Cómo calculo el intervalo de la última fila de arriba que no es nula?Quiero agregar otra columna de "new2" para pasar al siguiente intervalo de calificación.

¿Cómo se pueden calcular e imprimir ambas columnas ("nuevo", "nuevo2") simultáneamente? Como la matriz VBA, en la operación de memoria um, una vez que se envía a la tabla.
¡Gracias!
Re: ¿Cómo calculo el intervalo de la última fila de arriba que no es nula?Es muy sencillo mover los datos de una columna a una matriz y luego generar nuevas matrices en el formato que desea que tengan las nuevas columnas, y luego, una vez completadas, mover las matrices a la tabla de datos. Todas las manipulaciones de la matriz se realizarán en la memoria.