Come calcolo l'intervallo dell'ultima riga sopra che non è nullo?Usa un esempio di questo nella figura:
Grazie!

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: Come faccio a calcolare l'intervallo dell'ultima riga sopra che non è nullo?È semplice spostare i dati di una colonna in una matrice, quindi generare nuove matrici nel formato in cui si desidera che siano le nuove colonne e, una volta completate, spostare le matrici nella tabella dei dati. Tutte le manipolazioni della matrice verranno eseguite in memoria.Re: Come faccio a calcolare l'intervallo dell'ultima riga sopra che non è nullo?Grazie!
Re: Come faccio a calcolare l'intervallo dell'ultima riga sopra che non è nullo?Voglio aggiungere un'altra colonna di "new2" per portarla al prossimo intervallo di qualificazione.

Come è possibile calcolare e stampare contemporaneamente entrambe le colonne ("new", "new2")? Come l'array VBA, nell'operazione memory um, una volta emessa nella tabella.
Grazie!
Re: Come faccio a calcolare l'intervallo dell'ultima riga sopra che non è nullo?Grazie Jim!
Uso VBA e spesso scrivo loop per completare i miei progetti.
Uso spesso più di qualche milione di righe di dati. La velocità è un problema chiave.
Sento che JMP è più veloce.
Re: Come faccio a calcolare l'intervallo dell'ultima riga sopra che non è nullo?Excel è come molti linguaggi, incluso JMP, che hanno le proprie scorciatoie di codifica univoche.Alcuni di essi diventano più universalmente utilizzati in molte lingue, ma la maggior parte rimane solo una sintassi unica all'interno della propria lingua.Tali elementi sintattici in JMP sono tutti trattati nella Guida allo scripting.
Ecco un altro modo per eseguire il calcolo.Funziona bene su una piccola tabella di dati, ma diventa costoso con molte righe.
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: Come faccio a calcolare l'intervallo dell'ultima riga sopra che non è nullo?La formula che ho fornito non è sufficiente?
Re: Come faccio a calcolare l'intervallo dell'ultima riga sopra che non è nullo?Sto solo usando questo elaborato "Big Class. JMP "dati per illustrare:
Se la colonna dell'altezza di una riga non è vuota, trova l'intervallo del numero di righe non vuote nell'ultima riga dei dati della colonna dell'altezza sopra la riga.
Ad esempio, dt[18," height "] non è vuoto, l'ultima riga non vuota all'inizio della riga 18 è DT [9," height "]. Quindi dt[18,"new"] restituisce: 18 - 9 = 9
Grazie!Re: Come faccio a calcolare l'intervallo dell'ultima riga sopra che non è nullo?cosa ti aspetti che i risultati siano con questa formula?
Re: Come faccio a calcolare l'intervallo dell'ultima riga sopra che non è nullo?Parametri come ">0" non funzionano in JMP, ma Excel sì.
Contains(:[Index(1,Row())],">0",-1)
Contains(:[Index(1,Row())],!is Missing(:),-1)
Re: Come faccio a calcolare l'intervallo dell'ultima riga sopra che non è nullo?Grazie Jim!
Ho sempre usato Excel e questi semplici processi di dati sono facili.
Non voglio elaborare i dati tramite Excel e quindi utilizzare un modulo professionale che UTILIZZA JMP. Utilizzare invece JMP per gestirli tutti.
Penso che JMP possa essere fatto con questa formula. Ma sappi come scriverlo
Contains(:[Index(1,Row())],,-1)
Re: Come faccio a calcolare l'intervallo dell'ultima riga sopra che non è nullo?- Non penso che tu voglia che la nuova colonna chiamata "Nuovo" sia una colonna di caratteri, né vuoi che sia "Nominale", quindi ho scritto la mia formula basata su questi presupposti.
- Sembra che tu stia lottando con il concetto di una formula JMP.Molte delle tue voci di discussione hanno chiesto aiuto per risolvere alcuni problemi abbastanza semplici.Cosa può fare la Comunità per aiutarti a creare queste formule?
- Ecco la mia soluzione ...... altri potrebbero avere metodi diversi o migliori
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;
)
);