SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 554|回复: 3
打印 上一主题 下一主题

如何将数据集中的数值型转换为字符型?保留和数值型的位数一样,谢谢!

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-10-5 23:49:46 | 只看该作者

如何将数据集中的数值型转换为字符型?保留和数值型的位数一样,谢谢!

data aaa;
input x@@;
cards;
1
10.5
100.55
;
run;

如何将数据集中的数值型转换为字符型?保留和数值型的位数一样,谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-10-6 13:30:12 | 只看该作者

Re: 如何将数据集中的数值型转换为字符型?保留和数值型的位数一样,谢谢!

y=put(x,best.);
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-10-6 18:28:43 | 只看该作者

Re: 如何将数据集中的数值型转换为字符型?保留和数值型的位数一样,谢谢!

但是y这个变量的长度还是12啊 能否自动变为取值中的最长字符
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2011-10-7 09:12:33 | 只看该作者

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]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-5-7 20:30 , Processed in 0.074152 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表