1) Don't include the character variables in the VAR statement and PROC TRANSPOSE will not convert your numeric variables to character.
2) If you must include the character variables then attach a format to the numeric variables that is long enough.
Example:
data have ;
length bins $30.;
input bins CM1DW20D CM3DW20D ;
datalines;
Acinetobacter 2477.123456789 195
Bletilla 2412 116.123456789
;
proc print width=min; title 'HAVE';
format _numeric_ best32.;
run;
proc transpose data=have out=want1;
by bins;
run;
proc print width=min; title 'WANT1';
format _numeric_ best32.;
run;
proc transpse data=have out=want2;
by bins;
var _all_;
format _numeric_ best32.;
run;
proc print width=min; title 'WANT2';
run;
title;
HAVE
Obs bins CM1DW20D CM3DW20D
1 Acinetobacter 2477.123456789 195
2 Bletilla 2412 116.123456789
WANT1
Obs bins _NAME_ COL1
1 Acinetobacter CM1DW20D 2477.123456789
2 Acinetobacter CM3DW20D 195
3 Bletilla CM1DW20D 2412
4 Bletilla CM3DW20D 116.123456789
WANT2
Obs bins _NAME_ COL1
1 Acinetobacter bins Acinetobacter
2 Acinetobacter CM1DW20D 2477.123456789
3 Acinetobacter CM3DW20D 195
4 Bletilla bins Bletilla
5 Bletilla CM1DW20D 2412
6 Bletilla CM3DW20D 116.123456789
... View more