Je souhaite utiliser une valeur dans une colonne numérique pour créer une référence au même numéro de colonneJ'ai généré une colonne contenant des entiers que je souhaite maintenant utiliser pour référencer des valeurs dans des colonnes portant le même numéro. La colonne 9 contient le numéro indiquant la colonne à laquelle une formule de la colonne 10 doit faire référence. Voici quelques problèmes qui ne fonctionnent pas.



Automatisation et scriptsRe : Je souhaite utiliser une valeur dans une colonne numérique pour créer une référence au même numéro de colonneQuel message d'erreur s'affiche lorsque vous passez la souris sur le code souligné en rouge ?
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "Column 9",
Numeric,
Set Values( [1, 2, 3, 4, 5] )
);
New Column( "Column 10",
Expression,
Formula( Try( Column( :Column 9 ) ) )
)
aucune erreur:


Si vous ne souhaitez pas récupérer les colonnes, mais la valeur stockée dans les colonnes, utilisez Comme colonne() au lieu de column() :
référence de colonne robuste
... ou ajoutez un index de ligne à Column() :
Colonne(col)[row()] ou Colonne(col)[]
New Column( "Column 10b",
Character,
Formula( Try( Char( Column( :Column 9 )[Row()] ) ) )
)

En plus de cela,
- veuillez vous assurer que la valeur calculée correspond au type de modélisation de la colonne.
Les colonnes 1 à 5 contiennent des nombres et des caractères. C'est pourquoi j'ai ajouté Carboniser().
- La colonne (.) échouera et la formule de colonne sera interrompue. Veuillez donc vérifier s'il manque des indices dans la colonne 9.
Re : Je souhaite utiliser une valeur dans une colonne numérique pour créer une référence au même numéro de colonnehogi
Merci, mais ceux-ci me donnent juste la valeur déjà dans la colonne 9, je veux rechercher la valeur d'une colonne différente telle qu'énumérée dans la colonne 9 si cela a du sens ?
Re : Je souhaite utiliser une valeur dans une colonne numérique pour créer une référence au même numéro de colonneen combinant les deux approches, récupérons les colonnes dans la première étape - et les valeurs dans la deuxième étape :
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "column",
Expression,
Formula( Try( Column( Row() ), . ) ),
);
New Column( "value",
Character,
Formula( Try( Char( :column[Row()][Row()] ), "" ) ),
)
why :column[Row()][Row()]?
:la colonne est la colonne n°9,
:colonne[ligne()] est l'entrée dans la ligne spécifique de cette colonne , par exemple la colonne (« sexe »)
et :colonne[ligne()][ligne()] est l'entrée dans la ligne spécifique de la colonne par exemple ("sex")

Re : Je souhaite utiliser une valeur dans une colonne numérique pour créer une référence au même numéro de colonnehogi
Excellent ajout ! Aucune bonne action et tout ça…
Je dois maintenant opérer de manière itérative sur chaque colonne par rapport à la valeur maximale stockée dans la colonne 9. L'ajout normal de la valeur de i ne s'applique pas naturellement dans ce cas.
clear symbols();
lim = Col Max(Column(8));
For (i=1, i<=lim, i++,
New Column( "Column 10b",
Character,
Formula( Try( Char( Column( :Column 9 )[Row()] ) ) )
));
Re : Je souhaite utiliser une valeur dans une colonne numérique pour créer une référence au même numéro de colonne
@SpannerHead a écrit :
L'ajout normal de la valeur de i ne s'applique pas naturellement dans ce cas.
Un problème très courant :
une variable définie en dehors du nouveau message de colonne - et utilisée à l'intérieur du nouveau message de colonne :
-> Gestion des expressions dans JMP : astuces et pièges
La solution : recherchez la variable et utilisez la valeur stockée :
For each ({i}, 1::5,
Eval(Eval Expr(New Column( "col_"||char(i),
Character,
Formula( Try( Char( Column( Expr(i) )[Row()] ) ) )
))));
plus robuste :
For each ({i}, 1::5,
Eval(Eval Expr(New Column( "col_"||char(i),
Character,
Formula( Try( Char( Expr(Name Expr(As Column( i )) )) ) )
))));
Dès le premier jour où je l'ai vu dans l'un des articles de @jthi , j'ai admiré le Name Expr(As Column(col)) et je l'ai utilisé partout où je le pouvais.
Grâce à l’apprentissage de https://community.jmp.com/t5/Discussions/Using-numeric-objects-in-a-column-equation/mp/903966/highlight/true#M106273 , je suis vraiment heureux que cette approche m’ait aidé à éviter de nombreux pièges.
Comme Column(col) ou Colonne (col) dans une formule de colonne ? Trop fragile !