全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2296 8
2013-07-11
各位大侠:
     用sas整理数据过程中,小弟遇到如下情况:

441802222

0874418022220087

440781221

104407812210010

440703240

10004407032401000
(表1)

这个数据集共有3个变量,第1个变量为字符型,第2个变量为数值型,我希望用一个程序基于变量1和变量2得到变量3(如表1),如果我用以下程序如:data data1;set data1;var3=input(compress(osid||pid),$13.);run;   将得到以下结果:

441802222

087441802222087

440781221

1044078122110

440703240

10004407032401000
(表2)
当然(表2)这个结果不是我想要的,我最终目的是想保证变量3一定有13位数字组成,变量3的头和尾必须是变量1和2,中间不够的数字用0补上(如表1中标红的为补上的0),程序应该怎么写?非常谢谢!



二维码

扫码加我 拉你入群

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

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

全部回复
2013-7-11 23:47:00
抛砖引玉一把

data test1;
input var1 $9.  var2 ;
cards;
441802222 087
440781221 10
440703240 1000
483298992 8
237887    123456
4555      777
;
run;

data test2;
set test1;

if length(var1)+length(left(var2)) =13 then do;
var3 = input(compress(var1||left(var2)),$13.);
end;
else do;
var3 = input(compress(var1||substr('000000000000000',1,13-length(var1)-length(left(var2)))||left(var2)),$13.);
end;
run;
二维码

扫码加我 拉你入群

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

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

2013-7-12 00:04:08
复制代码
二维码

扫码加我 拉你入群

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

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

2013-7-12 00:08:37
不知理解对了没有
var3 = put(compress(osid||put(pid,z4.)), $13.);
二维码

扫码加我 拉你入群

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

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

2013-7-12 00:26:37
boe 发表于 2013-7-12 00:08
不知理解对了没有
var3 = put(compress(osid||put(pid,z4.)), $13.);
非常正确

data test;
input osid $9. pid ;
var3 = cats(osid, put(pid, z4.));
var4 = put(compress(osid||put(pid,z4.)), $13.);
var5 = osid||put(pid, z4.);
datalines;
441802222  087
440781221 10
440703240 1000
; run;
proc contents data=test; run;

Alphabetic List of Variables and Attributes
        #    Variable    Type    Len
        1    osid        Char      9
        2    pid         Num       8
        3    var3        Char    200
        4    var4        Char     13
        5    var5        Char     13
二维码

扫码加我 拉你入群

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

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

2013-7-12 21:38:15
谢谢你的抛砖引玉,我学习了一下你的程序,获益良多@tangliang0905!谢谢你提供多种方法供我学习@yongyitian!谢谢你两次热心帮助,回答的很精准@boe!
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群