Comment sélectionner des lignes avec 2 tables de données différentes avec une colonne correspondante&*script ci-dessous ne fonctionne pas pourriez-vous aider à déboguer et m'envoyer un script fonctionnel ? Je veux réaliser la fonction qui "sélectionne toutes les lignes" dans dt qui correspond à la colonne : nom dans dt1.
dt = Open( "$SAMPLE_DATA/BIG CLASS.JMP" );
dt1 = dt << Subset( Columns( Name ), Output Table Name( "1" ) );
dt1 << Delete Rows( 15 :: 40 ); // I want to relize the function of "select all rows that (dt:name==dt1:name) dt << Select where( With(dt1), By Matching Columns(name==name), );
;
ScriptRe : Comment sélectionner des lignes avec 2 tables de données différentes avec une colonne correspondantec'est vraiment sympa ! J'ai utilisé la méthode 1.
J'avais besoin de copier-coller le chemin du fichier de ma table de données pour que cela fonctionne. Je ne pouvais pas comprendre comment changer le répertoire de travail afin que je puisse simplement taper les noms de fichiers sans le chemin complet.
Re : Comment sélectionner des lignes avec 2 tables de données différentes avec une colonne correspondantemerci beaucoupRe : Comment sélectionner des lignes avec 2 tables de données différentes avec une colonne correspondanteVoici 3 façons différentes de le faire ..... et je suis sûr que d'autres peuvent avoir d'autres façons de le faire
names default to here(1);
dt = Open( "$SAMPLE_DATA/BIG CLASS.JMP" );
dt1 = dt << Subset( Columns( Name ), Output Table Name( "1" ) );
dt1 << Delete Rows( 15 :: 40 );
// Method one, read a name in dt1 and select it in dt, repeat
// for all rows in dt1
dt << clear rowstates;
For(i=1,i<= nrows(dt1),i++,
dt << select where(dt:name == dt1:name[i], current selection("extend"));
);
// Method 2, extract names from dt1 into a list, and then
// compare against the list for the
dt << clear rowstates;
nameList = dt1:name << get values;
dt << select where(contains(nameList,:name));
//Method 3, Update dt with dt1 and select matching rows
// this method would be the fastest on large data tables
dt << clear rowstates;
// add a column to use as a selector
dt1 << New Column( "selector", set each value( 1 ) );
dt << Update( With( dt1 ), Match Columns( :name = :name ) );
dt << select where( :selector == 1 );
dt << delete columns( "selector" );
dt1 << delete columns( "selector" );