Esiste un modo per fare in modo che JMP valuti le formule delle colonne iniziando dalla riga inferiore e poi procedendo verso l'alto (al contrario della riga superiore predefinita prima)?
L'immagine allegata è una formula di esempio che ho creato. Per ogni riga, si popola con il valore nella colonna "dati", a meno che non manchi il valore "dati"; in tal caso, si popola con il valore successivo nella colonna "formula" (cioè se stesso). Idealmente, vorrei che i valori mancanti attualmente mostrati nella colonna denominata "formula" vengano compilati con "7", ma poiché la formula valuta a partire dalla riga superiore, manca il valore successivo nella colonna "formula" fino a quando non ottiene alla riga 7. Se questa formula viene valutata partendo dalla riga inferiore e salendo, Lag (: "formula", - 1) non restituirà mai alcun valore mancante. Pensieri?
NOTA: se continuo a premere il pulsante "Applica" nella GUI della formula della colonna, alla fine la colonna "formula" riempie i "7" per le righe 1-7 uno alla volta, ma in realtà non posso farlo in più applicazioni complesse in cui non so quante righe di dati vuoti ci sono.
Ecco due modi diversi per fare ciò che vuoi

Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 12 ),
New Column( "data",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [., ., ., ., ., ., ., 7, 8, 9, 10, 11] )
)
);
// Method one
dt << New Column( "Row", formula( Row() ) );
dt:Row << delete formula;
dt << sort( by( :Row ), order( descending ), replace table( 1 ) );
dt << New Column( "formula1",
formula( If( Is Missing( :data ), Lag( :data ), :Data ) )
);
dt:formula1 << delete formula;
dt << sort( by( :Row ), order( ascending ), replace table( 1 ) );
dt << delete columns( {Row} );
// Method two
dt << New Column( "formula2",
formula(
If( Row() == 1,
dMat = :data << get as matrix;
fMat = Matrix( Index( 1, N Rows( dMat ) ) );
fMat[0] = .;
fMat = fMat`;
For( i = N Rows( fMat ), i >= 1, i--,
If( Is Missing( dMat[i] ),
fMat[i] = dMat[i + 1],
fMat[i] = dMat[i]
)
);
);
fMat[Row()];
)
);