Outliers, removing 1st and 99th percentiles in dataset

11 views (last 30 days)
Hi, here is my problem :
I have a dataset called "COMP" which includes many variables such as DY, etc...
The variable "DY" includes many zeros (approx 59300) and some negative numbers while the reste is positive for a total of 90483 observations.
I would like to create a function that removes the rows for the observations below the 1st and above the 99th percentiles.
Here is what i have been trying so far :
COMP = sortrows(COMP,'DY','ascend'); find(COMP.DY == prctile(COMP.DY,1))
The problem is that i dont want to remove all the zeros .. just the 1st percentile ....
Thanks for your help

Accepted Answer

Roger Wohlwend
Roger Wohlwend on 22 Sep 2014
p = prctile(COMP.DY, [1 99]);
COMP.DY(COMP.DY <= p(1)) = [];
COMP.DY(COMP.DY >= p(2)) = [];

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!