楼主: sun_man
6639 19

1转换为000001,怎么写程序呀?在线等。。。 [推广有奖]

客服管理员

剑客

已卖:2329份资源

学术权威

37%

还不是VIP/贵宾

-

威望
6
论坛币
79547 个
通用积分
28638.7410
学术水平
445 点
热心指数
573 点
信用等级
367 点
经验
149271 点
帖子
1541
精华
2
在线时间
7050 小时
注册时间
2004-5-21
最后登录
2025-12-22

楼主
sun_man 在职认证  发表于 2009-11-26 16:36:12 |AI写论文
10论坛币
各位大师:
现在有一些数字
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

想把他们变成六位的,前面加0 该怎么处理呀,当然数据量很大,并且是不连续的。。

最佳答案

xiaosanmao 查看完整内容

data a; input x$6.; cards; 2 34 098 ; run; proc sql; update a set x=repeat('0',5-length(compress(x)))||x where length(x) lt 6; quit;
关键词:在线等 怎么处理 程序

回帖推荐

bobguy 发表于7楼  查看完整内容

SAS has a format zw.d w, d are integers. See example below. Zw.d Format -------------------------------------------------------------------------------- Writes standard numeric data with leading 0s Category: Numeric Alignment: right 1 data _null_; 2 do i= 1 to 5; 3 put i= i= z6.; 4 end; 5 run; i=1 i=000001 i=2 i=000002 i=3 i=000003 i=4 ...

xiaosanmao 发表于2楼  查看完整内容

data a; input x$6.; cards; 2 34 098 ; run; proc sql; update a set x=repeat('0',5-length(compress(x)))||x where length(x) lt 6; quit;

本帖被以下文库推荐

小剑一把 混迹经管之家 呵呵

沙发
xiaosanmao 发表于 2009-11-26 16:36:13
data a;
input x$6.;
cards;
2
34
098
;
run;
proc sql;
update a
set x=repeat('0',5-length(compress(x)))||x where length(x) lt 6;
quit;
已有 2 人评分经验 论坛币 热心指数 收起 理由
bakoll + 3 + 3 精彩帖子
crackman + 40 + 1 鼓励积极发帖讨论

总评分: 经验 + 43  论坛币 + 3  热心指数 + 1   查看全部评分

藤椅
oaha 发表于 2009-11-26 16:42:16
得看是在哪里,不同的编程环境是不一样的,excel是最容易实现的。
关注的网站:巴菲特股票网

板凳
sun_man 在职认证  发表于 2009-11-26 16:46:44
谢谢,想用SAS来实现
小剑一把 混迹经管之家 呵呵

报纸
jinxinyi 发表于 2009-11-26 16:51:34
1# sun_man
若是在excle中,右击/设置单元格格式/数字/分类选:邮编/确定
已有 1 人评分论坛币 收起 理由
sun_man + 10 呵呵,谢了

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

地板
jingju11 发表于 2009-11-26 21:43:08
1# sun_man

If those inputs are numeric, even further the inputs are char, the following code works, but maybe with some notes:

  1. data Dset;
  2. input num;
  3. cards;
  4. 2
  5. 34
  6. 098
  7. ;
  8. run;
  9. data _null_;
  10. set Dset;
  11. if . <0 +num < 1000000 then char =substr(put(1000000+num, 7.), 2.);
  12.   else do;
  13.       _error_ =0;
  14.       put '***attention on too big number or bizzare inputs***';
  15.   end;
  16. putlog @1 num = @10 char =;
  17. run;
复制代码
已有 1 人评分论坛币 收起 理由
sun_man + 10 呵呵,谢了

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

7
bobguy 发表于 2009-11-27 03:41:43
SAS has a format zw.d     w, d are integers. See example below.

Zw.d Format

--------------------------------------------------------------------------------

Writes standard numeric data with leading 0s Category: Numeric  
Alignment: right  



1    data _null_;
2       do i= 1 to 5;
3          put i= i= z6.;
4        end;
5    run;

i=1 i=000001
i=2 i=000002
i=3 i=000003
i=4 i=000004
i=5 i=000005
NOTE: DATA statement used (Total process time):
      real time           0.45 seconds
      cpu time            0.00 seconds
已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
bakoll + 3 + 3 精彩帖子
dys2000 + 1 + 1 + 1 这个答案更简单明了
sun_man + 10 呵呵,非常感谢

总评分: 经验 + 3  论坛币 + 13  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

8
fxf258 发表于 2009-11-27 07:58:21
[b]对变量名加输出格式,为Z6.,如数字变量为number1, 在输出时写成  number1 z6.即可。
已有 1 人评分论坛币 收起 理由
sun_man + 10 感谢回复

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

9
sun_man 在职认证  发表于 2009-11-27 08:33:28
谢谢各位,热心的人
小剑一把 混迹经管之家 呵呵

10
dys2000 发表于 2009-11-27 10:01:20
bobguy 发表于 2009-11-27 03:41
SAS has a format zw.d     w, d are integers. See example below.

Zw.d Format

--------------------------------------------------------------------------------

Writes standard numeric data with leading 0s Category: Numeric  
Alignment: right  



1    data _null_;
2       do i= 1 to 5;
3          put i= i= z6.;
4        end;
5    run;

i=1 i=000001
i=2 i=000002
i=3 i=000003
i=4 i=000004
i=5 i=000005
NOTE: DATA statement used (Total process time):
      real time           0.45 seconds
      cpu time            0.00 seconds
个人感觉这个答案更好,简单明了。用最少的代码做最多的事~~~~

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-22 15:39