楼主: tagv
4040 35

请大家帮个忙,看看这个表怎么编? [推广有奖]

21
tagv 发表于 2009-8-26 11:57:01
time_record        di        k        Lagtradetime        lagtradetime_5second
35745        1        35745        0        0
36048        2                             .       .  
36071        3        36048        23        0
36192        4        36071        121        0
36399        5        36192        207        0
36427        6        36399        28        0
36856        7        36427        429        0
36928        8        36856        72        0
36945        9        36928        17        0
36945        10        36945        0        0
36970        11        36945        25        0
37119        12        36970        149        0


这是R0的数据

22
tagv 发表于 2009-8-26 12:53:30
是不是缺retain的结果?

23
sushe1527 发表于 2009-8-26 14:15:04
tagv 发表于 2009-8-26 11:13
Time        price        time_record        timedifference       lagtradetime_5second
28:54.2        51        41334        14        
28:56.4        51        41336        2        2
28:57.3        51        41337        1        1
29:02.8        51        41342        5        5
29:09.8        51        41349        7        
29:19.8        51        41359        10        
29:26.5        51        41366        7        
29:41.1        51        41381        15        
                                
                                
                                
                                
                                
Time        price        time_record        timedifference         lagtradetime_5second
28:54.2        51        41334        14        
28:56.4        51        41336        0        2
28:57.3        51        41337        0        1
29:02.8        51        41342        5        5
29:09.8        51        41349        7        
29:19.8        51        41359        10        
29:26.5        51        41366        7        
29:41.1        51        41381        15
------------------------------------------------------------------------------------------
是不是象这样保留数据呢?

data a;
length time $8.;
input Time $   price ticord timedi@@;
cards;
28:54.2        51        41334        14        
28:56.4        51        41336        2        
28:57.3        51        41337        1        
29:02.8        51        41342        5        
29:09.8        51        41349        7        
29:19.8        51        41359        10        
29:26.5        51        41366        7        
29:41.1        51        41381        15      
;run;

data final;
set b;
m=dif(ticord);
if m>5 or m=. then output;
run;

只要对 z 做一次差分,保留所有大于 5 的数据就可以啦

24
tagv 发表于 2009-8-26 14:48:54
不用那么麻烦算z的
我都算好了!最后一列就是阿  不要1/10秒那个部分。

如果也是简单保留大于5的,这个题就没解出来啊!

25
tagv 发表于 2009-8-26 14:52:24
你那样算完,会把我上面标红的 8 删掉 。而这是这个问题的核心阿

算法直接饮用后面两列吧
关键是动态的把 任何一个交易后面在五秒以内的交易删掉。你的算法和我一样,无法识别 并 留下 8。

还是很感激!我一直在线等,,,,

26
tagv 发表于 2009-8-26 14:55:31
我说的 8  就是 2 +1 +5 使得 原来间隔 5秒的那个数据,在删去前两个交易后,满足和28:54.2那笔交易大于5的要求,也就是8了。这就是所谓的动态的原因。

27
tagv 发表于 2009-8-26 14:57:44
那个time 和price 是不需要的。我觉得提供的样本好像误导了。

可以从time_record 那个序列作算法就好!前边不用管

28
tagv 发表于 2009-8-26 15:00:53
需要更大的数据样本,通知我,在线交流一下

29
sushe1527 发表于 2009-8-26 15:29:09
试试这个

data a;
length time $8.;
input Time $   price ticord timedi@@;
cards;
28:54.2        51        41334        14        
28:56.4        51        41336        2        
28:57.3        51        41337        1        
29:02.8        51        41342        5        
29:09.8        51        41349        7        
29:19.8        51        41359        10        
29:26.5        51        41366        7        
29:41.1        51        41381        15      
;run;
data b;
set a;
m=dif(ticord);
if m>5 or m=. then m=0;
run;
data final;
set b;
retain s 0;
if m^=0 then s+m;
if m=0 then s=0;
timedi_new=max(timedi,s);
if timedi_new>5 then output;
run;

30
tagv 发表于 2009-8-26 15:49:20
高手!
不服不行。

我回北京一定请你王府井烤鸭

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

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