Comment utiliser une formule pour calculer la moyenne des lignes sélectionnéesSalut tout le monde,
Pour commencer, je suis fondamentalement un nouvel utilisateur de JMP, donc je ne sais pas comment créer des scripts.Juste des formules de base, etc. Voici ce que je dois faire et je n'arrive pas à comprendre comment.
J'aimerais d'abord calculer une moyenne de la "Quantité de cyandine" pour chacun des mêmes "Numéro d'échantillon" (objectif d'avoir une colonne qui calcule ce que j'ai placé dans la colonne "Moyenne de trois injections".
De même, j'aimerais une colonne qui donne la moyenne de ces trois moyennes pour chaque "étape de développement" dont j'ai placé l'objectif dans la colonne intitulée "Moyenne des étapes de développement".
Ce n'est pas une moyenne mobile... Je pensais qu'une instruction conditionnelle dans une formule fonctionnerait peut-être ? Ou peut-être une formule qui utilise une sorte de troisième colonne comme la colonne « Code d'identification » comme identifiant pour lui indiquer les lignes à moyenner ?
Merci!
Analyse et modélisation des données de baseles fenêtresRe : Comment utiliser une formule pour calculer la moyenne des lignes sélectionnéesLes 2 formules dont vous avez besoin sont
If( :Sample Number != :Sample Number[Row() + 1] | Row() == N Rows( Current Data Table() ),
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Sample Number )
)
et
If( :Developmental Stage != :Developmental Stage[Row() + 1] | Row() == N Rows( Current Data Table() ),
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Developmental Stage )
)

Re : Comment utiliser une formule pour calculer la moyenne des lignes sélectionnéesBonjour!
Merci pour la réponse!Je l'ai essayé et il fonctionne.Je ne comprends tout simplement pas très bien comment cela fonctionne....
Jusqu'à présent, je pense que j'ai compris
Si le numéro d'échantillon n'est pas égal au numéro d'échantillon de la ligne suivante
OU
le numéro de ligne actuel est égal au nombre total de lignes dans la table de données actuelle ? (cette partie sur laquelle je suis confus.De plus, lorsque j'entre ceci, je reçois un avertissement concernant l'utilisation de la partie "Tableau de données actuel".
ALORS
Calculer la moyenne de la « quantité de cyanidine (ng/kg) lorsque les numéros d'échantillon sont les mêmes ?
Pourrait-on expliquer un peu le fonctionnement de la formule à ce débutant ?
Question de suivi - pour mon tableau de données complet, j'aurai évidemment plus de données avec des lignes qui ont un nom de cultivar différent mais les mêmes numéros d'échantillon et numéros d'injection que ceux indiqués dans mon exemple.Ces formules fonctionneront-elles toujours ?Dois-je tenir compte du nom du cultivar pour les séparer ?
Merci
Re : Comment utiliser une formule pour calculer la moyenne des lignes sélectionnéesLa formule pour faire les calculs est en réalité très simple.C'est votre spécification d'afficher les résultats uniquement sur des lignes spécifiques, ce qui rend les calculs un peu compliqués.
Lorsqu'une formule est appliquée à une colonne donnée, JMP prend simplement la formule et l'applique à la ligne 1, puis à la ligne 2 et ainsi de suite jusqu'à la dernière ligne du tableau.Par conséquent, la formule ci-dessous vous donnera les réponses que vous souhaitez
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Sample Number )
Fondamentalement, la formule calcule la moyenne de la colonne « Quantité de cyanidine (ng/kg) » et l'écrit dans la ligne de la colonne.Étant donné qu'une colonne Par est également spécifiée, "Numéro d'échantillon", elle calcule la moyenne de chaque niveau trouvé pour le "Numéro d'échantillon", puis l'écrit dans la ligne de la nouvelle colonne.

Mais votre exigence était d'afficher uniquement la valeur moyenne sur la dernière ligne pour chacun des "numéros d'échantillon".Pour identifier de quelles lignes il s'agit, il doit y avoir quelque chose qui puisse être évalué par programme.Dans ce cas, j'ai choisi de vérifier si la valeur de "Sample Number" change dans la ligne après le traitement de la ligne en cours.Cela change donc la formule en
If( :Sample Number != :Sample Number[Row() + 1] ,
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Sample Number )
)
La clause If() est interprétée comme : si la valeur actuelle de "Sample Number" n'est pas égale à la valeur de "Sample Number" dans la ligne 1 au-delà de la ligne actuelle ( Row() + 1 ), alors effectuez le calcul .Si cette comparaison n’est pas vraie, alors elle ne sert à rien.
Cela fonctionne donc très bien, sauf pour la dernière ligne du tableau de données.Lorsque JMP tente d'examiner une ligne 1 au-delà de la dernière ligne de la table de données, il n'a aucune ligne avec laquelle comparer et ne peut donc pas prendre de décision.

La formule doit donc également tenir compte de cette question.
If( :Sample Number != :Sample Number[Row() + 1] | Row() == N Rows( Current Data Table() ),
Col Mean( :"Amount of Cyanidin (ng/kg)"n, :Sample Number )
)
Ici, la clause supplémentaire vérifie si la ligne actuelle, Row(), est égale au nombre de lignes dans la table de données, N Rows (Current data Table().La deuxième clause est séparée par "|" ce qui indique que si la première clause "OU" la deuxième clause est vraie, procédez au calcul.
La deuxième colonne de formule suit la même logique, seule la colonne Par étant remplacée par « Stade de développement ».
Concernant ce qui doit changer pour pouvoir l'utiliser sur votre table de données complète.Je ne sais pas à quoi vous faites référence lorsque vous dites : " cultivar".Les conditions requises pour que les formules fonctionnent correctement sont que les données soient triées par ordre de « stade de développement » et de « numéro d'échantillon » et que « quantité de cyanidine (ng/kg) » soit le nom de la colonne dans laquelle se trouvent les moyennes. calculé sur.Si l'une de ces colonnes change de nom, les nouveaux noms doivent être remplacés dans les formules.
Re : Comment utiliser une formule pour calculer la moyenne des lignes sélectionnéesUne autre option consiste à utiliser If avec les fonctions Col Min et Col Max, mais soyez prudent si vous deviez l'utiliser car cela pourrait échouer dans l'une des futures versions de JMP en raison de l'utilisation de Row() avec Col Max/Col Min ( Utiliser des expressions de formule dans Définir chaque valeur et utiliser des expressions comme premier argument dans le comportement pris en charge par les formules statistiques Col )
ColMoy1
If(Row() == Col Max(Row(), :Sample Number),
Col Mean(:"Amount of Cyanidin (ng/kg)"n, :Sample Number)
)
ColMoy2
If(Row() == Col Max(Row(), :Developmental Stage),
Col Mean(:CoAvg1, :Developmental Stage)
)

Re : Comment utiliser une formule pour calculer la moyenne des lignes sélectionnéesMerci beaucoup.Je pense avoir compris maintenant grâce à vos explications !
Re: Comment utiliser une formule pour calculer la moyenne des lignes sélectionnées ?Je sais que cette discussion date un peu, mais je cherchais la même chose et j'ai retrouvé un vieux script qui fait ça très facilement. Je ne sais plus d'où il vient, mais je suis ravi qu'il fonctionne. L'exemple ci-dessous concerne une plage de lignes.
rangée_inférieure = numéro_de_ligne1;
rangée_supérieure = numéro_de_ligne2;
dtx<
rowrangefull=dtx< freq_avg = Col mean(If( Selected(),nom de la colonne), . );