[Bug JSL] Concatena tutta la tabella aperta in 1 tabella e chiudi tuttoQualcuno può aiutarmi a dare un'occhiata qui sotto jsl?
Sto cercando di usarlo per concatenare tutti i tavoli aperti in un unico tavolo e chiudere tutti i tavoli aperti, lasciando solo un tavolo finale che è stato concatenato da tutti loro.
Quando eseguo jsl, ha un bug per riprodurre più tabelle "finali" e non concatenarsi in 1 singola tabella.
Non è chiaro da dove provenga il bug.
Grazie
Clear Globals();
// Create your Tables list
Tables = {};
For( i = 1, i <= N Table(), i++,
Insert Into( Tables, Data Table( i ) << get name )
);
// Run the concatinations
For( i = 1, i < N Items( Tables ), i++,
ConcTable = Data Table( Tables[i] ) << Concatenate(
Data Table( Tables[i + 1] ),
Create source column,
Output Table Name( "final" )
);
Close( Data Table( Tables[i] ), No Save );
);
SceneggiaturaRe: [bug JSL] Concatena tutte le tabelle aperte in 1 tabella e chiudi tutteMolte grazie! questo è quello che sto cercandoRe: [bug JSL] Concatena tutte le tabelle aperte in 1 tabella e chiudi tutteQuesto è fantastico, grazie Jim.
Re: [bug JSL] Concatena tutte le tabelle aperte in 1 tabella e chiudi tutteOps, scusa Jim, @txnelson , non ho visto la tua risposta.
Re: [bug JSL] Concatena tutte le tabelle aperte in 1 tabella e chiudi tutte@Stokes ,
Lo script che hai pubblicato sta creando un sacco di nuove tabelle.Nota della community: non so se esiste una sintassi per chiudere un elenco di schede di dati, quindi For Loop viene utilizzato per chiudere le tabelle di origine una alla volta, per nome, non per numero.
Names Default to Here(1);
//Careful, this closes all data tables
close all(Data Tables);
//now create similar looking tables
dt = Open("$Sample_Data/Big Class.jmp");
dt << Subset( By (:age));
//close Big Class, keep all the age subset tables open
close(dt,NoSave);
// Create your Tables list
nt = N Table();
Tables = {};
For( i = 1, i <= nt, i++,
Insert Into( Tables, Eval Expr( Data Table( Expr( Data Table( i ) << get name ) ) ) )
);
final = Concatenate( Tables, Create Source Column, Output Table Name( "Big Class Redux" ) );
//close all in the list
For( i = 1, i <= nt, i++,
Eval( Eval Expr( Close( Expr( Tables[i] ), NoSave ) ) )
);
Re: [bug JSL] Concatena tutte le tabelle aperte in 1 tabella e chiudi tutteFare quello che vuoi fare, se non vuoi la colonna della tabella di origine, è molto semplice
Names Default To Here( 1 );
Clear Globals();
// Create your Tables list
Tables = {};
For( i = 1, i <= N Table(), i++,
Insert Into( Tables, Data Table( i ) << get name );
);
new Table("all data");
// Run the concatinations
For( i = 1, i <= N Items( Tables ), i++,
Data Table( "all data" ) << Concatenate(
Data Table( Tables[i] ),
append to first table(1)
);
Close( Data Table( Tables[i] ), No Save );
);
Diventa più complesso se vuoi una tabella di origine.Utilizzando l'opzione incorporata di "Crea colonna di origine", produrrà una nuova colonna della tabella di origine per ogni concatenazione che esegui.Quindi è necessario apportare alcune modifiche.Di seguito è riportato uno script funzionante che dovrebbe darti ciò che desideri
Names Default To Here( 1 );
Clear Globals();
// Create your Tables list
Tables = {};
TablesN = {};
For( i = 1, i <= N Table(), i++,
Insert Into( Tables, Data Table( i ) << get name );
for(k=1,k<=n rows(data table(i)),k++, insert into(TablesN,data table( i ) << get name));
);
new Table("all data");
// Run the concatinations
For( i = 1, i <= N Items( Tables ), i++,
Data Table( "all data" ) << Concatenate(
Data Table( Tables[i] ),
append to first table(1)
);
Close( Data Table( Tables[i] ), No Save );
);
data table( "all data" ) << add multiple columns("Source Table", 1, before first, character );
:Source Table << set values( TablesN );