| **Navigation:**  [[templates.htm|Templates]] > Guide to all Templates > [[additional libraries and templates.htm|Additional Libraries and Templates]] > Statistics Library >====== MEDIAN (median of a set) ====== | [[mean mean of a set .htm|{{btn_prev_n.gif|Previous page}}]][[additional libraries and templates.htm|{{btn_home_n.gif|Return to chapter overview}}]][[midrange midrange of a set .htm|{{btn_next_n.gif|Next page}}]] | | || **MEDIAN**(//dataset//) {{blk2blue.jpg|blk2blue.jpg}} | **MEDIAN** | Returns the middle value of an ordered numeric data set. | | //dataset// | The label of a QUEUE with its first component field defined as a REAL. | **MEDIAN **finds the value which is exactly in the middle when all of the data is in (sorted) order from low to high, or the mean of the two data values which are nearest the middle. The function operates on the numeric set defined by all the entries in the first component of the designated QUEUE (//dataset//). For example, given the data set: [1,2,3,4,5] the median is 3, or given the data set: [1,2,4,5] the median is (2 + 4) / 2 = 3. {{notebox.jpg|NoteBox.jpg}} The passed data set does not have to be sorted. The function copies the passed set. The passed data set is unchanged. **Return DataType:**     REAL **Example:** **StatSetX  QUEUE,PRE()** **X       REAL** **      END** **MedianOfSet  REAL** **CODE  ** ** FREE(StatSetX)                   !free the QUEUE** ** CLEAR(STADAT:RECORD)             !clear the record buffer** ** STADAT:Id = STA:Id               !prime the record buffer** ** STADAT:ItemNumber = 1** ** SET(STADAT:KeyIdItemNumber,STADAT:KeyIdItemNumber !position file pointer** ** LOOP                             !load the QUEUE** **   NEXT(StatisticsData)           !read next record** **   IF ERRORCODE() OR STADAT:Id NOT = STA:Id** **     BREAK** **   ELSE** **     StatSetX:X = STADAT:X         !load the QUEUE buffer** **     ADD(StatSetX)                 !add to the QUEUE** **   END** ** END** ** MedianOfSet = MEDIAN(StatSetX)    !call MEDIAN**