Créer une formule de colonne à l'aide d'un nom de colonne à partir d'une listeBonjour,
J'ai un script simple où je veux créer une nouvelle colonne dans laquelle une formule calcule la valeur absolue d'une autre colonne.
la colonne est référencée dans une liste.
J'ai essayé plusieurs manières différentes, mais je n'arrive pas à comprendre comment évaluer la colonne référencée, donc je me retrouve avec une colonne de formule vide. Toute suggestion serait grandement appréciée.
Meilleur
Sébastien
dt=New Table( "test",
Add Rows( 4 ),
New Column( "symbol",
Character,
"Nominal",
Set Values( {"a", "b", "c", "d"} ),
Set Display Width( 55 )
),
New Column( "fold change",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [-3, -0.4, 0.4, 3] ),
Set Display Width( 68 )
)
);
l={"fold change"};
try(New Column( "absolute fold change",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Abs( l[1] )
)));
try(New Column( "absolute fold change 2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( eval(column(l[1]) )
)));
Ingénierie de la qualité et des procédésRe : Créer une formule de colonne en utilisant un nom de colonne à partir d'une listeAucun problème. J'ai eu exactement le même problème hier et j'ai mis du temps à le résoudre.
En fait, je viens d'apprendre une autre solution à cela aussi.
La fonction 'As Column()' renverra la valeur de la ligne actuelle dans la colonne spécifiée comme argument.
Donc, cette formule aurait également pu être formatée comme ceci :
Formule(
Abs( As Column( l[1] ) );
);
Génial!Re : Créer une formule de colonne en utilisant un nom de colonne à partir d'une listeMerci beaucoup, j'avais essayé l'option que vous proposiez avec une grosse différence : Pas de parenthèses vides.
Meilleur,
SébastienRe : Créer une formule de colonne en utilisant un nom de colonne à partir d'une listedt=New Table( "test",
Add Rows( 4 ),
New Column( "symbol",
Character,
"Nominal",
Set Values( {"a", "b", "c", "d"} ),
Set Display Width( 55 )
),
New Column( "fold change",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [-3, -0.4, 0.4, 3] ),
Set Display Width( 68 )
)
);
l = {"fold change"};
try(New Column( "absolute fold change",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Abs( column( l[1] )[] )
)));Étant donné que votre liste ne contient que des chaînes, vous devez indiquer à JMP que la chaîne est un nom de colonne à l'aide de la fonction Column( "" )[ ].
Les crochets vides sont nécessaires ainsi que sans eux, la formule fera référence à la colonne entière au lieu de la ligne appropriée uniquement.
J'espère que cela a aidé,
Couché