全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2813 5
2015-10-27
数据在附件里。由于数据在某天的某时刻丢失,所以要进行插补,方法就是选择前一天此时刻的值加上后一天此时刻的值,求平均,不知我表述的是否明确,谢谢各位朋友帮忙了,不胜感激!
附件列表

插补数据.xlsx

大小:14.55 KB

 马上下载

二维码

扫码加我 拉你入群

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

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

全部回复
2015-10-27 21:43:44
求编码,小弟先行谢过!
二维码

扫码加我 拉你入群

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

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

2015-10-28 15:45:03
翔空猛龙521 发表于 2015-10-27 21:43
求编码,小弟先行谢过!
急急急,大神们,求求了
二维码

扫码加我 拉你入群

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

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

2021-7-7 15:53:49
有找到代码吗?
二维码

扫码加我 拉你入群

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

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

2021-9-28 10:10:43
        PROC IMPORT OUT=time
            DATAFILE= "C:\Users\wang\Desktop\ori.xlsx"
            DBMS=EXCEL  REPLACE;
            GETNAMES=YES;
                mixed=yes;
                SHEET="sheet1";
        RUN;


        data time1 time2(drop=dtl dth);
                set time;
                h=hour(time);
                m=minute(time);
                s=second(time);
                datetime=dhms(date,h,m,s);
                if Lt=. then do;
                dtl=datetime-3600*24;
                dth=datetime+3600*24;
                end;
                if lt=. then output time1;
                else output time2;
                drop h m s;
        run;

    proc sort data=time1;
          by dtl;
        run;

          proc sort data=time2;
          by datetime;
        run;


        data s1;
                merge time1(in=a)  time2(rename=(datetime=dtl lt=ltl))  ;
                by dtl;
                if a;
        run;

   data s2;
                merge s1(in=a)  time2(rename=(datetime=dth lt=lth))  ;
                by dth;
                if a;
        lt=mean(ltl,lth);
                drop dtl dth ltl lth;
        run;


   data sum;
     set s2 time2;
         by datetime;
   run;
二维码

扫码加我 拉你入群

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

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

2021-9-28 14:58:54
PROC IMPORT OUT=time
            DATAFILE= "C:\Users\wang\Desktop\ori.xlsx"
            DBMS=EXCEL  REPLACE;
            GETNAMES=YES;
                mixed=yes;
                SHEET="sheet1";
        RUN;


        data time1 time2(drop=dtl dth);
                set time;
                h=hour(time);
                m=minute(time);
                s=second(time);
                datetime=dhms(date,h,m,s);
                if Lt=. then do;
                dtl=datetime-3600*24;
                dth=datetime+3600*24;
                end;
                if lt=. then output time1;
                else output time2;
                drop h m s;
        run;


data t1;
        set time1;
        do i=1 to all;
        set  time2( rename=(datetime=dt lt=ltl)) nobs=all point=i;
        if dtl=dt then output;end;
        drop dt;
run;


data t2;
        set t1;
        do i=1 to all;
        set  time2( rename=(datetime=dt lt=lth)) nobs=all point=i;
        if dth=dt then output;
    end;
        drop dt  dtl dth;
run;

data t3;
        set t2;
        lt=mean(ltl,lth);
        drop ltl lth;
run;

   data sum;
     set t3 time2;
   run;

proc sort data=sum out=sum1(drop=datetime) ;
        BY datetime;
RUN;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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