Comment écrire une commande sur Formula-Character<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'aimerai savoir comment écrire une commande utilisable en utilisant la fonctionnalité Formula-Character.
Par exemple, j'ai une colonne de données de caractères contenant des données telles que nivelées de la classe 1.0 à la classe 9.0.
Je voudrais convertir ces informations dans une autre colonne qui n'affiche que 1.0 à 9.0, comment puis-je utiliser la fonction de caractère de formule pour écrire une commande pour cela ?
L'autre demande que j'aime savoir est de savoir comment modifier une colonne de données de caractères en une autre instruction dans une nouvelle colonne.
Par exemple, j'ai une colonne de données de caractères montrant sucré, savoureux, aigre,... et je voudrais le changer pour qu'il soit sucré-->Bin1, savoureux-->Bin2, acide-->Bin3. Comment puis-je utiliser le caractère de formule pour convertir le sweet-->Bin1 dans une nouvelle colonne.
Merci,
Re : Comment écrire une commande sur Formula-CharacterSalut Berny,
Je suis désolé que cela ne fonctionne pas pour vous ! Je pense que j'ai peut-être choisi un nom de colonne ambigu qui, je pense, pourrait être la source de la confusion. Dans le jeu de données joint, j'ai une colonne nommée "OriginalColumn" et le script ci-dessous fait référence à cette colonne dans la fonction Word(). La fonction de mot ne prend aucun argument pour les mots qu'elle recherche, seulement le numéro de mot et la colonne à rechercher. C'était mon erreur d'utiliser un nom de colonne "Classe" alors que c'était ce que vous cherchiez à supprimer !Faites-moi savoir si le script ci-dessous fonctionne pour le tableau ci-joint. Si c'est le cas, vous devriez pouvoir le modifier pour qu'il fonctionne avec n'importe quelle table de votre choix en modifiant " :OriginalColumn " pour qu'il corresponde au nom de la colonne de votre table.
julien
//Créer une nouvelle colonne
Tableau de données actuel () << Nouvelle colonne ( "Numéro de classe uniquement" , Personnage ) ;
// arrête la mise à jour de la table jusqu'à ce que toutes les modifications soient apportées, bon pour les grandes tables
Tableau de données actuel () << Commencer la mise à jour des données ;
//Appliquer les modifications à chaque ligne
Pour chaque ligne (
: ClassNumberOnly = Mot ( 2 , :Colonne d'origine )
) ;
// Fin de "Mise à jour des données"
Tableau de données actuel () << Mettre fin à la mise à jour des données ;
Re : Comment écrire une commande sur Formula-CharacterSalut Julien,
En fait, je voudrais le garder en tant que caractère plutôt que de les convertir en numérique.
Ce que je voudrais seulement, c'est me débarrasser de la "Classe" de la "Classe 9.0" originale et n'avoir que "9.0" affiché.
J'ai utilisé le mot (2, Classe), mais ça n'a pas marché.
Merci,
Re : Comment écrire une commande sur Formula-CharacterSalut bernie426
Il semble que vous souhaitiez que la colonne résultante soit numérique, n'est-ce pas ? Si tel est le cas, la suggestion de Peter ci-dessus est la bonne façon de gérer cela. Lorsque vous extrayez une partie d'une chaîne, celle-ci reste une chaîne, à moins que vous n'indiquiez à JMP que vous souhaitez convertir la chaîne en nombre. Voici un script terminé avec la fonction Num() enroulée autour de la fonction Word(), ainsi qu'un autre changement pour que la nouvelle colonne soit numérique lors de sa création.
J'espère que cela fonctionne pour toi!
julien
//Créer une nouvelle colonne NUMERIC
Tableau de données actuel () << Nouvelle colonne ( "Numéro de classe uniquement" , Numérique ) ;
// arrête la mise à jour de la table jusqu'à ce que toutes les modifications soient apportées, bon pour les grandes tables
Tableau de données actuel () << Commencer la mise à jour des données ;
//Appliquer les modifications à chaque ligne
//La fonction ci-dessous recherchera une colonne nommée "Classe"
//si les données sont dans une colonne avec un nom différent
//change :Class pour être quel que soit le nom de la colonne, mais
//assurez-vous de conserver le : puisque cela permet à JMP de savoir que vous êtes
// faisant référence à une colonne.
//cette fonction encapsule également la fonction Word() dans Num()
// qui convertira la sortie du caractère en un nombre
//permettant à la colonne résultante de rester numérique
Pour chaque ligne (
: ClassNumberOnly = Numéro ( Mot ( 2 , : Classe ) )
) ;
// Fin de "Mise à jour des données"
Tableau de données actuel () << Mettre fin à la mise à jour des données ;
Re : Comment écrire une commande sur Formula-CharacterEssayez d'utiliser la fonction NUM pour convertir le numéro de chaîne en un nombre réel.
un = "Classe 9" ;
b = nombre ( mot ( 2 , un )) ;
Re : Comment écrire une commande sur Formula-CharacterSalut Julien,
J'ai le script ou la formule "Match" qui fonctionne parfaitement, et je l'aime tellement.
Cependant, je ne peux pas faire fonctionner la fonction "Word" sur une formule ou un script.
Le cas que j'ai est une colonne existante qui est Caractère de "Classe 1" à Classe 9", et j'aimerais avoir une nouvelle colonne à côté qui ne montre que le nombre (1 à 9) et elle est toujours au format Caractère/Attribut.
Par conséquent, sur la base du script Word() que vous m'avez écrit à titre d'exemple, avons-nous besoin d'une information d'entrée pour la colonne mère (Class1…Class 9) et utilisons la fonction Word() ?
Merci,
Bernie
Utilisation de Words() pour extraire uniquement les chiffres
//Créer une nouvelle colonne
Table de données actuelle() << Nouvelle colonne ("ClassNumberOnly", Caractère);
// arrête la mise à jour de la table jusqu'à ce que toutes les modifications soient apportées, bon pour les grandes tables
Table de données actuelle() <
//Appliquer les modifications à chaque ligne
Pour chaque ligne(
:ClassNumberOnly = Mot( 2, :Class )
);
// Fin de "Mise à jour des données"
Table de données actuelle() << Fin de la mise à jour des données ;
Re : Comment écrire une commande sur Formula-CharacterSalut Berny,
Je suis content d'avoir demandé! Il existe plusieurs façons d'aborder cela, selon que vous souhaitez écrire une colonne de formules ou écrire les valeurs réelles. Différentes circonstances appellent l'un ou l'autre, j'ai donc inclus des méthodes pour les deux ci-dessous.
Pour écrire les valeurs réelles :
| Utiliser Word() pour extraire uniquement les nombres |
|---|
//Créer une nouvelle colonne Tableau de données actuel () << Nouvelle colonne ( "Numéro de classe uniquement" , Personnage ) ; // arrête la mise à jour de la table jusqu'à ce que toutes les modifications soient apportées, bon pour les grandes tables Tableau de données actuel () << Commencer la mise à jour des données ; //Appliquer les modifications à chaque ligne Pour chaque ligne ( : ClassNumberOnly = Mot ( 2 , : Classe ) ) ; // Fin de "Mise à jour des données" Tableau de données actuel () << Mettre fin à la mise à jour des données ; |
| Utilisation de Match() pour le recodage |
|---|
//Créer une nouvelle colonne Tableau de données actuel () << Nouvelle colonne ( "AttributRecode" , Personnage ) ; // arrête la mise à jour de la table jusqu'à ce que toutes les modifications soient apportées, bon pour les grandes tables Tableau de données actuel () << Commencer la mise à jour des données ; //Appliquer les modifications à chaque ligne Pour chaque ligne ( : AttributeRecodeAttributeRecode = Correspondre ( : Attribut , "Savoureux" , "Bin3" , "Doux" , "Bin2" , "Aigre" , « Bin1 » , : Attribut ) ) ; // Fin de "Mise à jour des données" Tableau de données actuel () << Mettre fin à la mise à jour des données ; |
Pour écrire une colonne de formules :
| Utiliser Word() pour extraire uniquement les nombres |
|---|
//Faire la colonne de formule Tableau de données actuel () << Nouvelle colonne ( "Numéro de classe uniquement" , Personnage , Formule ( Mot ( 2 , : Classe ) ) ) ;
|
| Utilisation de Match() pour le recodage |
|---|
//Faire la colonne de formule Tableau de données actuel () << Nouvelle colonne ( "AttributRecode" , Personnage , Formule ( Correspondre ( : Attribut , "Savoureux" , "Bin3" , "Doux" , "Bin2" , "Aigre" , « Bin1 » , : Attribut ) ) ) ;
|
J'espère que cela t'aides!
julien
Re : Comment écrire une commande sur Formula-CharacterSalut Julien,
Alors appréciez que vous relisiez mon message initial. Oui, ce serait encore mieux s'il y avait une option de script puisque je l'utilise quotidiennement.
Re : Comment écrire une commande sur Formula-CharacterJe t'en prie! Je viens de relire votre message initial et il m'est venu à l'esprit que vous recherchiez peut-être une solution de script plutôt qu'une solution de formule de colonne. Si tel est le cas, faites-le moi savoir et je peux vous aider à le configurer via un script. Vous avez peut-être remarqué que dans Col > Recoder, il existe même une option permettant à JMP d'écrire le recodage sous forme de script. Je commencerais donc par là et nous pourrions adapter le code pour utiliser Word() pour répondre à votre première question.
julien
Re : Comment écrire une commande sur Formula-CharacterMerci beaucoup pour les informations utiles Julinan.
Bernie
Re : Comment écrire une commande sur Formula-CharacterSalut bernie426 ,
Pour extraire un morceau de votre colonne, vous pouvez utiliser la fonction Word(), qui prend deux arguments : le premier est le "mot" à extraire (vous entrerez un nombre ici), et le second est la colonne avec le texte que vous souhaitez extraire. Il existe un troisième argument facultatif dans lequel vous pouvez spécifier les délimiteurs qui séparent les mots, mais dans votre cas, la valeur par défaut d'un "espace" fonctionnera. Donc, pour l'utiliser, créez une nouvelle colonne de formule avec Word(2,:Class) (où :Class est la variable dans laquelle vos données d'origine sont stockées).Par exemple (également dans le jeu de données joint) :

Cela prendra le deuxième "mot" qui est juste ce qui se trouve après le premier espace rencontré, donc juste les chiffres.
Pour votre deuxième question, j'utiliserais la fonction match (ci-dessous). Vous pouvez l'écrire vous-même ou utiliser l'utilitaire de recodage de colonne pour l'écrire pour vous. Pour ce faire, sélectionnez la colonne d'origine, puis allez dans Cols > Recoder. Spécifiez les nouvelles valeurs que vous souhaitez que votre variable ait, puis sélectionnez "Colonne de formule" au lieu de "En place".JMP vous créera une nouvelle colonne à l'aide de la fonction de correspondance.

Vous pouvez utiliser Cols > Recoder de la même manière pour votre première question, mais si vous avez plusieurs niveaux, utiliser Word() sera plus rapide que de spécifier manuellement le recodage.
J'ai joint un exemple de jeu de données avec ces formules.
J'espère que ça aide!
julien