使用PROC格式和PROC FCMP转换SAS中的值

使用PROC格式和PROC FCMP转换SAS中的值,sas,format,fcmp,Sas,Format,Fcmp,我需要在SAS程序中编写PROC格式和PROC FCMPI,以将马力值转换为瓦特。瓦特应采用以下格式:XXXXX,XX瓦特 但结果是这样的: 197610. 201339W 如何更改此错误并使格式化列需要输出格式?为您在函数中计算的变量设置长度。如果您想要W前面的空间,则不要使用CATS功能将其移除 length n $14; n = put(c*745.7,commax8.2) || ' Watts' ; 设置格式的默认宽度 value hptow (default=14) other=[

我需要在SAS程序中编写PROC格式和PROC FCMPI,以将马力值转换为瓦特。瓦特应采用以下格式:XXXXX,XX瓦特

但结果是这样的:

197610.
201339W

如何更改此错误并使格式化列需要输出格式?

为您在函数中计算的变量设置长度。如果您想要W前面的空间,则不要使用CATS功能将其移除

length n $14;
n = put(c*745.7,commax8.2) || ' Watts' ;
设置格式的默认宽度

value hptow (default=14) other=[hptow()];
但是为什么不使用图片格式呢

proc format ;
picture hptow 
 low-high = '00009,99 Watt' (mult=74570) 
;
run;
结果:

410   data test;
411     do hp=1,2,5,12 ;
412       w=hp*745.7 ;
413       put hp= w= @20 hp hptow.;
414     end;
415   run;

hp=1 w=745.7         745,70 Watt
hp=2 w=1491.4       1491,40 Watt
hp=5 w=3728.5       3728,50 Watt
hp=12 w=8948.4      8948,40 Watt

为正在函数中计算的变量设置长度。如果您想要W前面的空间,则不要使用CATS功能将其移除

length n $14;
n = put(c*745.7,commax8.2) || ' Watts' ;
设置格式的默认宽度

value hptow (default=14) other=[hptow()];
但是为什么不使用图片格式呢

proc format ;
picture hptow 
 low-high = '00009,99 Watt' (mult=74570) 
;
run;
结果:

410   data test;
411     do hp=1,2,5,12 ;
412       w=hp*745.7 ;
413       put hp= w= @20 hp hptow.;
414     end;
415   run;

hp=1 w=745.7         745,70 Watt
hp=2 w=1491.4       1491,40 Watt
hp=5 w=3728.5       3728,50 Watt
hp=12 w=8948.4      8948,40 Watt

尝试设置格式的长度。默认值为8个字符,看起来您的格式会更长。值hptow default=20其他=[hptow];您是否使用逗号作为十进制分隔符?Windows中的系统本地化是什么?可以在“区域设置”下找到“设置格式长度”。默认值为8个字符,看起来您的格式会更长。值hptow default=20其他=[hptow];您是否使用逗号作为十进制分隔符?您的系统在Windows中的定位是什么?在区域设置下可以找到。因此,可能值得注意的是,CAT正在删除数字和瓦特之间的空格-您可以在代码中修复它,但可能值得明确提及。也可能值得注意的是,CAT正在删除数字和瓦特之间的空间-您在代码中修复了它,但可能值得明确提及。