Re: [JSL bug] Concatena tutte le tabelle aperte in 1 tabella e chiudi tuttoMolte grazie! questo è quello che sto cercandoRe: [JSL bug] Concatena tutte le tabelle aperte in 1 tabella e chiudi tuttoÈ fantastico, grazie Jim.
Re: [JSL bug] Concatena tutte le tabelle aperte in 1 tabella e chiudi tuttoOps, scusa Jim, @txnelson , non ho visto la tua risposta.
Re: [JSL bug] Concatena tutte le tabelle aperte in 1 tabella e chiudi tutto@Stokes ,
Lo script che hai pubblicato sta creando una serie di nuove tabelle.Nota della community: non so se esiste una sintassi per chiudere un elenco di schede di dati, quindi il ciclo For 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: [JSL bug] Concatena tutte le tabelle aperte in 1 tabella e chiudi tuttoFare 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.L'utilizzo dell'opzione incorporata di "Crea colonna di origine", produrrà una nuova colonna della tabella di origine per ogni concatenazione eseguita.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 );[JSL bug] Concatena tutte le tabelle aperte in 1 tabella e chiudi tutteQualcuno 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 il jsl, ha un bug per riprodurre più tabelle "finali" e non concatenare 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 );
);
Consumatori e ricerche di mercato