Verbinden mehrerer Datentabellen mithilfe einer Schleife<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Derzeit erstelle ich im Rahmen meiner Analyse mehrere Dateien basierend auf den Grenzwerten der Kontrollkarte. Diese Dateien werden als „Ohne Titel“ ausgegeben. Ich muss die gesamte Analyse zusammenfügen, habe aber das Problem, dass ich einige Datentabellen von meiner Verknüpfung ausschließen muss. Es gibt zwei Tabellen, die ich aus meiner Schleife ausschließen muss: Ref Data und Limits_Key.
Siehe unten:

Ich habe diesen Code verwendet, um alle Tabellen in einer Liste zu platzieren:
num_tables = ntable();
dataset_list = {};
Für (z = 1, z <= num_tables, z++,
dt = Datentabelle(z);
Column_names = dt << Spaltennamen abrufen;
valid_columns = 1;
if (valid_columns,
one_name = dt << Name abrufen;
Einfügen in(dataset_list, one_name);
);
); // Ende für
//show(dataset_list);
num_tables = nitems(dataset_list);
For( q = num_tables, q >= 1, q--,
If( !Starts With( dataset_list , "Ohne Titel" ),
Entfernen aus( dataset_list, q )
)
);
Show(dataset_list);
Ich hatte gehofft, etwas wie das Folgende zu verwenden, um die Tabellen zu verbinden (mit Ausnahme der beiden oben genannten).
t_count = (N Table());
show (t_count);
t_count = (t_count) -2;
dt_old = Datentabelle(t_count);
show(dt_old);
Show(dt_old << get name());
dt_new = Datentabelle("temp_ref");
For(i = 3, i <= t_count, i++,
//show(Datentabelle );
dt_old = dt_new;
Show(dt_old << get name());
dt_new = dt_old << Join(
Mit(Datentabelle(i)),
Spalten mit demselben Namen zusammenführen,
Durch übereinstimmende Spalten(:_LimitsKey = :_LimitsKey,
:_Screened = :_Screened,
:SUBSET = :SUBSET),
Drop-Vielfache(0, 0),
Name("Nichtübereinstimmungen einschließen")(1, 1),
Ausgabetabelle( „Limits“)
);
Close(dt_old);
);
Könnte mir jemand weiterhelfen oder mir ein paar Hinweise geben?
Betreff: Mehrere Datentabellen mithilfe einer Schleife verbindenSie können nicht benötigte Tabellen bereits in der ersten Schleife herausfiltern.Am Ende erhalten Sie eine Tabelle namens LimitsNNN, wobei NNN die Anzahl der unbenannten Tabellen ist.Versuchen Sie so etwas.
num_tables = N-Tisch () ;
dataset_list = {} ;
Für ( z = 1 , z <= num_tables , z ++,
dt = Datentabelle ( z ) ;
one_name = dt << Holen Sie sich den Namen ;
Wenn ( Beginnt mit ( one_name , "Ohne Titel" ) ,
Einfügen in ( dataset_list , one_name )
) ;
) ; // Ende für
Zeigen ( dataset_list ) ;
dt_old = Datentabelle ( dataset_list [ 1 ]) ;
für ( ich = 2 , ich <= nitems ( dataset_list ) , ich ++,
dt_new = Datentabelle ( dataset_list [ ich ]) ;
Beitrittsname = „Grenzen“ || verkohlen ( ich ) ;
dt_old << verbinden ( mit ( dt_new ) ,
Spalten mit demselben Namen zusammenführen ,
Durch passende Spalten (
: _LimitsKey = : _LimitsKey ,
: _Gescreent = : _Gescreent ,
: TEILMENGE = : TEILMENGE
) ,
Multiples löschen ( 0 , 0 ) ,
Name ( „Nichtübereinstimmungen einbeziehen“ )( 1 , 1 ) ,
Ausgabetabelle ( Beitrittsname )
) ;
schließen ( dt_old , nosave ) ;
dt_old = Datentabelle ( Beitrittsname ) ;
) ;