楼主: akalius
1470 2

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

  • 10关注
  • 3粉丝

已卖:155份资源

讲师

50%

还不是VIP/贵宾

-

威望
0
论坛币
3999 个
通用积分
2.8543
学术水平
4 点
热心指数
6 点
信用等级
6 点
经验
7835 点
帖子
262
精华
0
在线时间
613 小时
注册时间
2009-7-22
最后登录
2025-3-18

楼主
akalius 学生认证  发表于 2015-6-4 09:12:23 |AI写论文
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
拉您进交流群
GMT+8, 2025-12-29 01:02