

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# BOOLEAN\_OPERATION
<a name="recipe-actions.BOOLEAN_OPERATION"></a>

根據邏輯條件 IF 的結果建立新的資料欄。如果布林表達式為 true，則傳回 true 值；如果布林表達式為 false，則傳回 false 值，或傳回自訂值。

**Parameters**
+ `trueValueExpression` – 符合條件時的結果。
+ `falseValueExpression` – 不符合條件時的結果。
+ `valueExpression` – 布林值條件。
+ `withExpressions` – 彙總結果的組態。
+ `targetColumn` – 新建立資料欄的名稱。

您可以在 trueValueExpression、falseValueExpression 和 valueExpression 中使用常數值、資料欄參考和彙總結果。

**Example 範例：常數值**  
保持不變的值，例如數字或句子。  
  

```
{
  "RecipeStep": {
    "Action": {
      "Operation": "BOOLEAN_OPERATION",
      "Parameters": {
        "trueValueExpression": "It is true.",
        "falseValueExpression": "It is false.",
        "valueExpression": "`column.1` < 2000",
        "targetColumn": "result.column"
      }
    }
  }
}
```

**Example 範例：資料欄參考**  
資料集中資料欄的值。  
  

```
{
  "RecipeStep": {
    "Action": {
      "Operation": "BOOLEAN_OPERATION",
      "Parameters": {
        "trueValueExpression": "`column.2`",
        "falseValueExpression": "`column.3`",
        "valueExpression": "`column.1` < `column.4`",
        "targetColumn": "result.column"
      }
    }
  }
}
```

**Example 範例：彙總結果**  
由彙總函數計算的值。彙總函數會對資料欄執行計算，並傳回單一值。  
  

```
{
  "RecipeStep": {
    "Action": {
      "Operation": "BOOLEAN_OPERATION",
      "Parameters": {
        "trueValueExpression": "`:mincolumn.2`",
        "falseValueExpression": "`:maxcolumn.3`",
        "valueExpression": "`column.1` < `:avgcolumn.4`",
        "withExpressions": "[{\"name\":\"mincolumn.2\",\"value\":\"min(`column.2`)\",\"type\":\"aggregate\"},{\"name\":\"maxcolumn.3\",\"value\":\"max(`column.3`)\",\"type\":\"aggregate\"},{\"name\":\"avgcolumn.4\",\"value\":\"avg(`column.4`)\",\"type\":\"aggregate\"}]",
        "targetColumn": "result.column"
      }
    }
  }
}
```
使用者需要透過逸出將 JSON 轉換為字串。  
請注意，trueValueExpression、falseValueExpression 和 valueExpression 中的參數名稱必須與 withExpressions 中的名稱相符。若要使用某些資料欄的彙總結果，您需要為其建立參數並提供彙總函數。

**Example 範例：**  

```
{
  "RecipeStep": {
    "Action": {
      "Operation": "BOOLEAN_OPERATION",
      "Parameters": {
        "trueValueExpression": "It is true.",
        "falseValueExpression": "It is false.",
        "valueExpression": "`column.1` < 2000",
        "targetColumn": "result.column"
      }
    }
  }
}
```

**Example 範例： 和/或**  
您可以使用 和 或 來合併多個條件。  
  

```
{
  "RecipeStep": {
    "Action": {
      "Operation": "BOOLEAN_OPERATION",
      "Parameters": {
        "trueValueExpression": "It is true.",
        "falseValueExpression": "It is false.",
        "valueExpression": "`column.1` < 2000 and `column.2` >= `column.3",
        "targetColumn": "result.column"
      }
    }
  }
}
{
  "RecipeStep": {
    "Action": {
      "Operation": "BOOLEAN_OPERATION",
      "Parameters": {
        "trueValueExpression": "`column.4`",
        "falseValueExpression": "`column.5`",
        "valueExpression": "startsWith(`column1`, 'value1') or endsWith(`column2`, 'value2')",
        "targetColumn": "result.column"
      }
    }
  }
}
```

## 有效的彙總函數
<a name="valid-aggregate-functions"></a>

下表顯示可用於布林值操作的所有有效彙總函數。



- ** 數值 **
  - **條件:** 總和 / **valueExpression:** `：sum.column.1` / **withExpressions:**  <pre>[<br />   {<br />      "name": "sum.column.1",<br />      "value": "sum(`column.1`)",<br />      "type": "aggregate"<br />   }<br />]</pre>  / **傳回值:** 傳回 的總和 `column.1`
  - **條件:** Mean / **valueExpression:** `：mean.column.1` / **withExpressions:**  <pre>[<br />   {    <br />      "name": "mean.column.1",    <br />      "value": "avg(`column.1`)",    <br />      "type": "aggregate"  <br />   }<br />]</pre>  / **傳回值:** 傳回 的平均值 `column.1`
  - **條件:** 平均絕對偏差 / **valueExpression:** `：meanabsolutedeviation.column.1` / **withExpressions:**  <pre>[<br />   {    <br />      "name": "meanabsolutedeviation.column.1",<br />      "value": "mean_absolute_deviation(`column.1`)",<br />      "type": "aggregate"<br />   }<br />]</pre>  / **傳回值:** 傳回 的平均絕對偏差 `column.1`
  - **條件:** Median / **valueExpression:** `：median.column.1` / **withExpressions:**  <pre>[<br />   {<br />      "name": "median.column.1",<br />      "value": "median(`column.1`)",<br />      "type": "aggregate"<br />   }<br />]</pre>  / **傳回值:** 傳回 的中位數 `column.1`
  - **條件:** 產品 / **valueExpression:** `：product.column.1` / **withExpressions:**  <pre>[<br />   {<br />      "name": "product.column.1",<br />      "value": "product(`column.1`)",<br />      "type": "aggregate"<br />   }<br />]</pre>  / **傳回值:** 傳回 的乘積 `column.1`
  - **條件:** 標準偏差 / **valueExpression:** `：standarddeviation.column.1` / **withExpressions:**  <pre>[<br />   {<br />      "name": "standarddeviation.column.1",<br />      "value": "stddev(`column.1`)",<br />      "type": "aggregate"<br />   }<br />]</pre>  / **傳回值:** 傳回 的標準差 `column.1`
  - **條件:** 變異數 / **valueExpression:** `：variance.column.1` / **withExpressions:**  <pre>[<br />   {<br />      "name": "variance.column.1",<br />      "value": "variance(`column.1`)",<br />      "type": "aggregate"<br />   }<br />]</pre>  / **傳回值:** 傳回 的變異數 `column.1`
  - **條件:** 平均值的標準錯誤 / **valueExpression:** `：standarderrorofmean.column.1` / **withExpressions:**  <pre>[<br />   {<br />   "name": "standarderrorofmean.column.1",<br />   "value": "standard_error_of_mean(`column.1`)",<br />   "type": "aggregate"<br />   }<br />]</pre>  / **傳回值:** 傳回 平均值的標準錯誤 `column.1`
  - **條件:** 偏斜 / **valueExpression:** `：skewness.column.1` / **withExpressions:**  <pre>[<br />   {<br />      "name": "skewness.column.1",<br />      "value": "skewness(`column.1`)",<br />      "type": "aggregate"<br />   }<br />]</pre>  / **傳回值:** 傳回 `column.1`
  - **條件:** 峰度 / **valueExpression:** `：kurtosis.column.1` / **withExpressions:**  <pre>[<br />   {<br />      "name": "kurtosis.column.1",<br />      "value": "kurtosis(`column.1`)",<br />      "type": "aggregate"<br />   }<br />]</pre>  / **傳回值:** 傳回 的峰度 `column.1`

- ** Datetime/Numeric/Text **
  - **條件:** 計數 / **valueExpression:** `：count.column.1` / **withExpressions:**  <pre>[<br />   {<br />      "name": "count.column.1",<br />      "value": "count(`column.1`)",<br />      "type": "aggregate"<br />   }<br />]</pre>  / **傳回值:** 傳回 中的資料列總數 `column.1`
  - **條件:** 相異計數 / **valueExpression:** `：countdistinct.column.1` / **withExpressions:**  <pre>[<br />   {<br />      "name": "count.column.1",<br />      "value": "count(distinct `column.1`)",<br />      "type": "aggregate"<br />   }<br />]</pre>  / **傳回值:** 傳回 中不同資料列的總數 `column.1`
  - **條件:** 最少 / **valueExpression:** `：min.column.1` / **withExpressions:**  <pre>[<br />   {<br />      "name": "min.column.1",<br />      "value": "min(`column.1`)",<br />      "type": "aggregate"<br />   }<br />]</pre>  / **傳回值:** 傳回 的最小值 `column.1`
  - **條件:** 最多 / **valueExpression:** `：max.column.1` / **withExpressions:**  <pre>[<br />   {<br />      "name": "max.column.1",<br />      "value": "max(`column.1`)",<br />      "type": "aggregate"<br />   }<br />]</pre>  / **傳回值:** 傳回 的最大值 `column.1`



## valueExpression 中的有效條件
<a name="valid-conditions-table"></a>

下表顯示支援的條件和您可以使用的值表達式。



- ** String **
  - **條件:** Contains / **valueExpression:** contains(`column`， 'text') / **Description:** 要測試資料欄中的值是否包含文字的條件
  - **條件:** 不包含 / **valueExpression:** ！contains(`column`， 'text') / **Description:** 要測試資料欄中的值是否不包含文字的條件
  - **條件:** 相符 / **valueExpression:** matches(`column`， 'pattern') / **Description:** 要測試資料欄中的值是否符合模式的條件
  - **條件:** 不符合 / **valueExpression:** ！matches(`column`， 'pattern') / **Description:** 要測試資料欄中的值是否與模式不相符的條件
  - **條件:** 開頭為 / **valueExpression:** startsWith(`column`， 'text') / **Description:** 測試資料欄中的值是否以文字開頭的條件
  - **條件:** 開頭不是 / **valueExpression:** ！startsWith(`column`， 'text') / **Description:** 要測試資料欄中的值是否不是以文字開頭的條件
  - **條件:** Ends with / **valueExpression:** endsWith(`column`， 'text') / **Description:** 要測試資料欄中的值是否以文字結尾的條件
  - **條件:** 結尾不是 / **valueExpression:** ！endsWith(`column`， 'text') / **Description:** 要測試資料欄中的值是否以文字結尾的條件

- ** 數值 **
  - **條件:** Less than / **valueExpression:** `column` < number / **Description:** 要測試資料欄中的值是否小於數字的條件
  - **條件:** 小於或等於 / **valueExpression:** `column` <= number / **Description:** 要測試資料欄中的值是否小於或等於數字的條件
  - **條件:** Greater than / **valueExpression:** `column` > 數字 / **Description:** 要測試資料欄中的值是否大於數字的條件
  - **條件:** 大於或等於 / **valueExpression:** `column` >= number / **Description:** 要測試資料欄中的值是否大於或等於數字的條件
  - **條件:** 介於 / **valueExpression:** isBetween(`column`、minNumber、maxNumber) / **Description:** 要測試資料欄中的值是否介於 minNumber 和 maxNumber 之間的條件
  - **條件:** 不在 之間 / **valueExpression:** ！isBetween(`column`、minNumber、maxNumber) / **Description:** 要測試資料欄中的值是否不在 minNumber 和 maxNumber 之間的條件

- ** Boolean **
  - **條件:** 為 true / **valueExpression:** `column` = TRUE / **Description:** 要測試資料欄中的值是否為布林值 TRUE 的條件
  - **條件:** 為 false / **valueExpression:** `column` = FALSE / **Description:** 要測試資料欄中的值是否為布林值 FALSE 的條件

- ** 日期/時間戳記 **
  - **條件:** 早於 / **valueExpression:** `column` < 'date' / **Description:** 要測試資料欄中的值是否早於日期的條件
  - **條件:** 早於或等於 / **valueExpression:** `column` <= 'date' / **Description:** 要測試資料欄中的值是否早於或等於日期的條件
  - **條件:** 晚於 / **valueExpression:** `column` > 'date' / **Description:** 要測試資料欄中的值是否晚於日期的條件
  - **條件:** 大於或等於 / **valueExpression:** `column` >= 'date' / **Description:** 要測試資料欄中的值是否晚於或等於日期的條件

- ** String/Numeric/Date/時間戳記 **
  - **條件:** 完全是 / **valueExpression:** `column` = 'value' / **Description:** 測試資料欄中的值是否為確切值的條件
  - **條件:** Is not / **valueExpression:** `column` ！= 'value' / **Description:** 要測試資料欄中的值是否不是值的條件
  - **條件:** 遺失 / **valueExpression:** isMissing(`column`) / **Description:** 測試資料欄中的值是否遺失的條件
  - **條件:** 未遺失 / **valueExpression:** ！isMissing(`column`) / **Description:** 測試資料欄中的值是否未遺失的條件
  - **條件:** 有效 / **valueExpression:** isValid(`column`，資料類型） / **Description:** 測試資料欄中的值是否有效的條件 （該值為資料類型，或可轉換為資料類型）
  - **條件:** 無效 / **valueExpression:** ！isValid(`column`，資料類型） / **Description:** 測試資料欄中的值是否無效的條件 （該值為資料類型，或可轉換為資料類型）

- ** 巢狀 **
  - **條件:** 遺失 / **valueExpression:** isMissing(`column`) / **Description:** 測試資料欄中的值是否遺失的條件
  - **條件:** 未遺失 / **valueExpression:** ！isMissing(`column`) / **Description:** 測試資料欄中的值是否未遺失的條件
  - **條件:** 有效 / **valueExpression:** isValid(`column`，資料類型） / **Description:** 測試資料欄中的值是否有效的條件 （該值為資料類型，或可轉換為資料類型）
  - **條件:** 無效 / **valueExpression:** ！isValid(`column`，資料類型） / **Description:** 測試資料欄中的值是否無效的條件 （該值為資料類型，或可轉換為資料類型）

