作者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