全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1469 6
2014-12-26
悬赏 20 个论坛币 已解决
请看附件

book1.rar

大小:6.81 KB

只需: 5 个论坛币  马上下载

本附件包括:

  • book1.xlsx

最佳答案

jl60156 查看完整内容

proc import datafile='\book1.xlsx' dbms=xlsx out=test replace; range="Sheet1$A19:D46"; getnames=yes; run; %macro test(n=,m=); %let k=%eval(&n+1); data test1; merge test %do i=2 %to &k; test(keep=tcode rename=(tcode=tcode&i) firstobs=&i) %end;; run; data test1(keep=fcode date tcode yn _yn); set test1; retain _cnt _yn; if sum(tcode=tcode2>. %do j=3 %to &k; ,tco ...
二维码

扫码加我 拉你入群

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

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

全部回复
2014-12-26 09:21:31
proc import datafile='\book1.xlsx'
                dbms=xlsx
                out=test replace;
                range="Sheet1$A19:D46";
        getnames=yes;
run;

%macro test(n=,m=);
%let k=%eval(&n+1);
data test1;
        merge test %do i=2 %to &k; test(keep=tcode rename=(tcode=tcode&i) firstobs=&i) %end;;
run;

data test1(keep=fcode        date         tcode        yn _yn);
        set test1;
        retain _cnt _yn;
        if sum(tcode=tcode2>. %do j=3 %to &k; ,tcode=tcode&j>. %end;)>=&m and not missing(tcode&k) then do;
                _yn=1;
                _cnt=1;       
        end;       
        else if _cnt>&n then do;
        _cnt=1;
        _yn=0;
        end;       
        else _cnt+1;
run;
%mend;
%test(n=3, m=2);
二维码

扫码加我 拉你入群

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

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

2014-12-26 10:08:29
意思是连续4个数,出现任意3个就标记1? 那。。箭头那符合吗?
附件列表
QQ截图20141226100255.jpg

原图尺寸 133.39 KB

QQ截图20141226100255.jpg

二维码

扫码加我 拉你入群

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

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

2014-12-26 10:13:25
sushe1527 发表于 2014-12-26 10:08
意思是连续4个数,出现任意3个就标记1? 那。。箭头那符合吗?
是,前提是从当期往前看三期,实际上如果这样的,第12个的200406刚开始应该不赋值或者赋值为0,但是当看200412的时候,由于条件满足,又重新被赋值为1
二维码

扫码加我 拉你入群

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

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

2014-12-26 10:31:57
小鳄鱼a 发表于 2014-12-26 10:13
是,前提是从当期往前看三期,实际上如果这样的,第12个的200406刚开始应该不赋值或者赋值为0,但是当看2 ...
我知道你的意思,我是说两个红色箭头都符合条件?最终产生连续6个1的结果?任何连续3个数字加个空行,都会产生4选3的结果。妥妥的 这样的都符合条件?




2010
2010
2010






二维码

扫码加我 拉你入群

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

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

2014-12-26 10:41:02
sushe1527 发表于 2014-12-26 10:31
我知道你的意思,我是说两个红色箭头都符合条件?最终产生连续6个1的结果?任何连续3个数字加个空行,产生 ...
哦   我明白您的意思了   不好意思   是我疏忽了     加个限定条件吧   当期t持有的情况下,t-3期也是要持有的这个样只要t-1 t-2中任意一期持有条件都满足
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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