全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4559 5
2016-12-10
我的数据是这样的,将每天的交易按照5分钟时间间隔分开,每天有10个间隔,每个间隔按照顺序标记为1,2,3,...,10,标记为1的表示是在第一个五分钟的交易,标记为2的是在第二个五分钟的交易,但是有的数据缺失了,比如在20050103的第4笔交易和第7笔交易之间的5和6缺失了,想要把缺失的这一行补上去,价格取缺失值,成为下面这个数据集,应该怎么做?这个问题困扰我很久了,我想用Lag但是数据缺失的行数是不确定的,这个就不好解决了,希望高手帮帮忙,谢谢!
date               mark       pirce
20050103          1           10
20050103          2           12
20050103          3           11
20050103          4           12
20050103          7           13

20050103          8           14
20050103          9           14
20050103          10         14
20050104          1           10
20050104          2           12
20050104          3           11
20050104          4           12
20050104          5           13
20050104          6           14
20050104          7           14
20050104          8           14
20050104          10          14


date               mark       pirce
20050103          1           10
20050103          2           12
20050103          3           11
20050103          4           12
20050103          5           .
20050103          6           .
20050103          7           13
20050103          8           14
20050103          9           14
20050103          10         14
20050104          1           10
20050104          2           12
20050104          3           11
20050104          4           12
20050104          5           13
20050104          6           14
20050104          7           14
20050104          8           14
20050104          9           .
20050104          10         14

二维码

扫码加我 拉你入群

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

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

全部回复
2016-12-10 15:54:25
顶顶~求问~
二维码

扫码加我 拉你入群

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

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

2016-12-10 17:48:35
想来想去,还是构建辅助数据集最直观
复制代码




输出如下:
output.PNG


二维码

扫码加我 拉你入群

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

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

2016-12-11 12:16:51
hszest 发表于 2016-12-10 17:48
想来想去,还是构建辅助数据集最直观
管用,谢谢!
二维码

扫码加我 拉你入群

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

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

2016-12-11 16:02:49
不构造数据也可以:
data a;
input date mark price;
cards;
20050103 1 10
20050103 2 12
20050103 3 11
20050103 4 12
20050103 7 13
20050103 8 14
20050103 9 14
20050103 10 14
20050104 1 10
20050104 2 12
20050104 3 11
20050104 4 12
20050104 5 13
20050104 6 14
20050104 7 14
20050104 8 14
20050104 10 14
;
run;


data b (drop=mark mark_retain price);
set a;
by date;
retain mark_retain;
if first.date then do mark_retain=0; end;
if mark ne mark_retain+1 then do;
   do b=mark_retain+1 to mark-1 ;
          output;
   end;
end;
mark_retain=mark;
run;

data c;
set b(rename=(b=mark)) a;
by date;
run;
二维码

扫码加我 拉你入群

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

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

2017-7-5 10:19:16
谢谢分享
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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