[程式] SAS 資料分組運算

看板Statistics作者 (八億)時間7年前 (2017/02/17 18:31), 編輯推噓1(1014)
留言15則, 2人參與, 最新討論串1/1
[軟體程式類別]: SAS [程式問題]: 資料處理 [軟體熟悉度]: 新手 [問題敘述]: 大家好,初接觸SAS幫忙整理資料,遇到以下困難,懇求高手幫解決 以下依照目前所理解的邏輯假設資料: SYMBOL NUM C/P DELTA DATE A B C D AAA 1000 C 0.1 1/1 10 20 0 0 AAA 1000 C 0.2 1/1 5 10 5 0 AAA 1000 C 0.5 1/1 5 0 5 5 AAA 1000 C 0.1 1/2 5 5 5 0 AAA 1000 C 0.3 1/3 0 5 10 5 BBB 500 C 0.1 1/3 20 10 10 10 BBB 500 P 0.2 1/4 5 0 5 5 BBB 500 P 0.3 1/4 10 0 5 5 希望利用SAS整理,求得目標: SYMBOL,A/B/C/D,C/P,DATE = *DELTA /NUM AAA,A,C,1/1 = (10*0.1+5*0.2+5*0.5)/1000 AAA,B,C,1/1 = (20*0.1+10*0.2+0*0.5)/1000 AAA,A,C,1/2 = (5*0.1)/1000 ... 希望求得A,B,C,D 在相同或不同SYMBOL,DATE,C/P,下所計算出的值, 如果SYMBOL,DATE,C/P皆相同,就要各自*DELTA後相加, 因為初接觸不久,不知從何著手, 只想到按SYMBOL排序後再依DATE跟C/P分組再分組後再計算, 文長,感謝您耐心看完,如果我敘述的不是很清楚,還請直接發問,謝謝! [程式範例]: -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.240.185.52 ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1487327496.A.AFE.html

02/17 23:15, , 1F
proc sql; create table new as
02/17 23:15, 1F

02/17 23:16, , 2F
select SYMBOL,'A' as ABCD, CP, date,sum(A*delta/num)
02/17 23:16, 2F

02/17 23:16, , 3F
from old group by SYMBOL, ABCD, CP, date
02/17 23:16, 3F

02/17 23:17, , 4F
union
02/17 23:17, 4F

02/17 23:17, , 5F
select SYMBOL,'B' as ABCD, CP, date, sum(B*delta/num)
02/17 23:17, 5F

02/17 23:17, , 6F
from test group by SYMBOL, ABCD, CP, date
02/17 23:17, 6F

02/17 23:18, , 7F
union
02/17 23:18, 7F

02/17 23:18, , 8F
select SYMBOL,'C' as ABCD, CP, date, sum(C*delta/num)
02/17 23:18, 8F

02/17 23:19, , 9F
from old group by SYMBOL, ABCD, CP, date
02/17 23:19, 9F

02/17 23:19, , 10F
union
02/17 23:19, 10F

02/17 23:19, , 11F
select SYMBOL,'D' as ABCD, CP, date, sum(D*delta/num)
02/17 23:19, 11F

02/17 23:20, , 12F
from old group by SYMBOL, ABCD, CP, date; quit;
02/17 23:20, 12F

02/18 00:31, , 13F
真的非常謝謝您抽空解答!明天會好好來研究!謝謝
02/18 00:31, 13F

02/19 15:30, , 14F
想再請教 'A' as ABCD 涵義是什麼,A、B、C、D分屬不
02/19 15:30, 14F

02/19 15:30, , 15F
同欄位不用加","嗎?? 謝謝
02/19 15:30, 15F
文章代碼(AID): #1Ofj48h- (Statistics)