Is -99 coded as missing? If so, proc means won't get you what you need (and neither will this though it can be easily modified).
Assuming this is a SAS data set (since it's a SAS forum) here's how I'd do it in SAS.
data exclusion_list;
set have;
by id;
retain tot_miss;
array _vars(*) ex: int: ut:;
nmissing = nmiss(of _vars(*));
if first.id then tot_miss=0;
tot_miss + nmissing;
if last.id then pct_missing = tot_miss / dim(_vars)*3;
if pct_missing >= 0.75;
keep id;
run;
proc sql;
create table included_records as
select *
from have
where id not in (select id from exclusion_list);
quit;
... View more