Subversion Repositories wimsdev

Rev

Rev 4161 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
20 reyssat 1
!if $wims_read_parm!=slib_header
2
 !goto proc
3
!endif
4
slib_title=Data median
5
slib_parms=1\
6
 ,[data] or [data],[weight]
7
slib_author=Adeline Grelot and Bernadette PERRIN-RIOU
8
slib_out= statistic median
9
slib_comment=Data and weight can be recognized under many formats, \
10
 in particular as a matrix (with data before weight).
11
slib_example=[2,-7,6]\
12
[2,-7,6;1,1,4]\
13
[2,1;-7,1;6,4]\
14
[2,-7,6],[1,1,4]
15
 
16
!exit
17
 
18
:proc
19
 
20
!readproc slib/stat/dataproc $wims_read_parm
21
 slib_cnt=!itemcnt item $slib_data
22
!if $slib_cnt=0
23
 slib_out=0
24
!else
25
!if $slib_weight<>$empty
26
slib_d=$empty
27
!for slib_i =1 to $slib_cnt
28
slib_w=!item $slib_i of $slib_weight
29
slib_j=!item $slib_i of $slib_data
30
slib_r = !values $slib_j for x=1 to $slib_w
31
slib_d=!append item $slib_r to $slib_d
32
!next slib_i
33
slib_data=$slib_d
34
slib_cnt=!itemcnt item $slib_data
35
!endif
36
 slib_fml=$empty
37
 
38
 !for slib_t in  $slib_data
39
  !!slib_t=!item $slib_i of $slib_data
40
  slib_fml=!append item $[$slib_t] to $slib_fml
41
 !next slib_i
42
 slib_fml=!sort numeric item $slib_fml
43
 !if $[$slib_cnt%2]=1
44
  slib_out=!item $[($slib_cnt+1)/2] of $slib_fml
45
 !else
46
  slib_t1=!item $[$slib_cnt/2] of $slib_fml
47
  slib_t2=!item $[$slib_cnt/2+1] of $slib_fml
48
  slib_out=$[($slib_t1+$slib_t2)/2]
49
 !endif
50
!endif 
51
slib_out =!trim $slib_out