Concatena un elenco di tabelle e aggiungi una "colonna di origine"Ho un elenco di tabelle aperte (nomi) che desidero concatenare e aggiungere una nuova "colonna di origine" che può essere recuperata dallo stesso elenco di nomi di tabelle. Ho provato tutte le precedenti “soluzioni: pubblicate su questo forum senza fortuna (fortuna solo parziale)
Posso ottenere le mie tabelle concatenate seguendo una soluzione pubblicata da TXNelson, ma non riesco a far funzionare la "Colonna sorgente".Apprezzerò qualsiasi aiuto per risolvere questo problema.
tables = {"R1", "R2", "R3"};
TablesN ={};
For(k = 1, k <= n Rows ( Data Table(tables[i] )),k++,
Insert Into(TablesN, Data Table (tables [i] ) << get name));<BR />
// the concatenation works like a charm
Data Table = New Table ("RST");
For( i = 1, i <= N Items( tables ), i++,
Data Table( "RST" ) << Concatenate(
Data Table( tables[i] ),
append to first table(1)
);
//Close( Data Table( tables[i] ), No Save );
);
// this part fails<BR />
data table( "RST" ) << add multiple columns("Source Table", 1, before first, character );
:Source Table << set values( TablesN );Modellazione statistica avanzataAccesso ai datiMiscelazione e pulizia dei datiPersonalizzazione di massaQualità e ingegneria di processoCondivisione e comunicazione dei risultatiRi: Concatena un elenco di tabelle e aggiungi una "colonna di origine"@SM - Sì, avevo i "nomi" non gli oggetti. Grazie mille per aver dedicato del tempo ad aiutarmi.
Distinti saluti,
AlfredoRi: Concatena un elenco di tabelle e aggiungi una "colonna di origine"La lista tabelle deve contenere oggetti tabella dati (la prima parte del mio codice illustra un modo per creare un tale elenco) e tutte le tabelle devono essere ancora aperte quando il codice viene eseguito. Altrimenti otterrai la finestra pop-ip.
Dopo aver eseguito il codice, puoi chiudere tutte le tabelle di dati (salvate) nell'elenco in un unico passaggio con tabelle << chiudi finestra;.
Ri: Concatena un elenco di tabelle e aggiungi una "colonna di origine"Ciao MS,
Ho testato il tuo codice:
dt = New Table( "RST" );
dt << concatenate( tables, append to first table( 1 ), create source column( 1 ) );
e crea una finestra pop-up che mi permetterebbe di selezionare le tabelle da concatenare, il che vanifica lo scopo di creare uno script per automatizzare il processo.Non scorre l'elenco "tabelle".Sto usando JMP 15 .
Solo per tua informazione, questo è il post che ho usato per guidarmi. Grazie.
https://community.jmp.com/t5/Discussions/JSL-bug-Concatenate-all-opened-table-into-1-table-and-close-all/mp/275804
Ri: Concatena un elenco di tabelle e aggiungi una "colonna di origine"L'ultima parte dovrebbe funzionare se l'elenco ha dei valori. Dai un'occhiata al primo ciclo for; utilizza K come iteratore ma all'interno del ciclo io, non definito, viene utilizzato come indice della lista.
Una colonna di origine può anche essere creata automaticamente con Concatenate() come nell'esempio seguente .
// Create a list of data tables
names = {"R1", "R2", "R3"};
tables = {};
For( i = 1, i <= N Items( names ), i++,
Insert Into( tables, Data Table( names[i] ) )
);
// Concat all and create a source column in one step
dt = New Table( "RST" );
dt << concatenate( tables, append to first table( 1 ), create source column( 1 ) );