Re: [程式] SAS資料補齊

看板Statistics作者時間6年前 (2019/11/28 01:16), 6年前編輯推噓1(101)
留言2則, 1人參與, 6年前最新討論串2/2 (看更多)
※ 引述《ss849101 ()》之銘言: : [程式]: : SAS : [軟體程式類別]: : SAS9.4 : [程式問題]: : 想使第一筆缺漏值為0且使用先前的資料補齊之後的缺漏值。 : [軟體熟悉度]: : 新手 : [問題敘述]: : 在資料中遇到一些資料是三個月或是一年出現一次,但我處理資料的頻率是一個月一次, : 例如:3月有資料,可是四、五月沒有,我想要利用三月的資料覆蓋到四、五月去。 : 另外我的樣本期間中第一筆資料是缺漏的,我希望它可以是0。 : 試了許多方法都無法執行,請各位前輩指點,謝謝。 : [程式範例]: : 這是我的資料,其中EPS等資料是三個月或是一年一期,price等是每個月都有, : 我想要把EPS那些資料弄成每個月都是, : 例如: 31JAN1989 後的 EPS 和 29DEC1988 的 EPS 一樣都是3.55至28DEC1989為止 : https://i.imgur.com/J4mToNJ.png
: 然後 29JAN1988 的EPS沒有資料,我想讓他為0, : 以下是我所做的嘗試,但是無法完成我的目的。 : https://i.imgur.com/yKpISl0.png
: 如果第一筆資料都有了之後我要讓EPS都跟著前一筆資料,所以我想用Array的方式 : 方式一: : https://i.imgur.com/SVsPVhO.png
: 方式二(開巨集讓他執行): : https://i.imgur.com/DzwPIgP.png
: 我的程式一定是出問題了,不然就是我邏輯不對, : 總之我卡住了,希望各位前輩願意指點。 盲打,希望沒打錯... data new; set old; by code; retain eps_now; if first.code = 1 then eps_now = 0; if eps = . then eps = eps_now; else eps_now = eps; drop eps_now; run; 上面的code是假設只有esp欄位要做處理,如果其他欄位也要這樣處理的話 那又是另一個故事了XD -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.11.8.26 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1574874991.A.EC4.html ※ 編輯: west1996 (39.11.8.26 臺灣), 11/28/2019 02:11:32

11/28 12:22, 6年前 , 1F
真的可以耶!你太厲害了
11/28 12:22, 1F

11/28 12:22, 6年前 , 2F
謝謝!
11/28 12:22, 2F
文章代碼(AID): #1Ttgzlx4 (Statistics)
討論串 (同標題文章)
文章代碼(AID): #1Ttgzlx4 (Statistics)