Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Excerpt

Performs conditional transformation of data with a single statement using if-then-else logic or with multiple statements using case logic. Results are generated in a new column.

d-s-nestedtransforms

There are function equivalents to this transform:

...

This example illustrates a single if/then/else construction:

D code

case if: testScore >= 60 then: 'yes' else: 'no' as: 'passedTest'

Output: If a value in the testScore is greater than or equal to 60, a value of yes is written into the new passedTest column. Otherwise, a value of no is written.

...

This example shows how to step through a sequence of case tests applied to a single column. 

D code

case col: custName colCases: ['Big Co',0.2],['Little Guy Ltd',0.05] default: 0 as: 'discountRate'

Output: Checks names in the custName column and writes discount values based on exact matches of values in the column:

...

  • The first case is tested:
    • If true, then the listed value is written to the new column.
    • If false, then the next case is tested.
  • If none of the stated cases evaluates to true, then the default value is written.


D code

case cases: [totalOrdersQ3 < 10, true], [lastOrderDays > 60, true] default: false as: 'sendCheckinEmail'

Output: If the total orders in Q3 < 10 OR the last order was placed more than 60 days ago, then write true in the sendCheckinEmail. Otherwise, write false.

...

LogicTestSendCheckinEmail
iftotalOrdersQ3 < 10true
if above is falselastOrderDays > 60true
if above is falsewrite defaultfalse


D s
snippetParameters

D code

case [if: if_expression] [then:'str_if_true'] [else:'str_if_false] [col:col1] [colCases: [[Match1,Val1]],[[Match2,Val2]] [cases: [[Exp3,Val3]],[[Exp4,Val4]] [default:default_val] as: 'new_column_name'


TokenRequired?Data TypeDescription
caseYtransformName of the transform
ifNstring(For single if/then/else) Expression that is tested must evaluate to true or false.
thenNstring(For single if/then/else) Value written to the new column if the if expression is true.
elseNstring(For single if/then/else) Value written to the new column if the if expression is false.
colNstring(For single-column case) Name of column whose values are to be tested.
colCasesNcomma-separated arrays

(For single-column case) Matrix of string-value pairs:

  • First entry is the value to match.
  • Second entry is the value written to the new column if a match appears
casesNcomma-separated arrays

(For custom conditions case) Matrix of expression-value pairs:

  • First entry is the expression to evaluate.
  • Second entry is the value to write if the expression is true.
defaultNany(For single-column case and custom condition case) If no matches are made, this value is written to the new column.
asYstringName of the new column where results are written.

...