Cómo hacer referencia a una columna con nombre complejo en una expresiónScripter JSL para principiantes aquí...
Quiero crear una secuencia de comandos que elimine las filas a las que les falten datos dentro de cualquier columna.En este momento, si cambio el nombre de la (s) columna (s), funcionará así:
clean_dt << selectDónde(Falta ( :gracias ) ) << eliminarFilas ;
El problema es que quiero que este script sea dinámico y pueda manejar cualquier nombre para cualquier columna que le dé y hacer referencia a él por número de columna, por ejemplo. Digamos que el nombre de la columna es complejo como este
Paso::Medida::Datos::THK:Raw (Media)
No quiero tener que cambiar el nombre de mis columnas cada vez... He intentado varias iteraciones de cosas que creo que "deberían" funcionar, pero no como
clean_dt << selectDónde(Falta( columna(8) )) << eliminarFilas ;
O
clean_dt << seleccioneDónde(Falta(: Paso::Datos ::THK:Crudo (Media) )) << eliminarFilas ; (el nombre de la columna es demasiado complejo con caracteres especiales)
Cada vez que falla con este mensaje
el argumento debe ser numérico{1} en el acceso o evaluación de 'Is Missing' , Is Missing/*###*/(Column( 8 ))
Re: Como referenciar una columna con nombre complejo en una expresión¡Gracias, esto funcionó! Desde aquí, debería ser fácil pasar la expresión en un bucle usando i como índice de columnaRe: Como referenciar una columna con nombre complejo en una expresiónAl usar el mensaje Seleccionar dónde, los criterios deben basarse en la fila actual, ya que JMP observará cada fila para ver si cumple con los criterios.
Debido a que la función Columna en realidad devuelve una referencia a la columna completa, cuando usa la función Columna en su mensaje Seleccionar dónde, debe incluir un subíndice en la fila actual. Esto se puede hacer subíndice [Row()] o simplemente [] para abreviar. Vea abajo.
dt << Select where( Is Missing( Column( 8 )[] ) );
Cuando desee utilizar un nombre de columna con caracteres especiales, puede utilizar el analizador de nombres con una cadena del nombre de la columna. Si esta cadena debe ser una variable, deberá usar la función Columna en su lugar.
dt << Select Where( Is Missing( :Name( "Step::Data::THK:Raw (Mean)" ) ) );
O
str = "Step::Data::THK:Raw (Mean)";
dt << Select Where( Is Missing( Column( str )[] ) );