From 7e4b92e4595a1fc7873692624a242a6af847fe50 Mon Sep 17 00:00:00 2001 From: Marcus Kammer Date: Sat, 24 Feb 2024 10:21:55 +0100 Subject: [PATCH] Add functions to calc stats --- bundle/bundle--stats.el | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/bundle/bundle--stats.el b/bundle/bundle--stats.el index e69de29b..23502ff9 100644 --- a/bundle/bundle--stats.el +++ b/bundle/bundle--stats.el @@ -0,0 +1,23 @@ +(defun evenp (number) + (if (= 0 (% number 2)) + t + nil)) + +(defun oddp (number) + (not (evenp number))) + +(defun stats:mean (list) + (/ (apply #'+ list) (float (length list)))) + +(defun stats:median (list) + (let* ((sorted (sort (copy-sequence list) #'<)) + (len (length sorted)) + (mid (floor (/ len 2)))) + (if (evenp len) + (/ (+ (nth mid sorted) (nth (1- mid) sorted)) 2.0) + (nth mid sorted)))) + +(defun stats:standard-deviation (list) + (let ((m (stats:mean list))) + (sqrt (/ (seq-reduce (lambda (x acc) (+ x (expt (- x m) 2))) list 0) + (length list)))))