嘗試使用加號 (+) 運算符添加數值時,是否曾對結果感到困惑? 也許您發現 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
當你這樣做時,聯合管理計劃將此視為使用 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() 的用法。
我記得當我第一次開始使用 JMP 時,這個主題讓我有點困惑,因為“新公式列”下的默認添加函數是如果缺少任何值則返回缺失值的版本。 早在那個黑暗時代,我並沒有意識到 JMP 社區有多麼偉大,可以幫助解決這樣的事情! 