嘗試使用加號 (+) 運算符添加數值時是否對結果感到困惑? 也許你發現了 Sum() 函數來解決這個問題,但從未真正理解它為什麼起作用。 在這篇博文中,我解釋了 Add() 函數、加號 (+) 運算符和 Sum() 函數,以幫助您從腳本或列公式中獲得所需的結果。

讓我們從 Add() 函數開始。 您知道加號 (+) 是 Add() 函數的符號表示嗎? 這是! 這意味著以下兩個表達式完全相同:
1 + 2; //Returns 3
Add( 1, 2 ); //Returns 3
Add() 函數和加號運算符相加值以計算總值。 參數可以是數字、矩陣或數字列表。
但是如果其中一個值是缺失的數字 (.) 呢? 如果任何參數是缺失值,Add() 函數將返回缺失值。
在前面的示例中,任一表達式的結果都是 3。 在此基礎上,如果缺失值是參數之一,那麼它將返回缺失值,而不是 3。
1 + . + 2; //Returns missing
Add( 1, ., 2 ); //Returns missing
那麼如何獲得不包括缺失值的總值呢? 這就是 Sum() 函數的用武之地。 Sum() 函數還將添加值以計算總值,但是,它無視缺失值。
下面是 Sum() 函數的語法。 請注意,參數用逗號分隔,併計算所有非缺失參數的總值。
Sum( 1, ., 2 ); //Returns 3
Sum() 可以返回丟失嗎? 嗯,是的,它可以。 當提供給 Sum() 函數的參數是全部缺失值,結果也會缺失。 在此示例中,x 和 y 的值均缺失。
x = y = .;
Sum( x, y ); //Returns missing
並且不要以為您可以使用加號運算符來指定參數而被絆倒。
Sum( 1 + . + 2 ); ); //Returns missing
當你這樣做時, JMP將此視為使用 Add() 函數的一個參數。 請記住,當任何參數為缺失值時,Add() 函數返回缺失值:
Sum( Add( 1, ., 2 ) ); //Returns missing
這與此基本相同:
Sum( . ); //Returns missing
如果您將該示例更改為包含兩個參數,例如:
Sum( 100, 1 + . + 2 ); //Returns 100
結果為 100,因為參數為 100 且缺失,如下所示:
Sum( 100, . ); //Returns 100
我希望這有助於闡明 Add()、plus (+) 和 Sum() 的用法。