作者rover99 (另一扇門)
看板Statistics
標題Re: [問題] SAS累加問題
時間Fri Jul 18 19:52:28 2008
假設你的資料命名為tmp1
語法如下應該跑的出來:
proc sort data=tmp1;
by ID;
data tmp2;
set tmp1;
by ID;
retain B 0;
B=B+A;
if first.ID then B=A;
run;
※ 引述《chien533 (謠指部總司令)》之銘言:
: 其實是老問題了,可是我一時忘記怎樣寫了 Orz...
: For example:
: ID A
: 1 0
: 1 1
: 1 0
: 2 0
: 2 0
: 2 1
: 2 1
: 2 0
: 3 1
: 3 0
: 3 0
: 3 1
: 要對每個ID的A做累加,結果希望是變成:
: ID A B
: 1 0 0
: 1 1 1
: 1 0 1
: 2 0 0
: 2 0 0
: 2 1 1
: 2 1 2
: 2 0 2
: 3 1 1
: 3 0 1
: 3 0 1
: 3 1 2
: 換句話說,就是在每個ID的A變數裡面,遇到1就加上去,然後一直累加到最後。
: 明明去年還寫過,現在居然忘了。。。囧>
: 知道的人麻煩幫一下,謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.206.5
1F:推 gsuper:挖 成功了 好厲害 07/18 20:01
2F:推 tew:其實我本來想誘導他自己想出來 XD 07/18 21:25
3F:→ gsuper:有別人被你誘導到了 我在那邊if了半天弄不出來 07/18 21:28
4F:→ gsuper:主要是卡在換ID的時候 不曉得怎麼把B歸零 07/18 21:29
5F:推 lin15:問一下像這樣的資料在R裡面怎麼處理? 07/18 22:34
6F:推 bugle:R裡面存放的方式要完全改變,2-D的存放方式發揮不出R的效能 07/18 22:52
7F:→ bugle:要硬寫是可以,但處理起來就會比SAS慢很多 07/18 22:53
8F:推 lin15:b大可以講詳細一點嗎? 因為資料庫其實很常有這種型態資料 07/18 23:34
9F:→ rover99:版大用心良苦,下次如有機會,我也來教釣魚,不要給魚 XD 07/19 02:03
10F:推 chien533:奇怪,我原本自己寫的程式和你差不多,只是B=B+A和if... 07/19 02:31
11F:→ chien533:then...那兩行顛倒過來就跑不出來了,搞了一個晚上...="= 07/19 02:32
12F:→ chien533:原來是邏輯出了問題 ~_~ 07/19 02:32