作者MmmRrrrX (銀色的靈魂)
站內Statistics
標題Re: [程式] sas 加總問題
時間Tue Apr 6 00:19:37 2010
※ 引述《lsshno1 (朝右邊鋒邁進)》之銘言:
: 大家好,想請問大家兩個問題.
: 首先, 我的資料長的如下:
: y1 y2 y3 y4 y5 y6 . . . . . y14
: N0 N0y1 N0y2 . . .. ..
: N1 N1y1 N1y2
: N2 . . . . ..
: N3
: N4
: 想請問大家我應該怎麼計算 x1=N0y1
: x2=N1y1+N0y2
: x3=N2y1+N1y2+N0y3
: (也就是x_i=sum(NxYy) given x+y=i)
: 謝謝大家!!
提供一下我的想法,
作14個新的變數,假設是a1 a2 .... a14
a1=y1 ; a2=lag1(y2) ; ..... ; a14=lag13(y14) ;
(有點忘了lag函數是不是這樣用了)
剛剛開SAS試過,是這樣沒錯
新的資料應該長的像
a1 a2 a3 . . . . . y14
N0 N0y1 . . . . . . . .
N1 N1y1 N0y2 . . . . . . .
N2 N2y1 N1y2 N0y3
N3 ...
..
N13 N13y1 n12y2 ...... N0y14
N499 N499y1 N498y2 N486y14
( 是這樣嗎? 不是很確定你的資料是不是14*14,
如果是的話應該是從N0到N13 )
再令if a1=. then a1=0;
if a2=. then a2=0;
( 印象中數字加 . (null) 的話會變 . )
最後x=a1+a2+.....+a14;
x就是你要的值
當然如果熟 macro 的話應該可以做到無論幾乘幾都可以一次搞定
不過我不是很熟,14還不算多,這樣應該可以滿足你的需求了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.145.80
※ 編輯: MmmRrrrX 來自: 140.119.145.80 (04/06 00:21)
推 lsshno1:我剛剛在洗澡的時候也有想到這個作法 04/06 00:25
→ lsshno1:不過我的data是500*14 04/06 00:26
推 lsshno1:謝謝大家!! 04/06 00:28
檢視一下 x500=N499y1+N498y2+N497y3+ ....... + N486y14
感覺上這樣的做法結果跟你要的是一樣的
因為你第一個是N0不是N1,不好轉過過來 -.-"
※ 編輯: MmmRrrrX 來自: 140.119.145.80 (04/06 00:39)
※ 編輯: MmmRrrrX 來自: 140.119.145.80 (04/06 00:41)