全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5421 6
2014-08-18
求大神帮忙看一下,我想截取变量的某一位有效数字,这是我写的程序,不知道为什么
跑完结果实在是不理想,请大神指点迷津,谢谢啦,附数据

PROC IMPORT OUT= RAWDATA.raw
            DATAFILE= "C:\Documents and Settings\gt\桌面\论文发表准备\Ra
wdata\论文原始数据.xls"
            DBMS=EXCEL REPLACE;
     SHEET="转置后原始数据汇总$";
     GETNAMES=YES;
     MIXED=NO;
     SCANTEXT=YES;
     USEDATE=YES;
     SCANTIME=YES;
RUN;

/*  数据处理获取某一位或某几位有效数组 并统计频率   */

data STEP_1(KEEP=X1 X2 X3 X4 X5 X6 X7 y1);
    set RAWDATA.raw;
        x1=put(M1,$6.);
        x2=put(M2,$6.);
        x3=put(M3,$6.);
        x4=put(M4,$12.);
        x5=put(M5,$12.);
        x6=put(M6,$12.);
        x7=put(M7,$12.);
run;

%MACRO BEN_NUM(OUTDATA,i,j);
data &OUTDATA;
     set RAWDATA.raw;
         y1=substr(M1,&i,&j);
         y2=substr(M2,&i,&j);
         y3=substr(M3,&i,&j);
         y4=substr(M4,&i,&j);
         y5=substr(M5,&i,&j);
         y6=substr(M6,&i,&j);
         y7=substr(M7,&i,&j);
drop M1 M2 M3 M4 M5 M6 M7;
run;
%MEND BEN_NUM ;


二维码

扫码加我 拉你入群

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

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

全部回复
2014-8-18 10:37:31
是这个意思?

复制代码


二维码

扫码加我 拉你入群

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

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

2014-8-18 13:36:28
wwang111 发表于 2014-8-18 10:37
是这个意思?
这个好像还是没运行出来,我是希望得到数据集中每个变量的某一位有效数字(可以通过给i,j赋值自由指定),有的变量数据的位数并不一致,有的上边一半是四位,下面几个观测就变成5位了
二维码

扫码加我 拉你入群

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

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

2014-8-18 17:10:47
我估计你是要这种。

复制代码

试试。

二维码

扫码加我 拉你入群

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

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

2014-8-18 23:21:54
zhengbo8 发表于 2014-8-18 17:10
我估计你是要这种。
亲,你自己试了吗?一跑都是缺失值啊
二维码

扫码加我 拉你入群

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

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

2014-8-18 23:24:55
我想达到的效果就是比方说X是123 456 789 147 258 369 截取第一位有效数字后获得变量Y1 是1 4 7 1 2 3
截取第二位有效数字后获得变量Y2是 2 5 8 4 5 6
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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