Come ottenere valori di riga non vuoti corrispondenti alle etichette scelte dalle colonne?Ho i dati in arrivo del modulo allegato.
Voglio ottenere i primi tre valori di riga da ciascuna colonna (cerchiati in rosso) che appaiono contro etichette specifiche.
Quanto segue funziona per la corrente ma non per la tensione (per la tensione ottengo valori vuoti e capisco il motivo)
Stage = "7"; resCol = "Current";
theLSL = Column( dt, resCol )[(dt << get rows where( :TestStage == Stage & :label == "LSL" ))[1]]; show (theLSL);
theUSL = Column( dt, resCol )[(dt << get rows where( :TestStage == Stage & :label == "USL" ))[1]]; show (theUSL);

Automazione e scriptingfinestreRi: Come ottenere valori di riga non vuoti corrispondenti alle etichette scelte dalle colonne?Potresti aggiungere ulteriore controllo utilizzando IsMissing()
... & !IsMissing(Column(dt, resCol)[])
Ri: Come ottenere valori di riga non vuoti corrispondenti alle etichette scelte dalle colonne?@jthi Grazie.
Ri: Come ottenere valori di riga non vuoti corrispondenti alle etichette scelte dalle colonne?È un'altra condizione di ricerca per << ottieni righe dove
dt << get rows where(:TestStage == Stage & :label == "USL" & !Is Missing(Column(dt, resCol)[]))
Ri: Come ottenere valori di riga non vuoti corrispondenti alle etichette scelte dalle colonne?Il JSL così come scritto restituisce solo il valore della prima riga corrispondente.Mentre
dt << get rows where( :TestStage == Stage & :label == "LSL" )
restituisce una matrice di tutte le righe corrispondenti trovate, quando viene aggiunto l'indice di [1].
(dt << get rows where( :TestStage == Stage & :label == "LSL" ))[1]
restituisce il numero di riga solo della prima riga trovata, che nel tuo esempio restituisce un valore mancante.
@jthi Jarmo suggerisce di aggiungere un ulteriore chiarimento per eliminare i valori mancanti, che cambierebbe il tuo Get Rows Where() in
(dt << get rows where( :TestStage == Stage & :label == "LSL" & !IsMissing(Column(dt, resCol) ) )[1]
Questa è un'ottima soluzione se stai solo cercando il primo valore non mancante.Tuttavia, se i tuoi dati possono contenere più righe di valori LSL non mancanti, potresti non voler trovare il primo valore non mancante.Potresti voler fare qualcosa come trovare il valore USL massimo o il valore USL medio da tutte le righe non mancanti restituite.Potresti fare qualcosa del genere
theUSL = dt << get rows where( :TestStage == Stage & :label == "LSL" & !Is Missing( Column( dt, resCol ) ) );
USLMat = [];
For Each( {foundRow, index}, theUSL, USLMat = USLMat || Column( dt, resCol )[index] );
theUSL = Mean( USLMat );
Ri: Come ottenere valori di riga non vuoti corrispondenti alle etichette scelte dalle colonne?Sto cercando di fare la stessa cosa e nel mio caso
dt << Get Rows Where(:A == "AAA")
fornisce una lista con un elemento.
Quindi devo usare
:B[(dt << Get Rows Where(:A == "AAA"))[1]]
Ri: Come ottenere valori di riga non vuoti corrispondenti alle etichette scelte dalle colonne?@miguello , c'è una domanda?
Ri: Come ottenere valori di riga non vuoti corrispondenti alle etichette scelte dalle colonne?Non credo. Vorrei solo capire quale comportamento è corretto e perché io e @Neo lo abbiamo in un modo e tu in un altro?
Cosa dipende dal fatto che fornisca una matrice o un elenco di singoli elementi con matrice?
R: Come ottenere valori di riga non vuoti corrispondenti alle etichette scelte dalle colonne?Se si restituisce solo 1 riga dalla chiamata Get Rows Where(), non vi è alcuna differenza significativa.