⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 statist.awk

📁 gawk: linux下资料处理工具
💻 AWK
字号:
function SetUpServer() {  TopHeader = "<HTML><title>Statistics with GAWK</title>"  TopDoc = "<BODY>\   <h2>Please choose one of the following actions:</h2>\   <UL>\    <LI><A HREF=" MyPrefix "/AboutServer>About this server</A></LI>\    <LI><A HREF=" MyPrefix "/EnterParameters>Enter Parameters</A></LI>\   </UL>"  TopFooter  = "</BODY></HTML>"  GnuPlot    = "gnuplot 2>&1"  m1=m2=0;    v1=v2=1;    n1=n2=10}function HandleGET() {  if(MENU[2] == "AboutServer") {    Document  = "This is a GUI for a statistical computation.\      It compares means and variances of two distributions.\      It is implemented as one GAWK script and uses GNUPLOT."  } else if (MENU[2] == "EnterParameters") {    Document = ""    if ("m1" in GETARG) {     # are there parameters to compare?      Document = Document "<SCRIPT LANGUAGE=\"JavaScript\">\        setTimeout(\"window.open(\\\"" MyPrefix "/Image" systime()\         "\\\",\\\"dist\\\", \\\"status=no\\\");\", 1000); </SCRIPT>"      m1 = GETARG["m1"]; v1 = GETARG["v1"]; n1 = GETARG["n1"]      m2 = GETARG["m2"]; v2 = GETARG["v2"]; n2 = GETARG["n2"]      t = (m1-m2)/sqrt(v1/n1+v2/n2)      df = (v1/n1+v2/n2)*(v1/n1+v2/n2)/((v1/n1)*(v1/n1)/(n1-1) \           + (v2/n2)*(v2/n2) /(n2-1))      if (v1>v2) {          f = v1/v2          df1 = n1 - 1          df2 = n2 - 1      } else {          f = v2/v1          df1 = n2 - 1          df2 = n1 - 1      }      print "pt=ibeta(" df/2 ",0.5," df/(df+t*t) ")"  |& GnuPlot      print "pF=2.0*ibeta(" df2/2 "," df1/2 "," \            df2/(df2+df1*f) ")"                    |& GnuPlot      print "print pt, pF"                         |& GnuPlot      RS="\n"; GnuPlot |& getline; RS="\r\n"    # $1 is pt, $2 is pF      print "invsqrt2pi=1.0/sqrt(2.0*pi)"          |& GnuPlot      print "nd(x)=invsqrt2pi/sd*exp(-0.5*((x-mu)/sd)**2)" |& GnuPlot      print "set term png small color"             |& GnuPlot      #print "set term postscript color"           |& GnuPlot      #print "set term gif medium size 320,240"    |& GnuPlot      print "set yrange[-0.3:]"                    |& GnuPlot      print "set label 'p(m1=m2) =" $1 "' at 0,-0.1 left"  |& GnuPlot      print "set label 'p(v1=v2) =" $2 "' at 0,-0.2 left"  |& GnuPlot      print "plot mu=" m1 ",sd=" sqrt(v1) ", nd(x) title 'sample 1',\        mu=" m2 ",sd=" sqrt(v2) ", nd(x) title 'sample 2'" |& GnuPlot      print "quit"                                         |& GnuPlot      GnuPlot |& getline Image      while ((GnuPlot |& getline) > 0)          Image = Image RS $0      close(GnuPlot)    }    Document = Document "\    <h3>Do these samples have the same Gaussian distribution?</h3>\    <FORM METHOD=GET> <TABLE BORDER CELLPADDING=5>\    <TR>\    <TD>1. Mean    </TD>    <TD><input type=text name=m1 value=" m1 " size=8></TD>\    <TD>1. Variance</TD>    <TD><input type=text name=v1 value=" v1 " size=8></TD>\    <TD>1. Count   </TD>    <TD><input type=text name=n1 value=" n1 " size=8></TD>\    </TR><TR>\    <TD>2. Mean    </TD>    <TD><input type=text name=m2 value=" m2 " size=8></TD>\    <TD>2. Variance</TD>    <TD><input type=text name=v2 value=" v2 " size=8></TD>\    <TD>2. Count   </TD>    <TD><input type=text name=n2 value=" n2 " size=8></TD>\    </TR>                   <input type=submit value=\"Compute\">\    </TABLE></FORM><BR>"  } else if (MENU[2] ~ "Image") {    Reason = "OK" ORS "Content-type: image/png"    #Reason = "OK" ORS "Content-type: application/x-postscript"    #Reason = "OK" ORS "Content-type: image/gif"    Header = Footer = ""    Document = Image  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -