Création de colonnesD'accord, cela ressemble probablement à une question vraiment facile, mais j'ai du mal avec ça.
J'ai donc ces données au format : (nombre)|(nom)|(nombre)|(nom)|(nombre).... etc. Eh bien, j'ai une boucle qui regarde la chaîne, analyse les informations par le délimiteur ('|') puis prend toutes les autres entrées de cette nouvelle liste (tous les "noms") et ne place que ceux de la nouvelle liste. Cette nouvelle liste est ensuite utilisée pour créer tout un tas de colonnes. Ce que j'ai découvert, c'est que les valeurs numériques que j'utilise ensuite à partir de cette chaîne et que je place dans chaque colonne sont techniquement un caractère, donc quand j'essaie d'utiliser une formule sur la colonne, elle efface tout. Ce que je dois faire est de créer une nouvelle colonne et d'utiliser la formule sur cette colonne. Ma question est la suivante : j'ai déjà une liste de tous les noms de colonnes que je veux, existe-t-il un moyen de créer de nouvelles colonnes avec les mêmes noms et de simplement remplacer les colonnes initiales que je crée par les colonnes qui peuvent gérer le format ?
Cette question peut être vraiment bizarre, voici une partie de mon script qui gère l'analyse/la création de colonnes :
Liste = {} ;
// Itérer sur les premières lignes de : Test_Result pour obtenir les noms des broches
one_test_result_list = mots(column(dt2,"Test_Result")[1], "|");
For(j = 1, j <= nitems(one_test_result_list)/2, j++,
Attribuer(Liste, one_test_result_list[j*2]);
);
// Crée de nouvelles colonnes de la liste des broches
Pour(g = 1, g <= nitems(Liste), g++,
dt2 << Nouvelle colonne(Liste, Numérique, Continu, Format("Best",12));
);
// Itérer à travers les lignes de : Test_Result (où la chaîne est stockée)
Pour (i = 1, i <= nrows(dt2), i++,
one_test_result_list = mots(column(dt2,"Test_Result") , "|");
For(k = 1, k < nitems(one_test_result_list)/2, k++,
// Stocke tous les résultats nouvellement analysés dans de nouvelles valeurs
Colonne(dt2, Liste) = num(one_test_result_list[(k*2)+1]);
);
);
Cela fonctionne parfaitement, je viens de découvrir tout le truc de faire de nouvelles colonnes... Je veux qu'ils aient les noms de colonne que je leur ai déjà donnés, je veux juste pouvoir leur mettre le format sans que chaque valeur ne se transforme en point. (J'ai testé cela sur une nouvelle colonne et les valeurs changent correctement....)
Merci beaucoup!
Re : Créer des colonnesDésolé, je formulais ça bizarrement. Dans ma chaîne, j'ignore le premier nombre (parce que c'est inutile) et ensuite c'est un nom suivi de la valeur de ce nom. Je crée une nouvelle liste qui recueille simplement tous les noms, puis j'utilise cette liste pour remplir tous les nouveaux noms de colonne. Je définis les colonnes en tant que valeurs numériques, et je remplis même les colonnes avec leur valeur numérique correspondante en tant que nombre. Comme on le voit dans ce code que j'ai joint (les lignes en gras en particulier):
// Crée de nouvelles colonnes de la liste des broches
Pour(g = 1, g <= nitems(Liste), g++,
dt2 << Nouvelle colonne(Liste, Numérique, Continu, Format("Best",12));
);
Pour (i = 1, i <= nrows(dt2), i++,
one_test_result_list = mots(column(dt2,"Test_Result") , "|");
For(k = 1, k < nitems(one_test_result_list)/2, k++,
// Stocke tous les résultats nouvellement analysés dans de nouvelles valeurs
Colonne(dt2, Liste) = num(one_test_result_list[(k*2)+1]);
);
);
Même si je désigne la valeur comme un nombre et la colonne pour contenir une valeur numérique, chaque fois que j'effectue une sorte d'opération sur cette colonne (c'est-à-dire en faisant de la colonne toutes les valeurs absolues), cela change les valeurs qui sont dans cette colonne se transforment en points . Mais si je crée une nouvelle colonne et que je prends les valeurs dans, disons, la première colonne que j'ai créée, et que je définis une formule pour cette colonne, elle se comporte correctement et affiche l'opération. Il semble que je doive créer deux fois plus de colonnes que nécessaire pour stocker initialement la valeur, puis une autre colonne sur laquelle utiliser une formule. Je ne peux pas simplement utiliser une formule sur la première colonne que je crée. Le fait est que je veux conserver les noms de colonne que j'ai initialement attribués. Je ne sais pas pourquoi JMP ne me laisse pas effectuer une opération sur les nouvelles colonnes.
Re : Créer des colonnes<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Je ne suis pas sûr de bien comprendre votre problème, mais " les valeurs numériques que j'utilise ensuite à partir de cette chaîne et que je place dans chaque colonne sont techniquement un caractère, donc quand j'essaie d'utiliser une formule sur la colonne, elle met tout en point " suggère quelques choses . . .
Le type de données d'une colonne JMP peut être défini comme 'Numérique' ou 'Caractère' pour contenir des données du type requis, et (via la boîte de dialogue 'Informations sur la colonne...' ou en envoyant le message JSL 'myCol << DataType( "Numeric") ou myCol << DataType("Character")'), vous devez définir ce que vous voulez. Lorsque vous remplissez la colonne avec des valeurs, vous pouvez convertir des valeurs numériques en valeurs de caractères (de caractères en valeurs numériques) en utilisant 'Char()' (en utilisant 'Num()'). Si vous utilisez 'Num()' sur une valeur de texte que JMP ne peut pas interpréter comme un nombre, il attribuera une valeur manquante (un '.').