Avez-vous déjà été confus par le résultat en essayant d'ajouter des valeurs numériques à l'aide d'un opérateur plus (+) ? Peut-être avez-vous découvert la fonction Sum() pour contourner le problème mais n'avez jamais vraiment compris pourquoi cela fonctionnait. Dans cet article de blog, j'explique la fonction Add(), l'opérateur plus (+) et la fonction Sum() pour vous aider à obtenir les résultats dont vous avez besoin à partir de votre formule de script ou de colonne.

Commençons par la fonction Add(). Saviez-vous que plus (+) est la représentation symbolique de la fonction Add() ? Il est! Cela signifie que les deux expressions suivantes sont exactement les mêmes :
1 + 2; //Returns 3
Add( 1, 2 ); //Returns 3
La fonction Add() et l'opérateur plus ajoutent des valeurs pour calculer une valeur totale. Les arguments peuvent être des nombres, des matrices ou des listes de nombres.
Mais que se passe-t-il si l'une des valeurs est un numérique manquant (.) ? La fonction Add() retournera missing si l'un des arguments est une valeur manquante.
Dans l'exemple précédent, le résultat était 3 pour l'une ou l'autre expression. Sur cette base, si une valeur manquante était l'un des arguments, elle retournerait manquante, plutôt que 3.
1 + . + 2; //Returns missing
Add( 1, ., 2 ); //Returns missing
Alors, comment obtenez-vous toujours une valeur totale en excluant les valeurs manquantes ? C'est là qu'intervient la fonction Sum(). La fonction Sum() ajoutera également des valeurs pour calculer une valeur totale, cependant, elle ne tient pas compte valeurs manquantes.
Vous trouverez ci-dessous la syntaxe de la fonction Sum(). Notez que les arguments sont séparés par des virgules et que la valeur totale de tous les arguments non manquants est calculée.
Sum( 1, ., 2 ); //Returns 3
Sum() peut-il jamais retourner manquant? Eh bien, oui, il peut. Lorsque le ou les arguments fournis à la fonction Sum() sont tout valeurs manquantes, le résultat sera également manquant. Dans cet exemple, la valeur de x et y est manquante.
x = y = .;
Sum( x, y ); //Returns missing
Et ne vous laissez pas surprendre en pensant que vous pouvez utiliser l'opérateur plus pour spécifier les arguments.
Sum( 1 + . + 2 ); ); //Returns missing
Quand tu fais ça, JMP voit cela comme un argument qui utilise la fonction Add(). Et rappelez-vous que la fonction Add() renvoie missing lorsque l'un des arguments est une valeur manquante :
Sum( Add( 1, ., 2 ) ); //Returns missing
Ce qui est essentiellement le même que celui-ci :
Sum( . ); //Returns missing
Si vous avez modifié cet exemple pour inclure deux arguments, tels que :
Sum( 100, 1 + . + 2 ); //Returns 100
Le résultat est 100 car les arguments sont 100 et manquants, comme dans :
Sum( 100, . ); //Returns 100
J'espère que cela aide à clarifier les utilisations de Add(), plus (+) et Sum().