三元運算子

三元運算子可讓您在轉換中建構 if/then/else 條件邏輯。請改用 IF 函式。

注意:三元運算子已由 IF 函式取代。請參閱 IF 函式一文。

在下列示例中,如果 test expression 求出的值為 true,則會執行 true_expression。否則,會執行 false_expression

所有這些運算式都可以是常數 (字串、整數或任何其他支援的文字值) 或精細的邏輯元素,雖然測試運算式求出的值必須是布林值。

用法

資料示例:

XY
truetrue
truefalse
falsetrue
falsefalse

轉換:

結果:

輸出如下所示:

XYequals
truetrueyes
truefalseno
falsetrueno
falsefalseyes

示例

示例 - 股票行情

您想要分析一組股票價格,且希望依據一套規則來判斷如何採取購入、賣出或保留的行動。

來源:

TicketQtyBuyPriceCurrentPrice
GOOG10705.25674.5
FB10084.00101.125
AAPL50125.2597.375
MSFT10038.87545.25

轉換:

您可以使用三元運算子執行資料求值運算,以判斷是否要採取動作。

注意:在大型資料集中,您可以將每支股票的購入、賣出和保留運算保存在個別的資料集中,然後在執行資料欄值的比較作業之前,將該資料集彙整至來源資料集。請參閱彙整面板一文。

為了協助計算,請先為每支股票建立包含成本 (Basis) 和目前價值 (CurrentValue) 的資料欄:

derive type:single value:(Qty * BuyPrice) as:'Basis'

derive type:single value:(Qty * CurrentPrice) as:'CurrentValue'

您現在可以依據 BasisCurrentValue 之間的價格差異建構部分規則。

最重要的動作是判斷現在是否可以賣出。下列規則會寫入目前股價為 $1000 美元或高出成本時的 sell 通知。否則,系統不會在動作資料欄中寫入任何值。

但如果要加購股票呢?您可以編輯前一指令來建立下列轉換指令。系統會在這個新版指令中執行賣出測試,如果 CurrentPriceBuyPrice 值的 10% 內,則會寫入 buy 動作。

執行第一個指令後再執行第二個指令運算,因為它會取代 else 子句,而在前一版指令中此子句完全未執行任何動作。在方案面板中,按一下前一個轉換指令並編輯,以新版指令取代此版本:

如果兩個測試運算求出的值都不是 true,則寫入動作為 hold

您可能會想要使用美元格式設定部分資料欄格式,如下所示:

注意:下列格式設定會在值前面插入美元符號 ($),如此會將資料類型變更為字串。

set col:BuyPrice value:NUMFORMAT(BuyPrice, '$ ##,###.00')

結果:

完成數字格式設定的步驟,並移除資料欄後,資料集應會如下所示:

TicketQtyBuyPriceCurrentPriceBasisCurrentValueaction
GOOG10705.25$ 674.50$ 7,052.50$ 6,745.00buy
FB10084.00$ 101.13$ 8,400.00$ 10,112.50sell
AAPL50125.25$ 97.38$ 6,262.50$ 4,868.75hold
MSFT10038.88$ 45.25$ 3,887.50$ 4,525.00hold

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁