Concatena tutte le tabelle di dati utilizzando JSLCiao, voglio concatenare tutte le tabelle di dati aperti. Tuttavia, il numero di tabelle di dati può variare e desidero che lo script sia in grado di adattarsi a un numero diverso di tabelle.
Questo è il codice per quello che voglio fare, tuttavia voglio che sia generalizzato:
Tabella dati( N Tabella() ) << Concatena(
Tabella dati ((Tabella N()-1)),
Tabella dati ((Tabella N()-2)),
Tabella dati ((Tabella N()-3)),
Tabella dati ((Tabella N()-4)),
Tabella dati ((Tabella N()-5)),
Tabella di output ("Tutte le temperature"),
Crea colonna di origine
);
Questo è il codice che ho provato, si verifica un errore di nome non risolto della tabella di output (in questo caso noTemps è 6)
Tabella dati( N Tabella() ) << Concatena(
For( i = 1, i < (noTemps), i++,
Tabella dati ((Tabella N()-i)),
);
Tabella di output ("Tutte le temperature"),
Crea colonna di origine
);
Automazione e scriptingAccesso ai datiCombinazione e pulizia dei datiRi: Concatenare tutte le tabelle di dati utilizzando JSLQuale versione di JMP stai utilizzando?
Ri: Concatenare tutte le tabelle di dati utilizzando JSLSe JMP16+ lo utilizzerei per ciascuno ed eseguirei il ciclo sull'elenco delle tabelle
Names Default To Here(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = dt1 << Subset(All Rows, Selected Columns(0), Output Table("DEMO"));
dts = Get Data Table List();
dt_first = Remove From(dts, 1); // remove first table as we concatenate to that
For Each({dt}, dts,
dt_first << Concatenate(
dt,
"Append to first table",
"Create source column"
);
// Close(dt, no save);
);Ri: Concatenare tutte le tabelle di dati utilizzando JSLGrazie per la tua risposta, tuttavia faccio fatica ad applicarlo alla mia situazione (anche se penso che dovrebbe essere relativamente facile).
Cos'è il dt? Ottengo un errore di nome non risolto.
Inoltre non ho assegnato dt1 poiché tutte le tabelle sono già aperte dalla parte precedente dello script. Come posso assegnarlo senza chiamare direttamente una tabella specifica?
Se assegno dt1 come di seguito, viene tuttavia prodotta una tabella demo, la tabella è piena della parola demo.
dt1 = Open( "$DOCUMENTI/Plot_Conduction_Losses/Module 6/DUT2/100C.jmp" );
Ci scusiamo se questo è spiegato male e prolisso.
Ri: Concatenare tutte le tabelle di dati utilizzando JSLdt1 e dt2 sono presenti solo a scopo dimostrativo. Ottieni i riferimenti a tutte le tabelle aperte utilizzando Ottieni elenco tabelle dati(). Quale versione di JMP stai utilizzando (Per ciascuna richiede JMP16+, ma può essere sostituito con For)? dt è un riferimento a una tabella dati che può essere trovata nell'elenco dei riferimenti datatable in dts.
Ri: Concatenare tutte le tabelle di dati utilizzando JSLHo JMP17.
Adesso capisco la parte dt, scusa la confusione.
dts = Ottieni elenco tabelle dati();
dt_first = Rimuovi da(dts, 1); // rimuove la prima tabella mentre la concateniamo
Per ciascuno ({dt}, dts,
dt_first << Concatena(
dt,
//Aggiungi alla prima tabella,
"Crea colonna di origine",
Tabella di output ("Tutte le temperature"),
);
//Chiudi(dt, nessun salvataggio);
);
Non è proprio quello che voglio. Produce 6 nuove tabelle dati tutte concatenate con dt_first.Vorrei che fosse una nuova tabella dati. Se rimuovo il commento, aggiungi alla prima riga della tabella. produce 6 colonne di origine che non sono in grado di utilizzare per ordinare in ulteriori analisi.
Ri: Concatenare tutte le tabelle di dati utilizzando JSLNon ricordavo che puoi usare un elenco con concatenate
Names Default To Here(1);
Open("$SAMPLE_DATA/Students.jmp");
Open("$SAMPLE_DATA/Students1.jmp");
Open("$SAMPLE_DATA/Students2.jmp");
dts = Get Data Table List();
dt_first = Remove From(dts, 1)[1]; // remove first table as we concatenate to that
dt_result = dt_first << Concatenate(dts, "Create source column");
Inoltre è necessario/dovrebbe ottenere il primo indice da Remove From() perché Remove From() restituisce un elenco.