| **Navigation:**  [[templates.htm|Templates]] > Guide to all Templates > [[additional libraries and templates.htm|Additional Libraries and Templates]] > Statistics Library >====== MIDRANGE (midrange of a set) ====== | [[median median of a set .htm|{{btn_prev_n.gif|Previous page}}]][[additional libraries and templates.htm|{{btn_home_n.gif|Return to chapter overview}}]][[mode mode of a set .htm|{{btn_next_n.gif|Next page}}]] | | || **MIDRANGE**(//dataset//) {{blk2blue.jpg|blk2blue.jpg}} | **MIDRANGE** | Returns the average of the highest and lowest value in a numeric set. | | //dataset// | The label of a QUEUE with its first component field defined as a REAL. | **MIDRANGE **computes the mean of the smallest and largest values in a data set. 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 midrange is (1 + 5) / 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** **MidrangeOfSet   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** ** MidrangeOfSet = MIDRANGE(StatSetX) !call MIDRANGE**