Menu

[r350]: / XSTAT.MPL  Maximize  Restore  History

Download this file

48 lines (36 with data), 1.1 kB

/*
  SOME BASIC STATISTIC PROGRAMMING EXAMPLES
  HTTPS://DOCS.PYTHON.ORG/3/LIBRARY/STATISTICS.HTML
*/

##LIBHDR

DATA.LOAD(FN;V,F,S!.STR127) (F=SELECTINPUT(FINDINPUT(FN))) ? [
  V=0; READS(S$) @ [
    V=VOLD(V,VLEN(V)+1); .ROFS(V!(VLEN(V)-1)=VNEW(.REAL),S$)
  ]; V
]

DATA.PRINT(V;I;S%32) [
  I=-1; ++I<VLEN(V) @ WRITEF(" %S",.SOFR(S$,V!I,2,2)); NEWLINE()
]

DATA.POINTS(V,R) .ROFI(R,VLEN(V))

DATA.SUM(V,R;I) [
  .ROFS(R,"0"); I=-1; ++I<VLEN(V) @ .RADD(R,R,V!I); R
]

DATA.MEAN(V,R;N!.REAL) [
  DATA.SUM(V,R); .RDIV(R,R,DATA.POINTS(V,N$))
]

DATA.MEDIAN(V,R;I,T!.REAL) [
  I=>>VLEN(V); .RDIV(R,.RADD(R,V!(I-1),V!I),.ROFS(T$,"2"))
]

DATA.SORT(V) QSORT(V,V!(VLEN(V)-1)$,.RCMP)

.(;DATA,S%32,R!.REAL) [
  (DATA=DATA.LOAD("XSTAT.TXT")) ? [
    WRITES("DATA   ="); DATA.PRINT(DATA);
    DATA.SORT(DATA);
    WRITES("SORTED ="); DATA.PRINT(DATA);
    WRITEF("SUM    = %S*N",.SOFR(S$,DATA.SUM (DATA,R$),2,2));
    WRITEF("MEAN   = %S*N",.SOFR(S$,DATA.MEAN(DATA,R$),2,2));
    WRITEF("MEDIAN = %S*N",.SOFR(S$,DATA.MEDIAN(DATA,R$),2,2));
    WEND(DATA)
  ];
  VUSE()
]

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.