Come velocizzare le operazioni sulle tabelle dati (ad esempio Stack, Split, ...)?Spesso ho bisogno di impilare tabelle molto grandi con milioni di righe, eseguire alcune operazioni e poi dividere la tabella.
Quali sono le opzioni per velocizzare tutto questo, oltre a lavorare con tabelle di dati "invisibili" nel codice JSL?
Conosco il comando Begin/End Data Update , ma non sono sicuro che sia pertinente in questo caso o che apporti qualche miglioramento rispetto alle tabelle invisibili.
Automazione e scriptingRe: Come velocizzare le operazioni sulle tabelle dati (ad esempio Stack, Split, ...)?Invisibile (o Privato) sono buoni punti di partenza e poi dipende molto dai tuoi tavoli, a volte potresti anche riuscire a evitare split/stack.
Re: Come velocizzare le operazioni sulle tabelle dati (ad esempio Stack, Split, ...)?Il mio obiettivo è unire colonne che rappresentano la stessa colonna, ovvero unire colonne che rappresentano la stessa colonna. Ho allegato una tabella di esempio in cui ciascuna delle colonne Età, Peso e Altezza è suddivisa in 2 colonne. L'obiettivo è unire ogni coppia di colonne.
Inizialmente avrei impilato le colonne, tagliato la parte rilevante (Età/Peso/Altezza) e poi suddiviso di nuovo, tuttavia questo diventa un problema con tabelle di dati molto grandi.
Re: Come velocizzare le operazioni sulle tabelle dati (ad esempio Stack, Split, ...)?
Hai provato Generatore di query?
Mi dispiace, ho frainteso la domanda. Non credo che Query Builder sia utile in questo caso.
Re: Come velocizzare le operazioni sulle tabelle dati (ad esempio Stack, Split, ...)?Names Default To Here(1);
dt = Open("$DOWNLOADS/example_input.jmp");
valid_cols = 4;
m = dt[0,0];
r = Transform Each({vals}, m,
nonmissing = Where(!IsMissing(vals));
vals[nonmissing];
);
dt[0, 1::valid_cols] = r;
dt << Delete Columns(valid_cols::N Cols(dt));
Re: Come velocizzare le operazioni sulle tabelle dati (ad esempio Stack, Split, ...)?E se i dati sono davvero così
- Seleziona le tue colonne "duplicate"
- Crea un sottoinsieme con la colonna + Id (potrebbe essere necessario crearne uno se non ne hai già uno)
- Elimina le righe con valori mancanti
- Rinomina le colonne in modo che siano uguali in entrambe le tabelle (+elimina le colonne extra)
- Utilizzare Aggiorna sulla tabella originale con la colonna ID
- Chiudi il sottoinsieme