请选择 进入手机版 | 继续访问电脑版
楼主: akalius
1156 2

生成日期标记 [推广有奖]

  • 10关注
  • 3粉丝

讲师

48%

还不是VIP/贵宾

-

威望
0
论坛币
4168 个
通用积分
9.1543
学术水平
4 点
热心指数
6 点
信用等级
6 点
经验
7832 点
帖子
261
精华
0
在线时间
605 小时
注册时间
2009-7-22
最后登录
2024-4-9

akalius 学生认证  发表于 2015-6-4 09:12:23 |显示全部楼层 |坛友微信交流群
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; ...
关键词:inter Inte 时间间隔 Mark int
pobel 在职认证  发表于 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;

使用道具

akalius 学生认证  发表于 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;
...
非常感谢

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-16 20:25