Assume I have a recordset as this :
a1 a2 a3
1 1 2
2 2 1
1 2 1
and I want to convert it from absolute value to percentage so my outcome becomes like this :
a1 a2 a3
25% 25% 40%
50% 25% 40%
25% 50% 20%
Or in other words, for each of my attributes I want to get the sum by attribute, and then for each of the value the percentage.
I thought I would be able to do this with the loop attributes operator but I am not able to select the content so I'm doing something wrong somewhere.
What would be the easiest way to approach this?
Solved! Go to Solution.
The percentages in your example don't seem to line up properly, but based on your description, I think the fractional count function in the Aggregate operator does what you want. You just have to specify to group by your primary id variable, so it won't really be aggregating if you have no duplicates in your dataset. But that's fine. Note that if you want row percentages rather than column percentages you can do something similar with Generate Aggregation.
The Normalize operator has the useful option "proportion transformation" that rescales numeric attributes to be their fractional contribution out of 1. Use Generate Attributes to multiply this by 100 to get a percentage.