How to use one attribute to subtract against another attribute

c_cheec_chee Member Posts: 18 Maven
In a dataset, the attribute names are:
State   2020  2019  2018  2017  2016

What is required is the difference between the numeric columns, say:
column diff2020 = column 2020 - column 2019.

I've tried using loop_attribute operator. Inside this loop process, I have a Generate Attribute operator.
For this Generate Attribute operator:
the attribute_name is:    diff_%{loop_attribute}
the function expression is:    eval(%{loop_attribute}) - eval(%{loop_attribute}-1)

the above is an incorrect function expression. What should the correct function expression be?


Best Answer

  • Options
    c_cheec_chee Member Posts: 18 Maven
    Solution Accepted
    Found the answer. 

    In the Generate Attribute, the function expression syntax is: (#{loop_var} - #{prevloop_var})/ #{prevloop_var}

    This is the column based operations to calculate relative difference between two consecutive years.

    The attribute(column) names are loop_var created using Set Macro and the calculated name prevloop_var using Generate Macro.


  • Options
    c_cheec_chee Member Posts: 18 Maven
    following above, I've discovered the syntax for column is the square brackets.

    So it would be something like [2020] - [2019]    if we write manually.
    But programmatically for many columns, it should be:
       [%{loop_attribute} ]   - [ %{loop_attribute} -1 ]

    Obviously, the syntax above is wrong. But can anyone tell me what should the syntax be, that can be entered into the Generate Attributes field.


Sign In or Register to comment.