How to change regular attribute by appending macro and use that attribute for calculation

sgnarkhede2016
sgnarkhede2016 New Altair Community Member
edited November 2024 in Community Q&A
Hello,

I have the regular attribute name  "atttribute_W" , the W is coming from my macro and append to  atttribute 
next time regular attribute changes to "atttribute_Y" as per my config macro

When I am using this in generate attribute for calculation I getting error "erroneous expression"
Value_%{macro1}                if (Profile=="High",attribute_%{maco1}*100,
                                             if (Profile=="Medium",attribute_%{maco1}*200,
                                             attribute_%{maco1}*300))



Best Answer

  • sgnarkhede2016
    sgnarkhede2016 New Altair Community Member
    Answer ✓
    Its work for me before I did not use quotes for attributes names that's why not working
    round(eval("AARPI_TXN_SD_CNT_"+%{initial}))

Answers

  • varunm1
    varunm1 New Altair Community Member
    Hello @sgnarkhede2016

    Can you provide your process as .rmp file? You can export from rapidminer using File --> Export process and attach it here. Also, did you check if macro names are correct?

  • Marco_Barradas
    Marco_Barradas
    Altair Employee
    Hi @sgnarkhede2016 if you what to use the value of the macro you need to use eval(%macro_name) and you'll also need to use concatenate if you expect to have macro=10 to obtain attribute_10
  • sgnarkhede2016
    sgnarkhede2016 New Altair Community Member
    edited April 2020
    It works only for the attribute name "check_%{initial}"  but when used in expression it won't work.
    check_%{initial}   score_%{initial}
    e.g.
    score_%{initial} is already calculated in example set i want to calculate the score on that value but %{initial} changes to W, M,HY(week,Month..) as per iteration.
    I tried Concat but it not working for me
  • sgnarkhede2016
    sgnarkhede2016 New Altair Community Member
    Answer ✓
    Its work for me before I did not use quotes for attributes names that's why not working
    round(eval("AARPI_TXN_SD_CNT_"+%{initial}))