474 classes[s]++ |
475 classes[s]++ |
475 sum += s |
476 sum += s |
476 } |
477 } |
477 |
478 |
478 avg := float64(sum) / float64(len(items)) |
479 avg := float64(sum) / float64(len(items)) |
479 fmt.Printf("Average WHO classification: %s (%.2f)\n", |
480 fmt.Fprintf(os.Stderr, "Average WHO classification: %s (%.2f)\n", |
480 WHOPressureClassification[int(0.5+avg)], avg) |
481 WHOPressureClassification[int(0.5+avg)], avg) |
481 |
482 |
482 for c := range WHOPressureClassification { |
483 for c := range WHOPressureClassification { |
483 fmt.Printf(" . %21s: %3d (%d%%)\n", |
484 fmt.Fprintf(os.Stderr, " . %21s: %3d (%d%%)\n", |
484 WHOPressureClassification[c], classes[c], |
485 WHOPressureClassification[c], classes[c], |
485 classes[c]*100/len(items)) |
486 classes[c]*100/len(items)) |
486 } |
487 } |
487 } |
488 } |
488 |
489 |
664 if *avg && len(items) > 0 { |
665 if *avg && len(items) > 0 { |
665 avgMeasure, err := average(items) |
666 avgMeasure, err := average(items) |
666 if err != nil { |
667 if err != nil { |
667 log.Println("Error:", err) |
668 log.Println("Error:", err) |
668 } else { |
669 } else { |
669 fmt.Printf("Average: %d;%d;%d", avgMeasure.Systolic, |
670 fmt.Fprintf(os.Stderr, "Average: %d;%d;%d", |
670 avgMeasure.Diastolic, avgMeasure.Pulse) |
671 avgMeasure.Systolic, avgMeasure.Diastolic, |
|
672 avgMeasure.Pulse) |
671 if *whoClass { |
673 if *whoClass { |
672 fmt.Printf(" [%s]", avgMeasure.WHOClassString()) |
674 fmt.Fprintf(os.Stderr, " [%s]", |
673 } |
675 avgMeasure.WHOClassString()) |
674 fmt.Println() |
676 } |
|
677 fmt.Fprintln(os.Stderr) |
675 } |
678 } |
676 } |
679 } |
677 |
680 |
678 if *stats && len(items) > 1 { |
681 if *stats && len(items) > 1 { |
679 d, err := stdDeviation(items) |
682 d, err := stdDeviation(items) |
680 if err != nil { |
683 if err != nil { |
681 log.Println("Error:", err) |
684 log.Println("Error:", err) |
682 } else { |
685 } else { |
683 fmt.Printf("Standard deviation: %d;%d;%d\n", |
686 fmt.Fprintf(os.Stderr, "Standard deviation: %d;%d;%d\n", |
684 d.Systolic, d.Diastolic, d.Pulse) |
687 d.Systolic, d.Diastolic, d.Pulse) |
685 } |
688 } |
686 d, err = avgAbsoluteDeviation(items) |
689 d, err = avgAbsoluteDeviation(items) |
687 if err != nil { |
690 if err != nil { |
688 log.Println("Error:", err) |
691 log.Println("Error:", err) |
689 } else { |
692 } else { |
690 fmt.Printf("Average absolute deviation: %d;%d;%d\n", |
693 fmt.Fprintf(os.Stderr, "Average absolute deviation: %d;%d;%d\n", |
691 d.Systolic, d.Diastolic, d.Pulse) |
694 d.Systolic, d.Diastolic, d.Pulse) |
692 } |
695 } |
693 } |
696 } |
694 if *stats && len(items) > 0 { |
697 if *stats && len(items) > 0 { |
695 m, err := median(items) |
698 m, err := median(items) |
696 if err != nil { |
699 if err != nil { |
697 log.Println("Error:", err) |
700 log.Println("Error:", err) |
698 } else { |
701 } else { |
699 fmt.Printf("Median values: %d;%d;%d", |
702 fmt.Fprintf(os.Stderr, "Median values: %d;%d;%d", |
700 m.Systolic, m.Diastolic, m.Pulse) |
703 m.Systolic, m.Diastolic, m.Pulse) |
701 if *whoClass { |
704 if *whoClass { |
702 fmt.Printf(" [%s]", m.WHOClassString()) |
705 fmt.Fprintf(os.Stderr, " [%s]", m.WHOClassString()) |
703 } |
706 } |
704 fmt.Println() |
707 fmt.Fprintln(os.Stderr) |
705 } |
708 } |
706 |
709 |
707 if *whoClass { |
710 if *whoClass { |
708 displayWHOClassStats(items) |
711 displayWHOClassStats(items) |
709 } |
712 } |