Excerpt |
---|
Numeric operators enable you to generate new values based on a computation (e.g. 3 + 4 ). |
For each expression, the numeric operator is applied from left to right:
Code Block |
---|
(left-hand side) (operator) (right-hand side) |
These evaluations result in a numeric output, which can be an Integer or Decimal depending on the input values. The following operators are supported:
Operator Name | Symbol | Example Expression | Output | Notes |
---|
add | + | 3 + 6
| 9 | |
subtract | - | 6 - 5
| 1 | |
multiply | * | 3 * 6
| 18 | |
divide | / | 25 / 5
| 5 | |
modulo | % | 5 % 4 | 1 | Computes the remainder as an integer of the first parameter divided by the second parameter. Input parameters must be Integers, column references to Integers, or an expression that evaluates to an Integer. |
power | pow | pow(4,3) | 64 | Power is implemented as a function. see POW Function. |
negate | - | -myColumn | opposite of the value in myColumn | This operator supports only one operand. Parenthetical references are supported. See the example below. |
The above examples apply to integer values only. Below, you can review how the comparison operators apply to different data types.
Usage
Numeric operators are used to perform numeric manipulations on columns of data, Integer or Decimal constants, or both. Typically, they are applied in evaluations of values or rows.
Example data:
Transformations:
D trans |
---|
RawWrangle | true |
---|
p03Value | 'add' |
---|
Type | step |
---|
WrangleText | derive type:single value:(X + Y) as: 'add' |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | (X + Y) |
---|
p03Name | New column name |
---|
SearchTerm | New formula |
---|
|
D trans |
---|
RawWrangle | true |
---|
p03Value | 'subtract' |
---|
Type | step |
---|
WrangleText | derive type:single value:(X - Y) as: 'subtract' |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | (X - Y) |
---|
p03Name | New column name |
---|
SearchTerm | New formula |
---|
|
D trans |
---|
RawWrangle | true |
---|
p03Value | 'multiply' |
---|
Type | step |
---|
WrangleText | derive type:single value:(X * Y) as: 'multiply' |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | (X * Y) |
---|
p03Name | New column name |
---|
SearchTerm | New formula |
---|
|
D trans |
---|
RawWrangle | true |
---|
p03Value | 'divide' |
---|
Type | step |
---|
WrangleText | derive type:single value:(X / Y) as: 'divide' |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | (X / Y) |
---|
p03Name | New column name |
---|
SearchTerm | New formula |
---|
|
D trans |
---|
RawWrangle | true |
---|
p03Value | 'modulo' |
---|
Type | step |
---|
WrangleText | derive type:single value:(X % Y) as: 'modulo' |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | (X % Y) |
---|
p03Name | New column name |
---|
SearchTerm | New formula |
---|
|
D trans |
---|
RawWrangle | true |
---|
p03Value | 'power' |
---|
Type | step |
---|
WrangleText | derive type:single value: pow(X,Y) as: 'power' |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | pow(X,Y) |
---|
p03Name | New column name |
---|
SearchTerm | New formula |
---|
|
D trans |
---|
RawWrangle | true |
---|
p03Value | 'negativeXminusY' |
---|
Type | step |
---|
WrangleText | derive type:single value: -(X-Y) as: 'negativeXminusY' |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | -(X-Y) |
---|
p03Name | New column name |
---|
SearchTerm | New formula |
---|
|
Results:
Your output looks like the following. Below, (null value)
indicates that a null value is generated for the computation.
X | Y | add | subtract | multiply | divide | modulo | power | negativeXminusY |
---|
2 | 1 | 3 | 1 | 2 | 2 | 0 | 2 | -1 |
6 | 4 | 10 | 2 | 24 | 1.5 | 2 | 1296 | -3 |
7 | 10 | 17 | -3 | 70 | 0.7 | 7 | 282475249 | 3 |
10 | 0 | 20 | 10 | 0 | (null value) | (null value) | 1 | -10 |
Info |
---|
NOTE: When a numeric operator is applied to a set of values, the type of data of each source value is re-inferred to match any literal values used on the other side of the expression. This method allows for more powerful comparisons. In the following examples, values taken from the MySource column are re-typed to match the inferred data type of the other side of the expression. |
add
Column Type | Example Transformation | Output | Notes |
---|
Integer/Decimal | D trans |
---|
RawWrangle | true |
---|
Type | step |
---|
WrangleText | derive type:single value:(MySource + 5) |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | (MySource + 5) |
---|
SearchTerm | New formula |
---|
|
| Generated values are sum of values in MySource column and the constant (5 or 2.5). | |
Datetime | You cannot directly add Datetime values. You can use the DATEDIF function to generate the number of days difference between two date values. See DATEDIF Function. | | |
String | You cannot add strings together. - You can use the
MERGE transform to concatenate columns of string values together. See Merge Transform. - You can use the
ARRAYCONCAT function to concatenate multiple columns of array type together. See ARRAYCONCAT Function.
| | For computational purposes, all data types not previously listed in this table behave like strings. |
subtact
Column Type | Example Transformation | Output | Notes |
---|
Integer/Decimal | D trans |
---|
RawWrangle | true |
---|
Type | step |
---|
WrangleText | derive type:single value:(MySource - 5) |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | (MySource - 5) |
---|
SearchTerm | New formula |
---|
|
D trans |
---|
RawWrangle | true |
---|
Type | step |
---|
WrangleText | derive type:single value:(MySource - 2.5) |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | (MySource - 2.5) |
---|
SearchTerm | New formula |
---|
|
| Generated values are difference between values in MySource column and the constant (5 or 2.5). | |
Datetime | You cannot directly subtract Datetime values. You must use the DATEDIF function to generate the number of days difference between two date values. See DATEDIF Function. | | |
String | You cannot differentiate strings directly. - You can use the
SUBSTRING function to locate one string within the other. If found, this function returns the index of the value in the source string where the substring is located. This index value can used as an input to the LEFT and RIGHT functions to remove the substring. See SUBSTRING Function.
| | For computational purposes, all data types not previously listed in this table behave like strings. |
multiply
Column Type | Example Transformation | Output | Notes |
---|
Integer/Decimal | D trans |
---|
RawWrangle | true |
---|
Type | step |
---|
WrangleText | derive type:single value:(MySource * 5) |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | (MySource * 5) |
---|
SearchTerm | New formula |
---|
|
D trans |
---|
RawWrangle | true |
---|
Type | step |
---|
WrangleText | derive type:single value:(MySource * 2.5) |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | (MySource * 2.5) |
---|
SearchTerm | New formula |
---|
|
| Generated values are the product of values in the MySource column and the constant (5 or 2.5). | |
Datetime | N/A | | |
String | N/A | | |
divide
Column Type | Example Transformation | Output | Notes |
---|
Integer/Decimal | D trans |
---|
RawWrangle | true |
---|
Type | step |
---|
WrangleText | derive type:single value:(MySource / 5) |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | (MySource / 5) |
---|
SearchTerm | New formula |
---|
|
D trans |
---|
RawWrangle | true |
---|
Type | step |
---|
WrangleText | derive type:single value:(MySource / 2.5) |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | (MySource / 2.5) |
---|
SearchTerm | New formula |
---|
|
| Generated values are the values in the MySource column divided by the constant (5 or 2.5).
| |
Datetime | N/A | | |
String | N/A | | |
modulo
Column Type | Example Transformation | Output | Notes |
---|
Integer | D trans |
---|
RawWrangle | true |
---|
Type | step |
---|
WrangleText | derive type:single value:(MySource % 5) |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | (MySource % 5) |
---|
SearchTerm | New formula |
---|
|
| Generated values are the values in the MySource column divided by the constant (5 or 2.5).
| |
Decimal | D trans |
---|
RawWrangle | true |
---|
Type | step |
---|
WrangleText | derive type:single value:(MySource % 2.5) |
---|
p01Name | Formula type |
---|
p01Value | Single row formula |
---|
p02Name | Formula |
---|
p02Value | (MySource % 2.5) |
---|
SearchTerm | New formula |
---|
|
| Not supported. Inputs must be of Integer type. | |
Datetime | N/A | | |
String | N/A | | |