| **Navigation:**  [[templates.htm|Templates]] > Guide to all Templates > [[additional libraries and templates.htm|Additional Libraries and Templates]] > Statistics Library >====== PERCENTILE (pth percentile value of a set) ====== | [[mode mode of a set .htm|{{btn_prev_n.gif|Previous page}}]][[additional libraries and templates.htm|{{btn_home_n.gif|Return to chapter overview}}]][[rangeofset range of a set .htm|{{btn_next_n.gif|Next page}}]] | | || **PERCENTILE**(dataset,percentile) {{blk2blue.jpg|blk2blue.jpg}} | **PERCENTILE** | Returns a value that divides an ordered numeric data set into two portions of specified relative size. | | dataset | The label of a QUEUE with its first component field defined as a REAL. | | percentile | A numeric constant or variable containing an integer value in the range: 1 >= p <;= 99 . | **PERCENTILE **computes a value such that at most pth% of the set's values are less than the amount, and at most 100 - pth% of the set's values are greater than the amount. 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,6], the 50th Percentile value is 3.5. In general, the PERCENTILE function is only meaningful when the number of elements in the data set is large (ie. greater than 20). **See also:** [[lowerquartile lower quartile value of a set .htm|LOWERQUARTILE]] [[upperquartile upper quartile value of a set .htm|UPPERQUARTILE]]. {{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** **PercentileOfX   REAL** **DividePoint   REAL(90)** **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** ** PercentileOfX = PERCENTILE(StatSetX,DividePoint) !call PERCENTILE**