作者haoyunwhite (毛毛)
看板Statistics
標題[程式] 時間與變數擷取
時間Mon Jun 21 10:48:18 2010
[軟體程式類別]:
SAS
[程式問題]:
資料處理
[軟體熟悉度]:
[問題敘述]:
變數有異動之時間點(change_date)以及各月份的指標 如下面的例子
change_date 9701_data 9702_data 9703_data 9704_data 9705_data 9706_data
__________________________________________________________________________
970401 1 0 1 0 4 1
970204 1 1 2 2 0 3
想要利用異動時間點判定異動的月份擷取相對應的變數,
也就是說,第一筆資料要抓的是9704_data的值;
第二筆要抓的是9702_data的值。
更進一步要做的是取得異動時間點後面兩個時間點的值,
也就是,第一筆資料要抓的是9705_data以及9706_data的值;
第二筆資料要抓的是9703_data以及9704_data的值;
資料型態變成
change_date Time_0 Time_1 Time_2
__________________________________________
970401 0 4 1
970204 1 2 2
想法
目前只有想到土法煉鋼的方法
if substr(change_date,1,4)=9702 then do;
Time_0=9702_data ; Time_1=9703_data ; Time_2=9703_data ; end;
else if substr(change_date,1,4)=9706 then do;
Time_0=9706_data ; Time_1=9707_data ; Time_2=9708_data ; end;
如果只有一年的資料還好
但是如果延伸至五年,可能程式中月份重複的部分會增加很多
而且未來不一定會只抓後面2期,可能會前後的數值都要擷取,
1.想要請問如果擷取到年月(9706)可以轉而擷取相對應數值的欄位(9706_data)嗎
2.是否有其他的作法,得到相同的結果呢
謝謝大家有耐心看完
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.219.54
※ 編輯: haoyunwhite 來自: 114.45.219.54 (06/21 11:08)
1F:→ ASD332:請問如果你的時間是在最後的話 要怎麼取後2期? 06/21 14:28
2F:→ haoyunwhite:就只抓當期 06/21 14:59
3F:推 ASD332:你的東西用array, vname就可以解決了 不過有人提供寫好的 06/21 15:23
4F:→ ASD332:就直接用吧 XD 06/21 15:23