SAS中文论坛
标题:
如何将数据集中的数值型转换为字符型?保留和数值型的位数一样,谢谢!
[打印本页]
作者:
shiyiming
时间:
2011-10-5 23:49
标题:
如何将数据集中的数值型转换为字符型?保留和数值型的位数一样,谢谢!
data aaa;
input x@@;
cards;
1
10.5
100.55
;
run;
如何将数据集中的数值型转换为字符型?保留和数值型的位数一样,谢谢!
作者:
shiyiming
时间:
2011-10-6 13:30
标题:
Re: 如何将数据集中的数值型转换为字符型?保留和数值型的位数一样,谢谢!
y=put(x,best.);
作者:
shiyiming
时间:
2011-10-6 18:28
标题:
Re: 如何将数据集中的数值型转换为字符型?保留和数值型的位数一样,谢谢!
但是y这个变量的长度还是12啊 能否自动变为取值中的最长字符
作者:
shiyiming
时间:
2011-10-7 09:12
标题:
Re: 如何将数据集中的数值型转换为字符型?保留和数值型的位数一样,谢谢!
两种土办法:
[code:1gjx6w1t]*the one;
data _null_;
set a;
varlen=vlength(x);
call symputx('n',varlen);
stop;
run;
data b;
set a(rename=(x=_x));
x=put(_x,best&n..);
run;
*the another one;
data _a;set a;varlen=vlength(x);run;
%macro varlen;
%let id=%sysfunc(open(_a));
%let nobs=%sysfunc(attrn(&id,nobs));
%syscall set(id);
%do i=1 %to &nobs;
%let rc=%sysfunc(fetchobs(&id,&i));
data c(drop=varlen);
set _a(rename=(x=_x));
x=put(_x,best&varlen..);
run;
%end;
%let id=sysfunc(close(&id));
%mend;
%varlen;
[/code:1gjx6w1t]
欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/)
Powered by Discuz! X3.2