楼主: psps1984
1167 2

[问答] 如何匹配数据,求助! [推广有奖]

  • 0关注
  • 1粉丝

已卖:12份资源

副教授

2%

还不是VIP/贵宾

-

威望
0
论坛币
140 个
通用积分
153.6308
学术水平
8 点
热心指数
7 点
信用等级
9 点
经验
3713 点
帖子
216
精华
0
在线时间
1154 小时
注册时间
2005-11-22
最后登录
2026-1-24

楼主
psps1984 发表于 2014-5-8 09:30:11 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位,本人在处理数据时遇到了一些困难,请求帮忙!
具体问题如下:
Data 1

AUD=

22-Aug-11

7:22:11.522

AUD=

22-Aug-11

7:22:11.779

AUD=

22-Aug-11

7:22:12.521

AUD=

22-Aug-11

7:22:13.272

AUD=

22-Aug-11

7:22:13.533

AUD=

22-Aug-11

7:22:13.779

AUD=

22-Aug-11

7:22:14.026

AUD=

22-Aug-11

7:22:15.023

AUD=

22-Aug-11

7:22:15.471

AUD=

22-Aug-11

7:22:15.525



Data 2

AUD=

22-Aug-11

7:22:02.000

AUD=

22-Aug-11

7:22:02.000

AUD=

22-Aug-11

7:22:03.000

AUD=

22-Aug-11

7:22:03.000

AUD=

22-Aug-11

7:22:04.000

AUD=

22-Aug-11

7:22:09.000

AUD=

22-Aug-11

7:22:10.000

AUD=

22-Aug-11

7:22:11.000

AUD=

22-Aug-11

7:22:12.000



第三列是时间,data 1精确到0.001秒,data 2精确到秒。
因为data 1频率更高,如何对应于data 2中的每个数据,找出data 1中对应的数据(也就是说,之前或之后,时间最近的)并配对呢?
各位高手,多谢啦!
二维码

扫码加我 拉你入群

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

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

关键词:Data 处理数据 AUD Aug 求帮忙 如何

沙发
jeozu 发表于 2014-5-8 10:07:50
只是找最近时间,而没有其他条件(当然ID等除外).
因为是高频数据,假设量很大,只能进行小范围的cartesion. 使用data1中每秒的最大和最小也就是data2的一个整点秒周围只有4个值。然后再匹配就会减小复杂度。

藤椅
farmman60 发表于 2014-5-8 12:08:34
Give you some ideas with fake data.

  1. data one;
  2. input x;
  3. cards;
  4. 2
  5. 9
  6. 24
  7. 5
  8. 10
  9. ;

  10. data two;
  11.   input y;
  12.   cards;
  13. 6
  14. 1
  15. 12
  16. 10
  17. 19
  18. ;
  19. run;

  20. proc sql;
  21.   select count(x) into:num from one;
  22. quit;

  23. data want;
  24.   do i=1 by 1 until(last);
  25.     set one end=last;
  26.         array temp [&num] _temporary_;
  27.             temp(i)=x;
  28.   end;
  29.   do point=1 to nobs;
  30.      set two point=point nobs=nobs;
  31.          array dif (&num);
  32.     do i=1 to dim(dif);
  33.           dif(i)=abs((y-temp(i)));
  34.         end;
  35.         smallest=smallest(1, of dif(*));
  36.     j=whichn(smallest,of dif(*));
  37.         x=temp(j);
  38.         output;
  39. end;
  40. keep x y;
  41. run;
  42.          

复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-31 18:27