Bonjour,
J'essaie d'écrire une fonction qui fait référence à une certaine ligne d'une colonne et d'essayer de la rendre dynamique où je peux l'exécuter sur n'importe quel nom de colonne. En utilisant la table Big Class comme exemple, j'essaie d'exécuter le calcul sur la colonne de hauteur mais je ne pouvais pas le faire fonctionner à moins qu'il ne soit codé en dur dans la fonction. De plus, la fonction de décalage ne semble pas fonctionner dans une fonction.
C'est le script que j'ai.
dt = Ouvrir ( "$SAMPLE_DATA/Grande classe.jmp" );
Ligne() = 4 ;
ii = 4 ;
Essai = Fonction ({étiqueter},
Y = balise[ii] - balise[ii- 1 ] ; // cela ne marche pas
//Y = hauteur[ii] - hauteur[ii-1] ; cela marche
X = décalage (étiqueter, 1 ); // cela ne marche pas
//X = décalage(hauteur,1); cela marche
);
Essai(hauteur)
Merci d'avance
Voir le script annoté ci-dessous
t = Open( "$SAMPLE_DATA/Big Class.jmp" );
Row() = 4;
ii = 4;
Test = Function({tag},
Y = column(t,tag)[ii] - column(t,tag)[ii-1]; // this doesn't work
//Y = height[ii] - height[ii-1]; this works
X = lag(column(t,tag)[ii],1); // this doesn't work
//X = lag(height,1); this works
// If you want the calculated values to be returned to a value such as calling the function
// rr = Test("Height")
// uncomment the code below
//YXList = {};
//insert into(YXList,Y);
//insert into(YXList,X);
//return(YXList);
);
// If you specify
// Test(height);
// JMP will look for the value of a variable called height
// You need to pass the column name as a string and have the
// function process it
Test("height")