[程式] SAS循環加總的問題

看板Statistics作者 (煩躁的調子)時間16年前 (2010/03/15 16:30), 編輯推噓3(303)
留言6則, 3人參與, 最新討論串1/1
[軟體程式類別]: SAS [程式問題]: 資料處理 [軟體熟悉度]: 新手(不到1個月) [問題敘述]: 各位高手們大家好!!! 很嫩的新手小妹我想跟大家請教一些問題 請各位大德給點指導啦 :) 資料長得像這樣: obs ID year QQQ PPP Diff(=QQQ-PPP) result 1 A 94 1 2 -1 2 A 95 3 3 0 3 A 96 -5 -6 1 4 A 97 7 7 0 5 A 98 11 8 3 6 A 99 4 2 2 7 B 01 0 -1 1 8 B 02 2 3 -1 9 B 03 -1 -2 1 10 C 97 9 8 1 11 D 98 3 0 3 12 D 99 5 0 5 13 D 00 2 0 2 14 D 01 -4 -2 -2 15 D 02 -5 7 -12 rate=0.1 我想對同一個ID連續抓三筆資料 然後分別對每年度做計算,不過計算的方法有點特別 result=sum [(diff/((1+rate)^第n個資料))] 例如: 94年的A想算出 result = (-1/1.1)+(0/(1.1^2))+(1/(1.1^3)) 95年的A result= (0/1.1)+(1/(1.1^2))+(0/(1.1^3)) 現在碰到的問題就是: 1.怎麼對一個ID設定往下三筆資料然後計算? 2.還有就是如何設定不足三筆資料的result為可得的最後一個資料? (例如98年和99年A的result都設為97年A的result) 3.如果像C一樣無法算出一個result則設為Missing 請各位指點一下啦<(_ _)>感謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.232.56

03/15 17:33, , 1F
對每個A由大排到小 抓前三筆 就是你要的
03/15 17:33, 1F

03/15 19:15, , 2F
你是說fisrtobs嗎?可是我要問的不是這個@@
03/15 19:15, 2F

03/15 19:50, , 3F
proc sort;by id descending y; 接下來你試試看吧
03/15 19:50, 3F

03/15 19:54, , 4F
另外我回的 也不是firstobs
03/15 19:54, 4F

03/15 20:41, , 5F
那如果要再往下推從A的第2年資料開始抓呢???
03/15 20:41, 5F

03/15 20:58, , 6F
T大建議的應該是要配合 lag 這個函數,希望沒解讀錯 ^^
03/15 20:58, 6F
文章代碼(AID): #1BdV0h4G (Statistics)