¿Alguna vez te ha confundido el resultado al intentar sumar valores numéricos usando un operador más (+)? Tal vez descubrió la función Sum() para solucionar el problema, pero nunca entendió realmente por qué funcionaba. En esta publicación de blog, explico la función Add(), el operador más (+) y la función Sum() para ayudarlo a obtener los resultados que necesita de su script o fórmula de columna.

Comencemos con la función Add(). ¿Sabías que más (+) es la representación simbólica de la función Add()? ¡Es! Eso significa que las siguientes dos expresiones son exactamente iguales:
1 + 2; //Returns 3
Add( 1, 2 ); //Returns 3
La función Add() y el operador más suman valores para calcular un valor total. Los argumentos pueden ser números, matrices o listas de números.
Pero, ¿qué pasa si falta uno de los valores numéricos (.)? La función Agregar () devolverá perdido si alguno de los argumentos es un valor perdido.
En el ejemplo anterior, el resultado fue 3 para cualquier expresión. Sobre la base de eso, si un valor faltante fuera uno de los argumentos, devolvería faltante, en lugar de 3.
1 + . + 2; //Returns missing
Add( 1, ., 2 ); //Returns missing
Entonces, ¿cómo se obtiene un valor total excluyendo los valores faltantes? Aquí es donde entra en juego la función Sum(). La función Sum() también agregará valores para calcular un valor total, sin embargo, ignora valores faltantes.
A continuación se muestra la sintaxis de la función Sum(). Observe que los argumentos están separados por comas y se calcula el valor total de todos los argumentos que no faltan.
Sum( 1, ., 2 ); //Returns 3
¿Puede Sum() alguna vez volver a faltar? Bueno, sí, se puede. Cuando los argumentos proporcionados a la función Sum() son todo faltan valores, el resultado también faltará. En este ejemplo, falta el valor de x e y.
x = y = .;
Sum( x, y ); //Returns missing
Y no se equivoque pensando que puede usar el operador más para especificar los argumentos.
Sum( 1 + . + 2 ); ); //Returns missing
Cuando haces eso, JMP ve esto como un argumento que usa la función Add(). Y recuerde que la función Agregar() devuelve falta cuando alguno de los argumentos es un valor faltante:
Sum( Add( 1, ., 2 ) ); //Returns missing
Que es esencialmente lo mismo que esto:
Sum( . ); //Returns missing
Si cambió ese ejemplo para incluir dos argumentos, como:
Sum( 100, 1 + . + 2 ); //Returns 100
El resultado es 100 porque los argumentos son 100 y faltan, como en:
Sum( 100, . ); //Returns 100
Espero que esto ayude a aclarar los usos de Add(), plus (+) y Sum().
Recuerdo que cuando comencé a usar JMP por primera vez, este tema me causó un poco de confusión porque la función de agregar predeterminada en "Nueva columna de fórmula" es la versión que devuelve un valor faltante si falta algún valor. En esa edad oscura, no me di cuenta de cuán grande era la comunidad que JMP tenía para ayudar con cosas como esta. 