¿Cómo puedo establecer un valor de celda en "faltante" a través de un script?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Tengo un script que utilizo para eliminar puntos de datos fuera de la familia de grandes conjuntos de datos numéricos.Cuando se encontró un valor que estaba fuera de una distribución definida, ese valor se estableció como faltante mediante el código "columnReference[specificCell] =".
Solía trabajar muy bien, pero ahora parece que al script no le gusta que establezca el valor de la celda en "." ¿Alguna sugerencia sobre cómo puedo establecer un valor de celda en "faltante"?
Re: ¿Cómo puedo establecer un valor de celda como "ausente" a través de un script?Deduzco de este hilo que le gustaría hacer tales operaciones mediante programación. Es difícil dar pautas generales porque hay muchas posibilidades. Si realmente le preocupa la eficiencia, puede perfilar su código para ver dónde están los cuellos de botella:
http://www.jmp.com/support/help/Debug_or_Profile_Scripts.shtml
En el caso específico de reemplazar 0 con faltante, si todas las columnas en su tabla de datos (dt) son numéricas continuas, puede hacer:
m = dt << ObtenerMatrizAs;
m[Loc(m == 0) ] = .;
dt2 = AsTabla(m);
Entonces tendría que corregir los nombres de las columnas y las propiedades en dt2, por supuesto.
Re: ¿Cómo puedo establecer un valor de celda como "ausente" a través de un script?¿Alguien tiene una recomendación sobre qué enfoque para ejecutar varios de estos tipos de operaciones de limpieza de datos tiene el mejor rendimiento?
Parece que hay bastantes formas de lograr estos reemplazos, pero para grandes conjuntos de datos, puede ser importante seleccionar la más rápida.
Utilicé el enfoque de subíndices múltiples en un conjunto de datos de 10 000 columnas por 750 filas, y me tomó varios minutos reemplazar 0 con faltante.
Re: ¿Cómo puedo establecer un valor de celda como "ausente" a través de un script?Solo usa:
"referencia de columna [celda específica] = vacío ()"
Re: ¿Cómo puedo establecer un valor de celda como "ausente" a través de un script?Por cierto, no necesita recorrer explícitamente las filas de destino. Puede asignarles de manera simple y simultánea lo que falta utilizando los múltiples subíndices de esta manera:
limpiezaColumnRef[badDataPoints] = . ;
Re: ¿Cómo puedo establecer un valor de celda como "ausente" a través de un script?Puede explorar la posibilidad de imitar una eliminación manual con el Menú principal("Borrar") dominio. Una advertencia, guarde sus archivos antes de ejecutarlos porque una eliminación "manual" forzada borrará todo lo que esté seleccionado en la ventana frontal.
Ejemplo usando su terminología pero sin bucle:
dt = Abierto ( "$SAMPLE_DATA/Clase grande.jmp" ) ;
badDataPoints = [ 1 , 10 ] ;
limpiezaColumnRef = Columna ( "altura" ) ;
dt << Ir a ( limpiezaColumnRef ) ;
dt << seleccionar filas ( badDataPoints ) ;
dt << Llevar ventana al frente ;
Menú principal ( "Borrar" ) ;
Re: ¿Cómo puedo establecer un valor de celda como "ausente" a través de un script?Revisé dos veces que la columna estuviera bloqueada o que tuviera el tipo de datos incorrecto.
Gracias por la respuesta.Se agregó un informe de capacidad a los datos que estaba analizando.Supongo que dado que esto hacía referencia a la tabla de datos, no me permitiría eliminar celdas individuales a través de un script.Sin embargo, me permitirá eliminar los puntos de datos incorrectos manualmente.Si cierro el informe de capacidad, mi secuencia de comandos vuelve a funcionar.
Parece que debería haber una función de secuencia de comandos que me permita eliminar los datos aunque el informe de capacidad esté abierto, ya que puedo hacerlo manualmente.
Re: ¿Cómo puedo establecer un valor de celda como "ausente" a través de un script?El único comentario que recibo del registro es el siguiente.
For( badPt = 1, badPt <= N Fila( badDataPoints ), badPt++,
limpiezaColumnaRef[puntosdatosmalos[puntomalo]] = /*###*/. /*###*/
);
Re: ¿Cómo puedo establecer un valor de celda como "ausente" a través de un script?Debería ser sencillo asignar un valor faltante a una celda.
¿Quizás la columna se bloqueó, se le dio una propiedad de fórmula o se configuró en un tipo de datos de caracteres?
Re: ¿Cómo puedo establecer un valor de celda como "ausente" a través de un script?Parece que algo más debe haber cambiado en su código. Por ejemplo, esto funciona:
dt = Abierto ( "$SAMPLE_DATA/Clase grande.jmp" ) ;
hVals = Columna ( dt , "altura" ) << obtener valores ;
hVals [ ubicación ( hVals > 60 )] = . ;
Columna ( dt , "altura" ) << establecer valores ( hVals ) ;
¿Qué error ves?