La propriété de codage n'avait pas deux nombresBonjour,
J'ai la boucle `for` ci-dessous qui parcourt les colonnes et attribue une propriété « coding » à chacune. `all_cols` est la liste des colonnes qui m'intéressent. La fonction fonctionne, presque comme prévu. La propriété « coding » est correctement attribuée, y compris les valeurs minimales et maximales de chaque colonne.
for( y = 1, y <= N Items( all_cols ), y++,
row() = y;
lims = Eval List( { col min( eval( all_cols[y] ) ), col max( eval( all_cols[y] ) ) } );
all_cols[y] << Set Property( "Coding", Expr( lims ) );
);
Cependant, dans le journal détaillé, je constate que l'erreur « La propriété de codage ne comportait pas deux nombres » se produit une fois pour chaque colonne de all_cols. J'ai vérifié.
Voici où le problème se pose. Plus loin dans mon script, l'algorithme des moindres carrés standard est exécuté. Lorsque je tente de supprimer un effet de la liste dans le résumé des effets, une boîte de dialogue d'erreur affichant le même message apparaît (voir ci-dessous). Si je ferme cette boîte de dialogue en cliquant sur la croix (« x ») en haut à droite ou sur le bouton « OK », elle restera affichée indéfiniment, bloquant l'utilisation de JMP jusqu'à ce que je force l'arrêt des tâches.

Une boucle `for each()` générera la même erreur, pour des évaluations d'expressions JMP similaires. Cela reviendrait à sélectionner toutes les colonnes et à modifier par lots leurs propriétés via l'option « Standardiser les attributs ».
Avez-vous une idée de ce qui se passe et comment y mettre fin ?
Ingénierie de la qualité et des procédésRe : La propriété de codage n'avait pas deux nombresLa propriété Codage de la colonne semble correcte dans la boîte de dialogue Informations sur la colonne, mais elle est incorrecte. J'ai examiné le script de la table de données et découvert que le deuxième argument du message << Set Property() est attribué littéralement. Il n'utilise pas la valeur stockée dans lims . Vous devez substituer la valeur vous-même. Voici une façon qui fonctionne.
For( i = 1, i < N Col(), i++,
lims = Eval List( {Col Min( Eval( Column(i) ) ), Col Max( Eval( Column(i) ) )} );
Eval(
Substitute(
Expr( Column( i ) << Set Property( "Coding", ccc ); ),
Expr( ccc ), lims
)
)
);
Cette propriété est automatiquement ajoutée lorsque vous cliquez sur Créer une table dans une plate-forme JMP DOE. Pourquoi avez-vous besoin d'ajouter cette propriété après la création de la table ?
Re : La propriété de codage n'avait pas deux nombresall_cols est une liste de colonnes, mais elle est parcourue par la boucle. La ligne sous laquelle lims est défini appelle lims avec Expr().est-ce que cela aide?
Re : La propriété de codage n'avait pas deux nombresVoici d'autres notes sur ce problème :
- En utilisant << Get Property("Coding") pour chacune des colonnes de la boucle, les paires de valeurs col min et col max sont renvoyées avec succès. Cela vérifie que la propriété a été correctement affectée et que les valeurs ont été renseignées.
- Lorsque vous isolez le code de Set Property() dans un script vide, il fonctionne correctement, aucune notification d'erreur dans les journaux améliorés... Cependant, lisez ci-dessous.
- Dans la boîte de dialogue Ajuster le modèle, après avoir exécuté la fonction Définir la propriété() à partir d'un script séparé, comme mentionné ci-dessus, l'erreur se produit toujours.

Re : La propriété de codage n'avait pas deux nombresFaites-le après avoir exécuté votre script pour ajouter la propriété Codage : cliquez sur le triangle rouge dans le panneau Tableau dans le coin supérieur gauche du tableau de données, puis sélectionnez Copier le script du tableau. Ouvrez ensuite un nouvel éditeur de script et collez le script. Examinez les arguments Set Property. Vous devriez voir une liste avec deux nombres pour le deuxième argument. Si vous ne le faites pas, alors votre script est faux.
Re : La propriété de codage n'avait pas deux nombres
Excellente prise !C'est ce qu'il y a dans le script de table. Je vais jouer avec mon codage pour obtenir les valeurs nécessaires là-dedans.Merci, @Mark_Bailey !
Je vais garder ce fil ouvert jusqu'à ce que je poste la résolution.
Re : La propriété de codage n'avait pas deux nombresC'était une solution simple. Vérifié fonctionnant avec mes ensembles de données !
for( y = 1, y <= N Items( all_cols ), y++,
row() = y;
lims = Eval List( { col min( eval( all_cols[y] ) ), col max( eval( all_cols[y] ) ) } );
Eval( Eval expr ( all_cols[y] << Set Property( "Coding", Expr( lims ) ) ) );
);