<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Accessing data with Stdev and Variance aggregation in place in Developer</title>
    <link>https://community.fabric.microsoft.com/t5/Developer/Accessing-data-with-Stdev-and-Variance-aggregation-in-place/m-p/3940075#M52781</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The user is able to select an aggregation type in the frontend by clicking the down arrow on a number series (e.g. Sum, Min, Max, Count). I have identified that which method they pick is stored within expr.func (I hope this helps someone; it took me a while to find it). I built the following mapping to let me apply the correct calculation based on expr.func. But it won't work for stdev or variance. After some hunting, I realise that when Stdev or Variance is selected by the user, the values passed into&amp;nbsp;&lt;SPAN&gt;options&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;dataViews&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;].&lt;/SPAN&gt;&lt;SPAN&gt;categorical&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;values&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;numberIndex&lt;/SPAN&gt;&lt;SPAN&gt;].&lt;/SPAN&gt;&lt;SPAN&gt;values are all zeroes (e.g. [0,0,0,0]). I would expect this if the numbers are identical, but they are not.&lt;BR /&gt;&lt;BR /&gt;To put it another way, the following log &lt;/SPAN&gt;&lt;SPAN&gt;console&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;log&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;options&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;dataViews&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;].&lt;/SPAN&gt;&lt;SPAN&gt;categorical&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;values&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;numberIndex&lt;/SPAN&gt;&lt;SPAN&gt;].&lt;/SPAN&gt;&lt;SPAN&gt;values&lt;/SPAN&gt;&lt;SPAN&gt;); outputs [3000, 2000, 1000, 5000] if I have Sum selected, but [0,0,0,0] if I have Stdev selected. Is Stdev/variance not supported for custom visuals or is there some kind of rounding issue going on - and if so how do i fix it please?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;export const AGGREGATION_METHODS = {
    0: { name: 'sum', calculate: (values: number[]) =&amp;gt; values.reduce((a, b) =&amp;gt; a + b, 0) },
    1: { name: 'avg', calculate: (values: number[]) =&amp;gt; values.reduce((a, b) =&amp;gt; a + b, 0) / values.length },
    2: { name: 'count distinct', calculate: (values: number[]) =&amp;gt; new Set(values).size },
    3: { name: 'min', calculate: (values: number[]) =&amp;gt; Math.min(...values) },
    4: { name: 'max', calculate: (values: number[]) =&amp;gt; Math.max(...values) },
    5: { name: 'count', calculate: (values: number[]) =&amp;gt; values.length },
    6: { name: 'median', calculate: (values: number[]) =&amp;gt; {
            const sorted = values.slice().sort((a, b) =&amp;gt; a - b);
            const mid = Math.floor(sorted.length / 2);
            return sorted.length % 2 !== 0 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2;
        }
    },
    7: { name: 'stdev', calculate: (values: number[]) =&amp;gt; {
            const mean = values.reduce((sum, v) =&amp;gt; sum + v, 0) / values.length;
            const variance = values.reduce((sum, v) =&amp;gt; sum + Math.pow(v - mean, 2), 0) / (values.length - 1);
            return Math.sqrt(variance);
        }
    },
    8: { name: 'variance', calculate: (values: number[]) =&amp;gt; {
            const mean = values.reduce((a, b) =&amp;gt; a + b, 0) / values.length;
            return values.reduce((a, b) =&amp;gt; a + Math.pow(b - mean, 2), 0) / values.length;
        }
    },
};&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 22 May 2024 14:16:07 GMT</pubDate>
    <dc:creator>VizDataLtd</dc:creator>
    <dc:date>2024-05-22T14:16:07Z</dc:date>
    <item>
      <title>Accessing data with Stdev and Variance aggregation in place</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Accessing-data-with-Stdev-and-Variance-aggregation-in-place/m-p/3940075#M52781</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The user is able to select an aggregation type in the frontend by clicking the down arrow on a number series (e.g. Sum, Min, Max, Count). I have identified that which method they pick is stored within expr.func (I hope this helps someone; it took me a while to find it). I built the following mapping to let me apply the correct calculation based on expr.func. But it won't work for stdev or variance. After some hunting, I realise that when Stdev or Variance is selected by the user, the values passed into&amp;nbsp;&lt;SPAN&gt;options&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;dataViews&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;].&lt;/SPAN&gt;&lt;SPAN&gt;categorical&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;values&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;numberIndex&lt;/SPAN&gt;&lt;SPAN&gt;].&lt;/SPAN&gt;&lt;SPAN&gt;values are all zeroes (e.g. [0,0,0,0]). I would expect this if the numbers are identical, but they are not.&lt;BR /&gt;&lt;BR /&gt;To put it another way, the following log &lt;/SPAN&gt;&lt;SPAN&gt;console&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;log&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;options&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;dataViews&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;].&lt;/SPAN&gt;&lt;SPAN&gt;categorical&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;values&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;numberIndex&lt;/SPAN&gt;&lt;SPAN&gt;].&lt;/SPAN&gt;&lt;SPAN&gt;values&lt;/SPAN&gt;&lt;SPAN&gt;); outputs [3000, 2000, 1000, 5000] if I have Sum selected, but [0,0,0,0] if I have Stdev selected. Is Stdev/variance not supported for custom visuals or is there some kind of rounding issue going on - and if so how do i fix it please?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;export const AGGREGATION_METHODS = {
    0: { name: 'sum', calculate: (values: number[]) =&amp;gt; values.reduce((a, b) =&amp;gt; a + b, 0) },
    1: { name: 'avg', calculate: (values: number[]) =&amp;gt; values.reduce((a, b) =&amp;gt; a + b, 0) / values.length },
    2: { name: 'count distinct', calculate: (values: number[]) =&amp;gt; new Set(values).size },
    3: { name: 'min', calculate: (values: number[]) =&amp;gt; Math.min(...values) },
    4: { name: 'max', calculate: (values: number[]) =&amp;gt; Math.max(...values) },
    5: { name: 'count', calculate: (values: number[]) =&amp;gt; values.length },
    6: { name: 'median', calculate: (values: number[]) =&amp;gt; {
            const sorted = values.slice().sort((a, b) =&amp;gt; a - b);
            const mid = Math.floor(sorted.length / 2);
            return sorted.length % 2 !== 0 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2;
        }
    },
    7: { name: 'stdev', calculate: (values: number[]) =&amp;gt; {
            const mean = values.reduce((sum, v) =&amp;gt; sum + v, 0) / values.length;
            const variance = values.reduce((sum, v) =&amp;gt; sum + Math.pow(v - mean, 2), 0) / (values.length - 1);
            return Math.sqrt(variance);
        }
    },
    8: { name: 'variance', calculate: (values: number[]) =&amp;gt; {
            const mean = values.reduce((a, b) =&amp;gt; a + b, 0) / values.length;
            return values.reduce((a, b) =&amp;gt; a + Math.pow(b - mean, 2), 0) / values.length;
        }
    },
};&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 22 May 2024 14:16:07 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Accessing-data-with-Stdev-and-Variance-aggregation-in-place/m-p/3940075#M52781</guid>
      <dc:creator>VizDataLtd</dc:creator>
      <dc:date>2024-05-22T14:16:07Z</dc:date>
    </item>
    <item>
      <title>Re: Accessing data with Stdev and Variance aggregation in place</title>
      <link>https://community.fabric.microsoft.com/t5/Developer/Accessing-data-with-Stdev-and-Variance-aggregation-in-place/m-p/3943039#M52810</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/679652"&gt;@VizDataLtd&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;May I confirm if your question pertains to Power BI? If so, could you kindly provide some data or screenshots to help me better understand the problem? Thank you.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Best Regards&lt;/P&gt;</description>
      <pubDate>Thu, 23 May 2024 10:04:34 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Developer/Accessing-data-with-Stdev-and-Variance-aggregation-in-place/m-p/3943039#M52810</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2024-05-23T10:04:34Z</dc:date>
    </item>
  </channel>
</rss>

