全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
16776 17
2008-06-11

如何算一下数据集的占比?

基金   持有的股票         持有的金额        股票在该只基金中的占比

a           adefd                  10000

a          dfef                   3000

a           kddd                    4000

b           adfd                   20000

b           adfdad               2000

b          jkdj                     4000

b          jdkd                       900

..........

如何得出第四列的数据?比如a基金adefd股票在a基金中的占比10000/(10000+3000+4000)用sas语言如何编写?

哪位高手指点一下?不胜感激!!

二维码

扫码加我 拉你入群

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

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

全部回复
2008-6-12 13:21:00
先用Transpose过程转置 然都在求就可以了
二维码

扫码加我 拉你入群

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

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

2008-6-12 13:27:00

变为这种形式

            a

 adefd      dfef      kddd                             

  3000     4000       10000

     .

     .

     .

二维码

扫码加我 拉你入群

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

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

2008-6-12 17:00:00
data mysas.jijin;
input jijin$ gupiao$ qian;
cards;
a adefd 10000
a dfef 3000
a kddd 4000
b adfd 20000
b adfdad 2000
b jkdj 4000
b jdkd 900
;
run;
data mysas.jijin2;
set mysas.jijin;
by jijin;
if first.jijin then total=0;
total+qian;
run;
data mysas.jijin3;
set mysas.jijin2;
by jijin;
if last.jijin;
run;
data mysas.b;
merge mysas.jijin mysas.jijin3;
by jijin;
rate=qian/total;
run;
代码弄好了~你要用的话先要建立一个mysas,或者把代码中的MYSAS去掉~
第一次研究这个问题,所以做的有点复杂~见谅~应该有更加简单的方法的~
二维码

扫码加我 拉你入群

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

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

2008-6-12 19:54:00

4楼正解,简单的方法这个就行了

二维码

扫码加我 拉你入群

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

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

2008-6-12 20:47:00

谢谢楼上几位高手!

也有朋友推荐用sql,如下,

proc sql;

  select fundname, stockname, amount,

      (amount/sum(amount)) as percent  format=percent8.2

  from fund.stockholdings

  group by fundname;

也能算出占比。

各位高手觉得如何?大家探讨一下!

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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