TSTool / Command / TableMath
Overview
The TableMath
command performs a simple math operation on columns in a table.
This command and related table commands are not an attempt to replace full-feature spreadsheet
programs but are intended to help automate common data processing tasks.
Additional table processing commands are available to manipulate table data that can be input
to this command or further process this command's output.
It is often helpful to perform operations that create new table columns in order
to understand data processing workflow.
The input is specified by a table column name (Input1
) and one of the following (Input2
),
depending on the operator:
- no second input, for example for
ToInteger
operation - second input column, for example to add values of each column
- constant input value, for example to add a constant to all values in a column
The second input value (Input2
) can be a column name or a constant value,
with the result being placed in the output column (Output
).
Output that cannot be computed is set to the NonValue
value.
Inputs can generally be any combination of double precision and integer values.
Command Editor
The following dialog is used to edit the command and illustrates the syntax of the
command (in this case illustrating how values in a column named ts1
are added to the number .1111.
TableMath
Command Editor (see also the full-size image)
Command Syntax
The command syntax is as follows:
TableMath(Parameter="Value",...)
Command Parameters
Parameter | Description | Default |
---|---|---|
TableID required |
The identifier for the table to process, can be specified with ${Property} . |
None – must be specified. |
Condition |
A condition to match rows to be deleted. Can use ${Property} to specify row number. See additional information in the Tables appendix. |
Condition or row number must be specified. |
DeleteRowNumbers |
The row number(s) to process as comma-separated list of row numbers, currently limited to:first - process the first row in the tablelast - process the last row in the tableCan use ${Property} . |
Process all rows. |
Input1 required |
First input column name, can be specified with ${Property} . |
None – must be specified. |
Operator required |
The operator to be applied as follows:Input1 Operator Input2 = Output For example: Input1 * Input2 = Output |
None – must be specified. |
Input2 |
Second input column name, or a constant value to use as input, can be specified with ${Property} . |
Required for some operators. Not required for ToInteger . |
Output required |
Output column name. If the column is not found it will be added to the table using the same data type as the input column and will contain the results of processing, can be specified with ${Property} . The output column name can be the same as input to overwrite input. |
None – must be specified. |
NonValue |
The value to use in cases where an output result could not be computed (missing input, division by zero). Null will result in blanks in output whereas NaN may be shown in some output products, depending on the specifications for the format. | Null |
Supported Operators and Input
Operator | Input1 |
Input2 |
Output Description |
---|---|---|---|
= |
Table column name. | Assign a value from the input column to the output column. | |
+ |
Table column name. | Table column name or a constant value. | Add the input values and set in the output column. |
- |
Table column name. | Table column name or a constant value. | Subtract the second input from the first and set in the output column. |
* |
Table column name. | Table column name or a constant value. | Multiply the input values and set in the output column. |
/ |
Table column name. | Table column name or a constant value. | Divide the first input value by the second and set in the output column. |
Cumulate |
Table column name. | Cumulate the input values into the output column. The initial value (prior to the first row) is zero and therefore the first cumulative value will be the first row's input value. Missing values in the input will result in no cumulative value being computed and the cumulation will begin at the next non-missing value. If necessary, use other commands such as TableMath = operator to assign a different initial value. |
|
Delta |
Table column name. | Compute a difference (delta) by subtracting the input column's previous row value from the current row value. The initial value is is zero and therefore the first cumulative value will be the first row's input value. Missing values in the input will result in no delta value being computed. If necessary, use other commands such as TableMath = operator to assign a different initial value. |
|
ToInteger |
Table column name. | Convert the input to an integer and set in the output column. |
Examples
See the automated tests.
Troubleshooting
See Also
CalculateTimeSeriesStatistic
commandFormatTableDateTime
commandFormatTableString
commandManipulateTableString
command