data a1; input Rep Gen sire dam animal y1 y2 y3; cards; 1 1 2 10001 20001 341.561 140.218 -1.32 1 1 3 10002 20002 316.23 143.202 -0.598 Proc sort;by gen; proc means noprint;by gen;var y1 y2 y3; output out=m1 mean=y1 y2 y3; proc print; run;