作者joyce618 (joy)
站內Statistics
標題[程式] 不好意思,想請問如何加總季末前後20天的資料
時間Mon May 16 19:11:03 2011
------------------------------------------------------------------------
[軟體程式類別]:SAS
[程式問題]:資料處理
[軟體熟悉度]:
低(1~3個月)
[問題敘述]:
不好意思,小妹想要請問各位大人有關資料加總又更進階的問題....
我的原始資料如下
code name yr month date AR
1000 甲公司 2010 03 08 0.xx
1001 乙公司 2010 03 08 0.xx
1002 丙公司 2010 03 08 0.xx
...
1000 甲公司 2011 03 02 0.xx
1001 乙公司 2011 03 02 0.xx
希望將原始資料從2010第二季開始整理成季末前後20天數字的加總,
等於是41筆資料的加總
整理出來的格式如下
code name month AR
1000 甲公司 06 0.xx
1000 甲公司 09 0.xx
1000 甲公司 12 0.xx
1001 乙公司 06 0.xx
.....
我原來是想用sql的方式計算
但是後來發現好像從篩選資料的部份就出了問題了
在篩選資料的時候,我是直接把6/30前後20天的日期設成篩選條件
可是後來發現篩選出來的資料很多都不滿41天
因為有些公司不一定每天都有AR
還是說可以透過_N_來篩選前後20天的資料?
另外,因為目前其實尚未學到SQL
所以想請問各位大人有沒有其他雖然複雜一點,但是也可以跑出來結果的語法
我目前能還學到迴圈跟ARRAY的語法
但是完全是初學
實在很難想像要如何處理資料
不好意思,麻煩各位了^^
[程式範例]:
小妹原來寫的程式如下:
DATA d;
SET c;
IF yr='2010' THEN if month='6' and date>='10' THEN month='6' ;
ELSE IF month='7' and date<='20' THEN month='6';
ELSE IF month='9' and date>='10' THEN month='9';
ELSE IF month='10' and date<='20' THEN month='9';
ELSE IF month='12' and date>='11' THEN month='12';
ELSE DELETE;
IF yr='2011' THEN IF month='1' and date<='20' THEN month='12';
ELSE DELETE;
run;
然後再利用版上大人教的SQL語法進行加總
但是最主要的還是想請問各位有沒有不是用SQL的語法的寫法
謝謝各位
-----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.250.163
推 west1996:有點看不懂妳中段的意思,很多都不滿41天那一段...妳要的 05/16 20:15
→ west1996:是季末前後20個「日曆天」的資料加總呢?還是前後20個「 05/16 20:16
→ west1996:有AR值的日子」加總? 05/16 20:17
→ joyce618:我是要季末前後20個有AR的數字加總,也就是說每一個季末 05/16 20:47
→ joyce618:的數字,都是由41筆AR(季末前20筆+後20筆+季末)組成 05/16 20:49
→ joyce618:不好意思說明的有點模糊,麻煩你了^^ 05/16 20:50
→ west1996:季末那一天會不會沒有AR? 05/16 23:07
→ joyce618:會喔,所以我是想說能不能將六月的最後一天當作基準,然 05/16 23:19
→ joyce618:後以基準那天往前找20筆資料,再往後找20筆,這樣就不會 05/16 23:20
→ joyce618:受限於六月三十沒有資料,等於直接找現有資料中每家公司 05/16 23:23
→ joyce618:六月、九月、十二月資料中有的最後一筆AR,所以等於是完 05/16 23:25
→ joyce618:全沒辦法用日曆天來整理資料,不好意思,麻煩你了^^ 05/16 23:27