全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
950 1
2019-06-21
悬赏 4 个论坛币 已解决
求大神指导一段sas程序!!!
现在有两个变量,时间date和a, 其中date只截图了一部分,原始的长度是20年的每一天。现在我要做的是——对20年中的每一天,都求其后三天的a的均值。(例如对2009年12月30日,我就要算2009年12月31日到2010年1月2日的a的平均值)。程序要循环20年的每一天。跪求大神指导!!!谢谢                                                                                                       ~9]9@XHWL`[0UCCS5XKO_WB.png

最佳答案

glmswufe 查看完整内容

不用宏,很简单的 data test; input date a@; format date yymmdd10.; informat date yymmdd10.; cards; 2019-06-01 6 2019-06-02 5 2019-06-03 4 2019-06-04 9 2019-06-05 8 2019-06-06 10 2019-06-07 12 2019-06-08 11 2019-06-09 17 ; run; proc sort data=test; by date; run; data result; set test; retain firsta seconda thirda; retain firstdate seconddate thirddate; format newdate yymmdd10 ...
二维码

扫码加我 拉你入群

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

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

全部回复
2019-6-21 00:12:11
不用宏,很简单的
data test;
input date a@;
format date yymmdd10.;
informat date yymmdd10.;
cards;
2019-06-01 6
2019-06-02 5
2019-06-03 4
2019-06-04 9
2019-06-05 8
2019-06-06 10
2019-06-07 12
2019-06-08 11
2019-06-09 17
;
run;
proc sort data=test;
by date;
run;
data result;
set test;
retain firsta seconda thirda;
retain firstdate seconddate thirddate;
format newdate yymmdd10.;
keep newdate avga;
if mod(_n_,3)=1 then do; firsta=a;firstdate=date;newdate=seconddate;end;
if mod(_n_,3)=2 then do; seconda=a;seconddate=date;newdate=thirddate;end;
if mod(_n_,3)=0 then do; thirda=a;thirddate=date;newdate=firstdate;end;
avga=(firsta+seconda+thirda)/3;
run;

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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