Formule de colonne, calculs de valeur relativeJ'ai essayé de créer un script pour une nouvelle formule de colonne pour une table de données, où la valeur calculée change en fonction des valeurs des colonnes de gauche. Exemple de ce que je veux dire en utilisant le fichier d'exemple "Big Class". Disons qu'il y a 200 lignes au lieu de 20, chaque nom apparaissant 10 fois de suite comme si les tailles et les poids étaient enregistrés une fois par an pendant dix ans, il y aurait en plus une autre colonne dans le tableau de données avec les années pendant lesquelles les données ont été collectées. . Tous les noms auraient les mêmes années (c'est-à-dire 2001, 2002, 2003... 2010). La nouvelle colonne pour laquelle je voudrais écrire une formule serait la hauteur de cette année moins l'année 2003, disons. Peut-être que cette année-là, ils ont commencé à prendre leurs vitamines et vous voulez montrer comment cela a affecté leur croissance en taille. La nouvelle colonne serait alors remplie de valeurs telles que -.5, 0, .25, .7... toutes des valeurs relatives à la hauteur spécifiée en 2003, nom par nom.
Puisqu'il y aurait 20 ans 2003, quel genre de formule if/while/summarize/by/conditionnelle serait utilisée pour que les tailles de chaque nom soient comparées à celles de la même personne et non à l'une à l'autre extrémité du tableau de données ?
Merci d'avance!
Re : Formule de colonne, calculs de valeurs relativesJ'ai mis la formule en place en ajoutant quelques conditions supplémentaires comme vous l'avez suggéré. Cela fonctionnait bien, mais après avoir ajouté une autre colonne avec une formule et des lignes de code similaires, l'exécution du script obtient une erreur « Ne répond pas ». En exécutant le débogueur, j'ai résumé le problème au "trow = dt << obtenir les lignes où...". Le débogueur indique que plus de 50 % du temps d'exécution est consacré à cela.
D'après ma compréhension, JMP exécute le script en même temps, donc en insérant un Wait(0); ou dt << Exécuter des formules ; lui donnera une pause. Quelle est la meilleure pratique pour les utiliser ? J'ai essayé de les utiliser de différentes manières ; juste un avant la formule à quelques dispersés avant et après, tout en obtenant toujours le problème de non-réponse.
Il y a environ trois mille lignes dans le tableau de données et deux colonnes avec la formule, il est donc compréhensible que le programme prenne du temps pour réfléchir. J'ai essayé d'exécuter le script sur un deuxième ordinateur avec des spécifications plus élevées, mais j'obtiens la même réponse. Existe-t-il d'autres méthodes pour effectuer le "trow = dt << obtenir les lignes où..." qui permettraient au programme de le décomposer plus facilement ?
Re : Formule de colonne, calculs de valeurs relativesTout ce que vous faites, c'est ajouter des éléments conditionnels à votre formule.Vous devrez appliquer les instructions IF à la formule pour couvrir les conditions que vous avez spécifiées.Il n’y a rien de difficile à cela.La méthode que je vous ai montrée convient toujours, il vous suffit d'ajouter les autres conditions.
Re : Formule de colonne, calculs de valeurs relativesEn effet. J'ai échoué et réussi ces derniers jours, en progressant lentement mais sûrement. Ce hoquet n'est qu'une partie d'un script sur lequel je suis coincé.Re : Formule de colonne, calculs de valeurs relativesSi cela permet de mieux l'expliquer, redessinons l'exemple. Avec l'échantillon Big Class, je veux une nouvelle colonne qui comparera toutes les hauteurs F féminines individuellement à la taille de KATIE, et toutes les hauteurs M masculines à la taille de JOHN. Cette nouvelle colonne s'appellerait "différence de hauteur", et chaque ligne aurait la taille de cette personne moins la taille de KATIE ou JOHN en fonction de M/F. Ainsi, les lignes 2, 3, 4 avec LOUISE, JANE et JACLYN auront des valeurs de « différence de hauteur » de 2, -4 et 5 respectivement. (Les nombres négatifs sont acceptables). Cependant, en ce qui concerne TIM, sa taille sera comparée à celle de JOHN 65 et non à celle de KATIE 59.
En allant plus loin, que se passerait-il si je voulais que cela soit fait pour chaque nom de la liste à l'exception de ceux dont l'âge = 14. Toutes les lignes où age != 14 auront toujours leur "différence de hauteur" respective par rapport à KATIE et JOHN. Pour ceux de 14 ans, j'aimerais que la cellule soit vide.
Espérons que cela clarifie les choses et donne un exemple sur lequel travailler au lieu de simplement s'en occuper. Si cela rend les choses plus confuses, ignorez-le complètement 
Re : Formule de colonne, calculs de valeurs relativesCorrect sur les deux hypothèses... mais plutôt que de demander, je vous suggère de commencer à essayer de telles idées par vous-même. On n'apprend pas vraiment en demandant, mais en essayant... en échouant puis en réussissant
Re : Formule de colonne, calculs de valeurs relativesPour la troisième ligne avec le Col Min, ces tableaux seraient techniquement des caractères, mais selon cette page d'aide http://www.jmp.com/support/help/Statistical_Functions_2.shtml min peut avoir soit uniquement des chiffres, soit toutes les chaînes, donc cela ne devrait pas être un problème, n'est-ce pas ?
Deuxièmement, que se passe-t-il si je ne veux pas que les données soient comparées à la valeur minimale, mais plutôt à celle que je choisis. La configuration d'un :Year == " xy z" suffirait-elle dans ce scénario ?
Re : Formule de colonne, calculs de valeurs relativesEssayez quelque chose comme ceci :
dt = Current Data Table();
tname = :name;
tyear = Col Min( :Year, :name );
trow = (dt << get rows where( tname == :name & tyear == :Year ))[1];
-1 * :weight[trow] + :weight[Row()];