Remplacer la valeur de plusieurs lignes d'une colonne ne fonctionne pas correctementSalut la communauté JMP,
J'ai rencontré un problème assez étrange. Voici mon code :
dt_temp = data table("aaaa");
dt_temp << Summary( Group( :Column1,:Column2), Freq( "None" ), Weight( "None" ),output table name( "summary" ) );
data table("summary") << select where (:N rows >= 2 & !contains(:Column1,"AA") & !contains(:Column1,"BB") );
rows = dt_temp << get selected rows;
dt_temp:Column3[rows] = "";
//Column(dt_temp, "Column3")[rows] = "";
Lorsque j'exécute ce code, même les lignes ont une valeur comme [10, 11, 20, 21] mais le résultat final de la colonne 3 est différent. Il remplace les autres lignes (disons les lignes 1, 5, ...) au lieu des lignes dans les lignes sélectionnées.
Pourriez-vous m'aider à résoudre ce problème ?
ScriptRe : Remplacer la valeur de plusieurs lignes d'une colonne ne fonctionne pas correctementMerci Jim et Jarmo! Les deux solutions fonctionnent comme un charme pour moi!
Re : Remplacer la valeur de plusieurs lignes d'une colonne ne fonctionne pas correctementEssayez de fermer le tableau récapitulatif avant de définir les valeurs dans le tableau d'origine.Le tableau récapitulatif est lié à l'original et l'empêche d'être mis à jour.
dt_temp = data table("aaaa");
dt_summ = dt_temp << Summary( Group( :Column1,:Column2), Freq( "None" ), Weight( "None" ),output table name( "summary" ) );
data table("summary") << select where (:N rows >= 2 & !contains(:Column1,"AA") & !contains(:Column1,"BB") );
rows = dt_temp << get selected rows;
close( dt_summ, nosave );
dt_temp:Column3[rows] = "";
//Column(dt_temp, "Column3")[rows] = "";Re : Remplacer la valeur de plusieurs lignes d'une colonne ne fonctionne pas correctementBasé sur ceci Abonnement aux tables de données la façon dont je définis les valeurs de cellule est peut-être devenue disponible dans JMP13.
Je vais essayer d'éviter les boucles mais je n'ai pas accès à une version de JMP plus ancienne que la 15, donc je ne sais pas si cela fonctionnera non plus :
Names Default To Here(1);
dt_temp = Open("$SAMPLE_DATA/Big Class.jmp");
dt_summary = dt_temp << Summary(Group(:age, :sex), Freq("None"), Weight("None"), output table name( "summary" ));
dt_summary << Select Where(:N Rows >= 3 & !Contains(:sex, "M"));<BR />
//get rows which should be set to empty
rows = dt_temp << Get Selected Rows;
//get all values in name column
colValues = dt_temp:name << get values;
show(colValues);
//set selected rows in the colValues list to ""
colValues[rows] = "";
show(colValues);
dt_temp:name << Set Values(colValues);
Re : Remplacer la valeur de plusieurs lignes d'une colonne ne fonctionne pas correctementJ'utilise Jmp Pro 12.2.0, version 64 bits. Fichier journal pour votre référence :

Bien que le fichier journal indiquant le numéro de ligne (-1) ne soit pas invalide, mais lorsque j'affiche des lignes, il n'y a pas de ligne comme celle-ci.
Re : Remplacer la valeur de plusieurs lignes d'une colonne ne fonctionne pas correctementQuelle version de JMP utilisez-vous ? J'utilise 15.2.1 et mon exemple semble fonctionner très bien pour moi:

Re : Remplacer la valeur de plusieurs lignes d'une colonne ne fonctionne pas correctementSalut Jarmo,
Merci pour votre suggestion, mais cela ne semble pas fonctionner pour moi.
Pour clarifier, je voudrais remplacer les valeurs dans le tableau d'origine en fonction du conditionnel du tableau récapitulatif.
J'ai également essayé d'exécuter votre code, et voici le résultat:
Lignes sélectionnées du tableau récapitulatif :

Lignes sélectionnées de la table principale. Il y avait 15 lignes sélectionnées mais cela ne remplaçait que les 1ères lignes de chaque groupe :

Re : Remplacer la valeur de plusieurs lignes d'une colonne ne fonctionne pas correctementEssayez-vous de remplacer des valeurs dans le tableau de données d'origine ou dans le tableau récapitulatif ? Cela semble fonctionner très bien pour moi:
Names Default To Here(1);
dt_temp = Open("$SAMPLE_DATA/Big Class.jmp");
dt_temp << Summary(Group(:age, :sex), Freq("None"), Weight("None"), output table name( "summary" ));
data table("summary") << Select Where(:N Rows >= 3 & !Contains(:sex, "M"));
rows = dt_temp << Get Selected Rows;
show(dt_temp:name[rows]);
dt_temp:name[rows] = "";
show(dt_temp:name[rows]);