全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7653 10
2014-01-25
悬赏 5 个论坛币 未解决
大概是这样,我想往缺少的时间戳里填补数据。(比如说9:00:019:00:05         如果没有数据,那么我就将9:00:00的数据复制给9:00:019:00:05,当然我是在9:00:06才能发现9:00:019:00:05没有数据的)。

但是发现无法用IF语句来使用循环。(if then do ……do i=1 to tickgap  …. End 这样好像无法运行)

data a;

    set timelist;

    timegap=intck('second',lag(time),time); /* 检查是否丢失*/

    if timegap>1 then do   /*填补丢失时间*/

    do i=1to tickgap;

    temptime=time;

    tempvalue=value;

   time=time+'0:00:01't;/*循环复制上一个时间的数据到当前行*/

    value=lag(value);

    output;

   time=temptime;/*将最新行恢复为当前时间数据*/

   value=    tempvalue

    end;

    end;


二维码

扫码加我 拉你入群

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

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

全部回复
2014-1-25 22:13:52

数据格式:
9:00:00 1
9:00:06 6
9:00:07 7
9:00:08 8


希望生成的结果
9:00:00 1
9:00:01 1
9:00:02 1
9:00:03 1
9:00:04 1
9:00:05 1
9:00:06 6
9:00:07 7
9:00:08 8



二维码

扫码加我 拉你入群

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

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

2014-1-26 09:26:47
data timelist;
   input time : time8. n;
   format time time8.;
   cards;
9:00:00 1
9:00:06 6
9:00:07 7
9:00:08 8
;

data a;
    set timelist nobs=nobs;
        if _N_<nobs then do;
        set timelist(firstobs=2 rename=(time=time1 n=n1));
                output;
        do while(time<time1-1);
                   time+1;output;
                end;
        end;
        else output;
        drop time1 n1;
run;
          
二维码

扫码加我 拉你入群

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

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

2014-1-26 10:55:25
pobel 发表于 2014-1-26 09:26
data timelist;
   input time : time8. n;
   format time time8.;
大神啊  学习了
二维码

扫码加我 拉你入群

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

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

2014-1-26 13:03:54
复制代码
二维码

扫码加我 拉你入群

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

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

2014-1-27 10:50:48
pobel 发表于 2014-1-26 09:26
data timelist;
   input time : time8. n;
   format time time8.;
多谢大神!  
set timelist nobs=nobs; 这句怎么理解
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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