C#.NET * C++ * JAVASCRIPT * PYTHON * XML
* XML-SCHEMA * XPATH * XSL * XSL-FO * SVG * XQUERY * XPROC



XPath / XPath-Funktionen / Zahlenfunktionen / Statistikwerte als Map berechnen

Statistikwerte als Map berechnen

Statistikwerte als Map berechnen

➪ Gebräuchliche Statistikwerte wie sum, min, max, avg, Median, Spannweite, Varianz, Standardabweichung können Sie auch als Map implementieren.


function($x as xs:integer*) {  
  map{
    'sum' : $x => sum(), 
    'avg' : $x => avg(), 
    'min' : $x => min(), 
    'max' : $x => max(), 
    'spannweite' : $x => max() - $x => min(), 
    'median': 
      if($x=>count() mod 2 = 1) 
      then ( 
        ($x => sort())[ ($x=>count() + 1) div 2]
      ) 
      else (
       ( 
          ($x => sort())[ ($x=>count()) div 2] +
          ($x => sort())[ (($x=>count()) div 2) + 1 ]
        )  div 2
      ),
    'anzahl': $x => count(),
    'varianz': $x => for-each( 
            function($w as xs:integer){
              ($w - avg($x)) ! ( . * .)
            } 
          )              
      => sum() div ($x => count()),    
      'standardabweichung': ($x => for-each( 
            function($w as xs:integer){
              ($w - avg($x)) ! ( . * .)
            } 
          )              
      => sum() div ($x => count())) => math:sqrt(),    
    'varianz_stichprobe': $x => for-each( 
            function($w as xs:integer){
              ($w - avg($x)) ! ( . * .)
            } 
          )              
      => sum() div ($x => count() - 1)
    } 
} (1 to 10)

Die Ergebnisse der Zahlenreihe 1 bis 10 ergibt dann über


=> map:get("varianz")

das Resultat:


8.25

=> map:for-each(
     function ($k, $v){ 
       concat( $k, ': ', $v)
     }
   )

max: 10
spannweite: 9
median: 5.5
varianz: 8.25
sum: 55
standardabweichung: 2.8722813232690143
min: 1
avg: 5.5
varianz_stichprobe: 9.166666666666666666666666666666666667
anzahl: 10

wg / 9. Mai 2020



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.



V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/Statistik.html