全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
12868 8
2010-07-27
悬赏 10 个论坛币 已解决
code
dateintr
12001010200.1
12001010310.2
12001010520.1
12001010630.2
22001010200.3
22001010310.2
22001010420.1
22001010530.1
22001010640.2
22001010750.2
22001010860.1
22001010970.1



code
dateintrtr
12001010200.10.1
12001010310.20.02
12001010520.10.002
12001010630.20.0004
22001010200.30.3
22001010310.20.06
22001010420.10.006
22001010530.10.0006
22001010640.20.00012
22001010750.20.000024

要求是根据第一个计算出第二个表格中的tr
其中tr是各个code中r的累积相乘


向高手致敬!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-7-27 14:54:36
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-27 15:28:25
tr=r的话,下面那步tr=tr*r会使得第一条自我累乘一次
即整个累乘序列都多乘第一条一次
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-27 17:35:26
为什么要retain那么多变量?
在金融里计算股票的累计非正常收益率CAR,大都是这个过程。
proc sort data=a;
      by code date;
run;
data b;
        set a;
        retain  tr ;
        if first.code then tr=r;
        else tr=tr*r;
        by code;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-27 20:48:42
4# hongxx

想问个类似的问题,如果R是字符型的, TR也是字符型的(长度足够),
然后我TR = TR*R 那里变成 TR = TR||’,‘||R,为什么出来的总是不是我预期的呢?

我预期的是第一个是TR = ’0.1‘,第二个TR = ’0.1,0.2‘,可是我现在出来的结果,第一个,第二个都是0.1,请问这个是什么原因呢?

proc sort data=a;
      by code date;
run;
data b;
length tr $ 50;
        set a;
        retain  tr ;
        if first.code then tr=r;
        else tr=tr||‘,‘||r;
        by code;
run;

另外,还有一个问题,这个BY CODE,可以放在SET A之后么?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-27 21:36:30
else tr=cats( tr, ',',r)

你想串在一起,总得把空格去掉吧。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群