请选择 进入手机版 | 继续访问电脑版
楼主: 380650306
8143 10

数据长度不够在前面补0的程序应该怎么写?谢谢各位大大。 [推广有奖]

  • 0关注
  • 0粉丝

高中生

22%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
124 点
帖子
13
精华
0
在线时间
26 小时
注册时间
2013-10-21
最后登录
2016-9-18

380650306 发表于 2014-3-12 16:08:42 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如题,规定变量的长度是9,不够9的就在前面补0达到9位。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:程序

yueCynthia 发表于 2014-3-12 17:16:12 |显示全部楼层 |坛友微信交流群
那就变成字符型了哦~而且..你最长的就是九位数么?

data a;                                                                                                                                
        input id;                                                                                                                       
        datalines;                                                                                                                     
        1                                                                                                                              
        305                                                                                                                             
        396                                                                                                                             
        123457                                                                                                                          
        997655882                                                                                                                       
        888888888                                                                                                                       
        ;                                                                                                                              
run;                                                                                                                                    
                                                                                                                                       
data b;                                                                                                                                 
set a;                                                                                                                                 
if id<99999999 then new_id=put(id, z9.);                                                                                                
else new_id=id;                                                                                                                        
run;

使用道具

380650306 发表于 2014-3-12 17:30:39 |显示全部楼层 |坛友微信交流群
yueCynthia 发表于 2014-3-12 17:16
那就变成字符型了哦~而且..你最长的就是九位数么?

data a;                                           ...
数据就是字符型的,是说的长度为9

使用道具

yueCynthia 发表于 2014-3-12 17:52:21 |显示全部楼层 |坛友微信交流群
380650306 发表于 2014-3-12 17:30
数据就是字符型的,是说的长度为9
那就是这样~

data a;                                                                                                                                                            
        format id $9.;                                                                                                                                               
        input id;                                                                                                                                                   
        datalines;                                                                                                                                                   
        1                                                                                                                                                            
        305                                                                                                                                                         
        396                                                                                                                                                         
        123457                                                                                                                                                      
        997655882                                                                                                                                                   
        888888888                                                                                                                                                   
        ;                                                                                                                                                            
run;                                                                                                                                                                 
                                                                                                                                                                     
data b;                                                                                                                                                              
        set a;                                                                                                                                                               
        format id1 best9.;                                                                                                                                                   
        id1=id;                                                                                                                                                              
        /* 上面两句可以还可以这么写: id1 =id+0; */                                                                                                                     
        if id1<100000000 then new_id=put(id1, z9.);                                                                                                                       
        else new_id=id;                                                                                                                                                      
run;

..我会的都是笨方法..求大神给来个简便的
话说..添加代码文字的话为什么行间距会变得特别大呀?好难看
已有 1 人评分论坛币 收起 理由
admin_kefu + 100 根据规定进行奖励

总评分: 论坛币 + 100   查看全部评分

使用道具

380650306 发表于 2014-3-14 16:28:36 |显示全部楼层 |坛友微信交流群
yueCynthia 发表于 2014-3-12 17:52
那就是这样~

data a;                                                                             ...
data a;                                                                                                                                
        input id;                                                                                                                       
        datalines;                                                                                                                     
        1                                                                                                                              
        305                                                                                                                             
        396                                                                                                                             
        123457                                                                                                                          
        997655882                                                                                                                       
        888888888                                                                                                                       
        ;                                                                                                                              
run;

data a;
set a;
do while(anyalnum(id,-10)<9);
id=cats('0',id);
end;
run;

我这样写了,也可以达到效果。谢谢你!

使用道具

data b;
  set a;
  b=put(input( id, best.), z9.);
run;
直接这样不就好了吗?
Learn more, deserve more.

使用道具

380650306 发表于 2014-3-20 17:49:34 |显示全部楼层 |坛友微信交流群
︶ㄣ屎狒狒瓜°_ 发表于 2014-3-14 17:40
data b;
  set a;
  b=put(input( id, best.), z9.);
数据中有的带有字母,这样一转这部分就丢掉了,怎么办?谢谢。

使用道具

farmman60 发表于 2014-3-21 07:24:47 |显示全部楼层 |坛友微信交流群
Suppose you need 10 positions figure.

data have;
  input  x$;
  cards;
3456f3
d39
1g
;
  run;

data want;
set have;
_x=cats(repeat('0',10-length(x)),x);
run;

使用道具

380650306 发表于 2014-3-21 16:37:44 |显示全部楼层 |坛友微信交流群
farmman60 发表于 2014-3-21 07:24
Suppose you need 10 positions figure.

data have;
谢谢!!

使用道具

420948492 发表于 2015-7-22 19:04:55 |显示全部楼层 |坛友微信交流群
{:3_42:}

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-28 17:33