Scorrendo le righe di una colonna per trovare il conteggio complessivoCercando di trovare il numero di conteggi della voce corrente in una colonna. La funzione seguente funziona ma sembra essere lenta. Qualche suggerimento per migliorare il tempo di esecuzione dello script?
JMP14, JMP16
La mia proposta: penso inizialmente di costruire un array associativo aggiungendo le voci da :ColName come "Chiave" e aumentando il valore (Valore++) quando si duplica la voce, ovvero Chiave duplicata o se si tratta di una nuova voce, aggiungendo una chiave separata con valore impostato su 1 sarebbe un modo migliore. Quindi puoi semplicemente scorrere le righe per trovare il numero di "Valore" corrispondente.
Automazione e scriptingRe: scorrere le righe di una colonna per trovare il conteggio complessivoC'è un motivo specifico per cui desideri eseguire il loop sulle righe? Molto probabilmente potresti utilizzare la tabella Tabula o Riepilogo per eseguire attività simili

Riepilogo + tabella Stack

Re: scorrere le righe di una colonna per trovare il conteggio complessivoEcco un paio di modi per fare ciò che credo tu voglia.
Names Default To Here( 1 );
dt = Current Data Table();
Summarize( dt, items = by( :colName ) );
countOfUniqueValues = N Items( items );
// or
countOfUniqueValues = N Items( Associative Array( :colName ) << get keys );
Re: scorrere le righe di una colonna per trovare il conteggio complessivoSto riepilogando (dt_summary) la tabella dati più grande (dt) che mi fornisce il numero di righe per ogni particolare voce nella colonna: ColName.
dt_summary = dt << Summary( Group( :ColName ), Freq( "None" ), Weight( "None" ) );
Ora voglio scorrere le righe della tabella originale (dt) e ottenere il numero di righe dalla tabella di riepilogo per la riga corrente per verificare se è superiore a 10 (occorrenze).
Tabella riassuntiva (raggruppa per altezza):

Quindi diciamo che sono sulla prima riga, l'altezza è 59 e le occorrenze sono 2, voglio popolare tali informazioni nella tabella dati corrente (dt) in una nuova colonna (height_qty).
Re: scorrere le righe di una colonna per trovare il conteggio complessivoLa soluzione più semplice è semplicemente unire la tabella di riepilogo nella tabella originale utilizzando il file
Tabelle => Aggiorna
piattaforma
names default to here(1);
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
dt_summary = dt << Summary( invisible, Group( :height ), Freq( "None" ), Weight( "None" ) );
dt_summary:N Rows << set name("height_qty");
dt << Update(
With( dt_summary ),
Match Columns( :height = :height )
);
close( dt_summary, nosave );Re: scorrere le righe di una colonna per trovare il conteggio complessivoApprezzo davvero il tuo rapido aiuto, Jim. Ha funzionato come previsto e il tempo di esecuzione si è ridotto da quasi un minuto a circa 2 secondi.