作者kingbee ( 将心比心)
站内Statistics
标题Re: [程式] SAS 取上一「季」资料
时间Wed Aug 18 13:22:45 2010
你的描述好难懂
帮你转化一下
A档 B档(季资料)
Indo yrmon price Indo yrmon vol
1101 200104 8.2 1101 200103 23
3108 200201 5.8 3108 200103 16
1101 200106 20
3108 200106 18
1101 200109 22
3108 200109 19
1101 200112 25
3108 200112 15
1101 200203 28
3108 200203 14
你希望串档後变成
Indo yrmon vol price
1101 200103 23 .
3108 200103 16 .
1101 200104 . 8.2
1101 200106 20 .
3108 200106 18 .
1101 200109 22 .
3108 200109 19 .
1101 200112 25 .
3108 200112 15 .
3108 200201 . 5.8
1101 200203 28 .
3108 200203 14 .
其中并入的档 vol 会是missing
所以希望能够抓取前一个时间点的vol作为并入的vol值
基於上述的方式
我则是想到把每个季的关键值先抽出来当作X档
之後再套回去给串档的那个档案
想到的方式很多 不知道retain可不可行 没试过
※ 引述《wlsherica (CrevetteStudio)》之铭言:
: 有个合并的问题想请教各位,原始资料是A档与B档
: 共同变项为Indo与yrmon(及西元年与该月份)
: 现在多跑出一个问题是抓季资料
: A档
: Indo yrmon price
: 1101 200104 8.2
: 3108 200201 5.8
: B档(季资料)
: Indo yrmon vol
: 1101 200103 23
: 3108 200103 16
: 1101 200106 20
: 3108 200106 18
: 1101 200109 22
: 3108 200109 19
: 1101 200112 25
: 3108 200112 15
: 1101 200203 28
: 3108 200203 14
: 希望以Indo变项当作index去作合并成以A档为base的档案
: 由於B档是季资料,不是每一个月都有vol的值可以出来
: 如果是3,6,9,12的月份, 就当月合并自然OK
: 若是其它月份, 就必须去抓前一季的值
: 1101 200104 是四月, 所以得去抓200103的vol 23
: 3108 200202 是二月, 所以得去抓200112的 vol 15
: C档
: Indo yrmon price vol
: 1101 200104 8.2 23
: 3108 200202 5.8 15
: --------------------------
: 原本想法是用时间函数中的QTR函数,不过QTR内要摆date。
: 後来想那就设每个yrmon给一个该季的值(若为1,2,3则为第一季,以此类推)
: 但是遇到12月份的值就会抓错季
: 所以也要同时考虑年份吧..~"~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.29.135.126
1F:推 wlsherica:感谢你的补充说明~ 若有用data step完成会放上来 感谢 08/18 15:22