Your result dataset contains a single numeric variable, COL1. This variable has no chance to show its values in a variety of different formats such as 2., 4.1, 5.2 and so on, depending on the values of variable _NAME_.
The FORMAT statement in your PROC TRANSPOSE step refers to the input dataset, not to the output dataset. Nevertheless, it can have an impact on the output dataset, if the transposed variable is character. If you're happy with a character variable COL1 (e.g. for reporting purposes), you could add a dummy character variable to the input dataset and transpose it, in order to force COL1 to be created as a character variable:
proc means ... ... data temp; set temp; dummy=' '; run; proc transpose data = temp out = temp(where=(upcase(_name_) ne 'DUMMY')) prefix = col; var N Mean SD Median Min Max dummy; format N 2. Mean 4.1 SD 5.2 Median 4.1 Min 3. Max 3.; run;
Now, the values of COL1 are nicely formatted (but character).
... View more