The Altair Community is migrating to a new platform to provide a better experience for you. In preparation for the migration, the Altair Community is on read-only mode from October 28 - November 6, 2024. Technical support via cases will continue to work as is. For any urgent requests from Students/Faculty members, please submit the form linked here

How to use one attribute to subtract against another attribute

c_cheec_chee Member Posts: 19 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?


Thanks
Chee


Best Answer

  • c_cheec_chee Member Posts: 19 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.

Answers

  • c_cheec_chee Member Posts: 19 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.

    Thanks
    Chee

Sign In or Register to comment.