Supprimer les colonnes avec la même valeurJe rencontre un problème lorsque j'exécute mon modèle avec certains paramètres. Je souhaite donc effectuer un nettoyage des données avant d'exécuter le modèle. Existe-t-il un moyen rapide de supprimer des colonnes avec les mêmes valeurs ? Veuillez indiquer comment le faire avec JSL ou de toute autre manière qui pourrait convenir ?
ScriptRe : Supprimer les colonnes avec la même valeurLe message de TXNELSON ci-dessous fonctionnait avec JMPv13.2.1 .Re : Supprimer les colonnes avec la même valeurÇa marche !!! Merci.Re : Supprimer les colonnes avec la même valeurJ'ai exécuté ceci dans JMP 13.2.1 et cela fonctionne ..... tout ce que vous avez à faire, c'est de supprimer les lignes du code
dt << select columns(to_delete_lst);
dt << delete columns;
et les remplacer par
dt << delete columns( to_delete_lst);
Re : Supprimer les colonnes avec la même valeurDésolé, je ne peux pas répondre,
le code fonctionne bien sur JMP 15 avec Win10 sur mon ordinateur,
et les deux dernières étapes sont des commandes assez basiques qui auraient déjà dû être implémentées dans JMP 13 (mais je ne peux pas vérifier).
Pouvez-vous effectuer les deux étapes de
- sélectionner les colonnes 6+7
- et supprimer la sélection
séparément l'un après l'autre ? par exemple en marquant la ligne de script dans l'éditeur et en appuyant sur le bouton Lecture.
Où est exactement le problème ?
Re : Supprimer les colonnes avec la même valeurLorsque j'exécute ce code, il identifie correctement les cols en double mais ne les supprime pas réellement.Le journal n'affiche aucune erreur.
"hauteur égale à height_copy"
"poids égal à weight_copy"
to_delete_lst = {7, 6} ;
Inscriptible[]
J'utilise v13.2.1
Re : Supprimer les colonnes avec la même valeurSalut,
Sur la base de ce post ultérieur, je pense que nous n'avons pas compris l'énoncé des "mêmes valeurs" ; nous avons interprété comme colonne 1 = colonne 2 pour chaque ligne, mais je suppose que vous voulez dire toute colonne avec des valeurs identiques dans chaque ligne (c'est-à-dire 0 StdDev). Est-ce exact?
Si c'est le cas, moi ou quelqu'un de plus expérimenté que moi devrions être en mesure de fournir un script relativement court.
Meilleur,
TSRe : Supprimer les colonnes avec la même valeurSalut Nelson,
Merci du conseil.Mais le filtrage des réponses prend beaucoup trop de temps de traitement et ce n'est pas idéal. Courir 45 secondes et ne pas avoir terminé le traitement à mi-chemin.

Re : Supprimer les colonnes avec la même valeurVoici une façon différente de procéder.Il utilise RSquare comme indicateur de données correspondantes.
Names Default To Here( 1 );
dt = Current Data Table();
colNames = dt << get column names( continuous );
obj = dt <<
Response Screening(
Y( Eval( colNames ) ),
X( Eval( colNames ) )
);
dtCalc = obj << get PValues;
dtCalc << select where(Round(:RSquare,4) != 1 | :X == :Y );
try( dtCAlc << delete rows );
dtCompare = dtCalc << subset( selected rows(0), columns("X","Y"));
close(dtCalc,nosave);
for each row(
If(:X > :Y,
hold=:X;
:X = :Y;
:Y = hold;
)
);
dtFinal = dtCompare << Summary(
Group( :X, :Y ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 )
);
close( dtCompare, nosave );Re : Supprimer les colonnes avec la même valeurGeorg, merci pour l'idée de la visionneuse de colonnes.
Je pense que je vais le faire avec la visionneuse de colonnes -> Résumé -> trier la table par stdev = 0. Ensuite, je peux supprimer les colonnes plus tard.Re : Supprimer les colonnes avec la même valeurJe ne suis pas sûr non plus 
Cela signifie que vous devez être plus précis sur ce dont vous avez besoin.
Si vous souhaitez simplement explorer les valeurs d'une grande table, vous pouvez utiliser la visionneuse de colonnes
Colonnes->Afficheur de colonnes
Là, vous pouvez facilement comparer les colonnes d'une grande table.
Re : Supprimer les colonnes avec la même valeurMerci pour JSL. Mais je ne suis pas sûr qu'il fasse ce que je veux.Re : Supprimer les colonnes avec la même valeurCelui-ci supprime les colonnes :
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// make some copies of columns
dt << New Column( "weight_copy", set each value( :weight ) );
dt << New Column( "height_copy", set each value( :height ) );
to_delete_lst = {};
For( i = 1, i < N Col( dt ), i++,
For( j = i + 1, j <= N Col( dt ), j++,
If( (Column( i ) << get data type) == (Column( j ) << get data type),
// all celles are equal ?
If( Mean( (Column( i ) << get values) == (Column( j ) << get values) ) == 1,
Print( (Column( i ) << get name) || " equal to " || (Column( j ) << get name) );
insert into(to_delete_lst, j);
);
);
)
);
// show list of equals
Show(to_delete_lst);
wait(3);
dt << select columns(to_delete_lst);
dt << delete columns;Re : Supprimer les colonnes avec la même valeurJe ne veux pas supprimer de lignes. Je veux supprimer des colonnes qui ont la même valeur.Re : Supprimer les colonnes avec la même valeurJe ne suis pas sûr de vous avoir bien compris,
pour la modélisation, vous pouvez sélectionner les colonnes que vous jugez importantes, il n'est donc pas nécessaire de supprimer la colonne.
Vous voulez supprimer des lignes où une colonne a la même valeur ?
Vous trouverez ci-dessous le code correspondant :
Sinon, veuillez décrire plus en détail ce dont vous avez besoin, un exemple peut être très utile.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
wait(3);
dt << Select duplicate rows( Match( :age ) );
dt << delete rows;