Drop all entries of a category based on one condition

I'm working with a 745820x4 table containing the PermNo., date, CUSIP and stock price of a multitude of shares. The data is sorted such that the full time series of a stock is listed below the full time series of the following stock and so forth. (Pls see photo below). I am trying to exclude companies from the sample once their share price drops below 1USD based on the unique identifier CUSIP in column 3. I have started to try with a combination of a for and an if loop but i cant figure out how it could even work. So for example in the picture below, the share price of the company with the CUSIP 89026070 has share price below USD 1 and i now want to drop all entries for the respective comany.
nRows = size(crsp,1)
for i = 1:nRows
if crsp{i,4}<1
...
end

 Accepted Answer

nRows = height(crsp)
for i = 1:nRows
if crsp.PRC(i)<1
crsp(crsp.CUSIP==crsp.CUSIP(i),:)=[];
end
end
It might also be possible to use logical indexing and ismember to accomplish this without using a for loop.

1 Comment

Thank you Sir! Your first solution worked as I am looking for the price to fall below USD1 not the CUSIP. I appreciate your help!

Sign in to comment.

More Answers (0)

Categories

Find more on Financial Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!