Come posso impostare un valore di cella su "mancante" tramite uno script?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho uno script che utilizzo per rimuovere i punti dati della famiglia da grandi set di dati numerici.Quando è stato trovato un valore che era al di fuori di una distribuzione definita, tale valore è stato impostato come mancante utilizzando il codice "columnReference[specificCell] = ."
Prima lavoravo alla grande, ma ora sembra che allo script non piaccia che io imposti il valore della cella su "." Qualche suggerimento su come posso impostare un valore di cella su "mancante"?
Ri: Come posso impostare un valore di cella su "mancante" tramite uno script?Prendo da questo thread che vorresti eseguire tali operazioni a livello di codice. È difficile dare linee guida generali perché ci sono così tante possibilità. Se sei veramente preoccupato per l'efficienza, puoi profilare il tuo codice per vedere dove sono i colli di bottiglia:
http://www.jmp.com/support/help/Debug_or_Profile_Scripts.shtml
Nel caso specifico di sostituzione di 0 con mancante, se tutte le colonne nella tabella dati (dt) sono continue numeriche, puoi fare:
m = dt << RicavaComeMatrice;
m[Loc(m == 0) ] = .;
dt2 = AsTabella(m);
Quindi dovresti correggere i nomi e le proprietà delle colonne in dt2 ovviamente.
Ri: Come posso impostare un valore di cella su "mancante" tramite uno script?Qualcuno ha una raccomandazione su quale approccio per l'esecuzione di una serie di questi tipi di operazioni di pulizia dei dati ha le migliori prestazioni?
Sembra che ci siano diversi modi per eseguire queste sostituzioni, ma per set di dati di grandi dimensioni potrebbe essere importante selezionare il più veloce.
Ho utilizzato l'approccio con più pedici su un set di dati di 10.000 colonne per 750 righe e ci sono voluti diversi minuti per sostituire 0 con mancante.
Ri: Come posso impostare un valore di cella su "mancante" tramite uno script?Basta usare:
"riferimentocolonna[Cellaspecifica] = vuoto()"
Ri: Come posso impostare un valore di cella su "mancante" tramite uno script?A proposito, non è necessario scorrere esplicitamente le righe di destinazione. Puoi semplicemente e contemporaneamente assegnare loro la mancanza usando i pedici multipli in questo modo:
puliziaColumnRef[badDataPoints] = . ;
Ri: Come posso impostare un valore di cella su "mancante" tramite uno script?Puoi esplorare l'imitazione di un'eliminazione manuale con il file Menu Principale("Elimina") comando. Un avvertimento, salva i tuoi file prima di eseguire perché una cancellazione "manuale" forzata cancellerà tutto ciò che è selezionato nella finestra frontale.
Esempio usando la tua terminologia ma senza un loop:
dt = Aprire ( "$SAMPLE_DATA/Classe grande.jmp" ) ;
badDataPoints = [ 1 , 10 ] ;
puliziaColonnaRif = Colonna ( "altezza" ) ;
dt << Vai a ( puliziaColonnaRif ) ;
dt << selezionare le righe ( badDataPoints ) ;
dt << Porta la finestra in primo piano ;
Menu principale ( "Eliminare" ) ;
Ri: Come posso impostare un valore di cella su "mancante" tramite uno script?Ho ricontrollato la colonna bloccata o del tipo di dati errato.
Grazie per il feedback.Un rapporto sulla capacità è stato aggiunto ai dati che stavo analizzando.Immagino che, poiché questo faceva riferimento alla tabella dei dati, non mi avrebbe permesso di eliminare singole celle tramite uno script.Tuttavia, mi consentirà di eliminare manualmente i punti dati errati.Se chiudo il rapporto sulla capacità, il mio script funziona di nuovo.
Sembra che dovrebbe esserci una funzione di script che mi consentirà di eliminare i dati anche se il rapporto sulle capacità è aperto poiché posso farlo manualmente.
Ri: Come posso impostare un valore di cella su "mancante" tramite uno script?L'unico feedback che ricevo dal registro è il seguente.
For( badPt = 1, badPt <= N Row( badDataPoints ), badPt++,
cleaningColumnRef[badDataPoints[badPt]] = /*###*/. /*####*/
);
Ri: Come posso impostare un valore di cella su "mancante" tramite uno script?Dovrebbe essere semplice assegnare un valore mancante a una cella.
Forse la colonna è stata bloccata, assegnata una proprietà formula o impostata sul tipo di dati carattere?
Ri: Come posso impostare un valore di cella su "mancante" tramite uno script?Sembra che qualcos'altro debba essere cambiato nel tuo codice. Ad esempio, questo funziona:
dt = Aprire ( "$SAMPLE_DATA/Classe grande.jmp" ) ;
hVals = Colonna ( dt , "altezza" ) << getValues ;
hVals [ Loc ( hVals > 60 )] = . ;
Colonna ( dt , "altezza" ) << setValues ( hVals ) ;
Che errore vedi?