Patrick: That worked beautifully! I made some minor modifications and verified with the last print statement that the data included all of the missing zeroes. data select_species; set prob75; if sensor in ('Swift2' 'Swift4' 'Swift6') then trt='switchgrass'; else trt='corn'; if species in ('barswa' 'bnhcow' 'chiswi' 'cliswa' 'comyel' 'dickci' 'easkin' 'easpho' 'fiespa' 'graspa' 'henspa' 'indbun' 'purmar' 'sedwre' 'vesspa'); proc sort; by species trt date; proc means noprint; by species trt date; var prob; output out=species_trt_date n=N_detect; run; data species_trt_date; set species_trt_date; proc sql; create table all_species as select l.species, l.trt, l.date, coalesce(r.N_detect,0) as N_detect from ( select a.species, a.trt, b.date from ( select distinct species, trt from species_trt_date ) a , ( select distinct date from species_trt_date ) b ) l left join species_trt_date r on l.species=r.species and l.trt=r.trt and l.date=r.date order by species, trt, date ; quit; data missing; set all_species; N_detect=0; data add_missing; set species_trt_date missing; proc sort; by species trt date; proc means noprint; by species trt date; var N_detect; output out=add_missing sum=N_detect; proc print data=add_missing; run; Thanks!
... View more