I only want to include the observations that have observations through the whole timeframe.
4 次查看(过去 30 天)
显示 更早的评论
I have 979588 x 12 table with US stocks from 1963 - 2011. It's a total of 6411 different stocks. I want to remove all the stocks that have not been listed the entire time. The first column is an identification number for the specific stock called permno. If sum(permno == 10000) is 588, where 10000 is the identification number, it means the stock with id 10000 has been listed the whole time. So I want to remove all the stocks that don't meet the criteria: sum(permno == 10000) is 588. How do I go about this?
采纳的回答
dpb
2021-7-22
NFULL=588; % the full file number -- use variables instead of "magic numbers" in code
tSave=groupfilter(tTable,'Permnoco',@(x)numel(x)==NFULL,'Permnoco');
You didn't tell us what the variable name is for the table; substitute that in for "tTable" above.
The variable name according to the above image is 'Permnoco' not 'permno'; obviously also use the correct name inside the table.
See doc groupfilter for details on the syntax.
6 个评论
Peter Perkins
2021-7-26
There's probably a half dozen simple-ish ways to do this, but kudos to dpd for spotlighting the relatively new groupfilter. Exactly what it is aimed at!
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Financial Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!