Re : [Bogue JSL] Concaténer toutes les tables ouvertes en 1 table et fermer toutesMerci beaucoup! c'est ce que je chercheRe : [Bogue JSL] Concaténer toutes les tables ouvertes en 1 table et fermer toutesC'est super, merci Jim.
Re : [Bogue JSL] Concaténer toutes les tables ouvertes en 1 table et fermer toutesOups, désolé Jim, @txnelson , je n'avais pas vu ta réponse.
Re : [Bogue JSL] Concaténer toutes les tables ouvertes en 1 table et fermer toutes@Stokes ,
Le script que vous avez publié crée un tas de nouvelles tables.Note de la communauté : Je ne sais pas s'il existe une syntaxe pour fermer une liste de tabes de données, par conséquent, la boucle For est utilisée pour fermer les tables source une à la fois, par nom, pas par numéro.
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 : [Bogue JSL] Concaténer toutes les tables ouvertes en 1 table et fermer toutesFaire ce que vous voulez faire, si vous ne vouliez pas la colonne de la table source, est très simple
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 );
);
Cela devient plus complexe si vous voulez une table source.L'utilisation de l'option intégrée "Créer une colonne source" produira une nouvelle colonne de table source pour chaque concaténation que vous effectuez.Il faut donc faire quelques ajustements.Vous trouverez ci-dessous un script de travail qui devrait vous donner ce que vous voulez
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 );[Bogue JSL] Concaténer toutes les tables ouvertes en 1 table et fermer toutesQuelqu'un peut-il m'aider à jeter un oeil ci-dessous jsl?
J'essaie de l'utiliser pour concaténer toutes les tables ouvertes en une seule table, et fermer toutes les tables ouvertes, ne laisser qu'une table finale qui a été concaténée à partir de toutes.
Lorsque j'exécute le jsl, il y a un bogue pour reproduire plusieurs tables "finales" et ne pas concaténer en 1 seule table.
Pas clair d'où vient le bug.
Merci
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 );
);
Études de consommation et de marché