home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.perl
- Path: sparky!uunet!spool.mu.edu!yale.edu!qt.cs.utexas.edu!cs.utexas.edu!hermes.chpc.utexas.edu!news.utdallas.edu!convex!tchrist
- From: Tom Christiansen <tchrist@convex.COM>
- Subject: Re: Statistic routines ?
- Originator: tchrist@pixel.convex.com
- Sender: usenet@news.eng.convex.com (news access account)
- Message-ID: <1992Dec15.155017.14450@news.eng.convex.com>
- Date: Tue, 15 Dec 1992 15:50:17 GMT
- Reply-To: tchrist@convex.COM (Tom Christiansen)
- References: <Bz7qCA.Gy5@cosy.sbg.ac.at>
- Nntp-Posting-Host: pixel.convex.com
- Organization: Convex Computer Corporation, Colorado Springs, CO
- Keywords: statistic
- X-Disclaimer: This message was written by a user at CONVEX Computer
- Corp. The opinions expressed are those of the user and
- not necessarily those of CONVEX.
- Lines: 65
-
- From the keyboard of lendl@cosy.sbg.ac.at (Otmar Lendl):
- :I have to do some statistical analysis of data I gather with
- :perl scripts, so it would be convenient to use perl for that
- :purpose, too.
- :
- :Before I start to write my own set of functions (Mean, standard-deviation,
- :histograms, ...) I better ask if there are already such beasts.
- :I checked the script-archives listed in the FAQs (convex, ohio-state),
- :but could not find anything suitable.
-
- Here's something I hacked out yesterday. The format is
-
- title<tab>a b c d e
-
- where the letters are the number of scores of value 1..5;
-
- --tom
-
-
- #!/usr/bin/perl
- $[ = 1;
- while (<>) {
- if (/^\s*$/) {
- print;
- next;
- }
- $v = $mean = $sum = $n = $sdev = 0;
-
- ($title, $figures) = /^([^\t]+)\t+(.*)/;
- split(' ',$figures);
-
- for ($i = 1; $i <= 5; $i++) {
- $n += $_[$i];
- $sum += $i * $_[$i];
- }
-
- $mean = $sum / $n;
-
- for ($i = 1; $i <= 5; $i++) {
- for ($j = 0; $j < $_[$i]; $j++) {
- $v += ($mean - $i) ** 2;
- }
- }
- $v /= $n;
- $sdev = sqrt($v);
-
- write;
-
- }
-
- format STDOUT_TOP =
- Course Title N Mean Std Dev
- ========================== === ===== =======
- .
-
- format STDOUT =
- @<<<<<<<<<<<<<<<<<<<<<<<<< @## @#.## @#.##
- $title, $n, $mean, $sdev
- .
-
- --
- Tom Christiansen tchrist@convex.com convex!tchrist
- Even if you aren't in doubt, consider the mental welfare of the person who
- has to maintain the code after you, and who will probably put parens in
- the wrong place. --Larry Wall in the perl man page
-