¿Cómo obtener valores de fila no vacíos correspondientes a las etiquetas elegidas de las columnas?Tengo datos entrantes del formulario adjunto.
Quiero obtener los primeros tres valores de fila de cada columna (encerrados en un círculo rojo) que aparecen junto a etiquetas específicas.
Lo siguiente funciona para corriente pero no para voltaje (para voltaje obtengo valores vacíos y entiendo por qué)
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);

Automatización y secuencias de comandosventanasRe: ¿Cómo obtener valores de filas no vacías correspondientes a las etiquetas elegidas de las columnas?Podrías agregar un cheque adicional usando IsMissing()
... & !IsMissing(Column(dt, resCol)[])
Re: ¿Cómo obtener valores de filas no vacías correspondientes a las etiquetas elegidas de las columnas?@jthi Gracias.
Re: ¿Cómo obtener valores de filas no vacías correspondientes a las etiquetas elegidas de las columnas?Es una condición de búsqueda más para tu << obtener filas donde
dt << get rows where(:TestStage == Stage & :label == "USL" & !Is Missing(Column(dt, resCol)[]))
Re: ¿Cómo obtener valores de filas no vacías correspondientes a las etiquetas elegidas de las columnas?El JSL tal como está escrito solo devuelve el valor de la primera fila coincidente.Mientras
dt << get rows where( :TestStage == Stage & :label == "LSL" )
devuelve una matriz de todas las filas coincidentes encontradas, cuando se agrega el subíndice de [1]
(dt << get rows where( :TestStage == Stage & :label == "LSL" ))[1]
devuelve el número de fila solo de la primera fila encontrada, que en su ejemplo devuelve un valor faltante.
@jthi Jarmo, sugiere agregar una aclaración adicional para eliminar los valores faltantes, lo que cambiaría su Get Rows Where() a
(dt << get rows where( :TestStage == Stage & :label == "LSL" & !IsMissing(Column(dt, resCol) ) )[1]
Esta es una buena solución, si solo busca el primer valor que no falta.Sin embargo, si sus datos pueden contener varias filas de valores LSL no faltantes, es posible que no desee que se encuentre el primer valor no faltante.Es posible que desee hacer algo como encontrar el valor USL máximo o el valor USL medio de todas las filas no faltantes devueltas.Podrías hacer algo como
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 );
Re: ¿Cómo obtener valores de filas no vacías correspondientes a las etiquetas elegidas de las columnas?Estoy intentando hacer lo mismo y en mi caso
dt << Get Rows Where(:A == "AAA")
da una lista con un elemento.
Entonces tengo que usar
:B[(dt << Get Rows Where(:A == "AAA"))[1]]
Re: ¿Cómo obtener valores de filas no vacías correspondientes a las etiquetas elegidas de las columnas?@miguello , ¿hay alguna pregunta?
Re: ¿Cómo obtener valores de filas no vacías correspondientes a las etiquetas elegidas de las columnas?Supongo que no. ¿Solo me gustaría entender qué comportamiento es correcto y por qué @Neo y yo lo tenemos de una manera y tú de otra?
¿De qué depende si proporciona una matriz o una lista de elementos únicos con matriz?
Re: ¿Cómo obtener valores de filas no vacías correspondientes a las etiquetas elegidas de las columnas?Si solo devuelve 1 fila de la llamada Get Rows Where(), entonces no hay una diferencia significativa.