全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1502 2
2015-06-04
悬赏 50 个论坛币 已解决
根据每个id中mark所对应的日期,生成如inter1  inter2的变量, inter1是按照同一id的观测间隔, inter2是按照同一id的时间间隔

最佳答案

pobel 查看完整内容

data b(keep=id date mark _obs) c(keep=id _obs _markobs date rename=(date=_dt)); set a; _obs=_N_; output b; if mark=1 then do; _markobs=_n_; do i=-5 to 5; _obs=_n_+i; output c; end; end; run; data d; merge b(in=inb) c(in=inc); by id _obs; if inb; if inc then do; inter1=_obs-_markobs; inter2=date-_dt; ...
二维码

扫码加我 拉你入群

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

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

全部回复
2015-6-4 09:12:24

data b(keep=id date mark _obs)
     c(keep=id _obs _markobs date rename=(date=_dt));
   set a;
   _obs=_N_; output b;
   if mark=1 then do;
       _markobs=_n_;
           do i=-5 to 5;
               _obs=_n_+i;
                   output c;
           end;
        end;
run;

data d;
   merge b(in=inb) c(in=inc);
   by id _obs;
   if inb;
   if inc then do;
        inter1=_obs-_markobs;
         inter2=date-_dt;
                end;
        drop _:;
run;
二维码

扫码加我 拉你入群

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

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

2015-6-4 10:54:27
pobel 发表于 2015-6-4 10:33
data b(keep=id date mark _obs)
     c(keep=id _obs _markobs date rename=(date=_dt));
   set a;
...
非常感谢
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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