楼主: prown
4204 2

求教SAS分组求比例问题 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

78%

还不是VIP/贵宾

-

威望
0
论坛币
673 个
通用积分
13.3516
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
2196 点
帖子
84
精华
0
在线时间
320 小时
注册时间
2004-10-12
最后登录
2023-5-10

楼主
prown 发表于 2013-5-11 15:57:10 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
问题如下:
源文件写在一个access文件里(已经分类排序),已经导入SAS,现在要在表右方添加两列:
一列名称为行业销售收入占比(share_sales),求出该年各个省份每个行业的每个公司销售收入占全行业的比例。
另一列名称为该行业前两家公司销售收入比例之和(front_2_share_sales),这个变量作为每个公司身处在行业内的竞争程度。

数据量很大,有近百万。

year       address         industry      company       sales          share_sales          front2_share_sales
1996        01                 001            xxxx1             5                       
1996        01                 001            xxxx2             4         
1996        01                 001            xxxx3             3
1996        01                 002            xxxx4             9
1996              01                                002            xxxx5             8
1996        01                 002            xxxx6             7
1996        02                 001            xxxx7            10
1996        02                 001            xxxx8             6
1996        02                 001            xxxx9             5
1996        03      ............
................

在没有分组的情况下求比例比较简单,但是涉及到了两重分组,所以处理起来没有想出有效的方法,希望高手慷慨解答这个问题,最好写出完整代码,不胜感激。
二维码

扫码加我 拉你入群

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

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

关键词:Industry address company access compan 行业 收入 源文件

沙发
邓贵大 发表于 2013-5-11 16:49:33
  1. data hell1;
  2. do _n_=1 by 1 until(last.industry);
  3. set hell;
  4. by year address industry descending sales;
  5. total_sales = sum(total_sales, sales);
  6. if _N_<3 then front2_share_sales = sum(front2_share_sales, sales);
  7. end;
  8. do until(last.industry);
  9. set hell;
  10. by year address industry;
  11. share_sales = sales/total_sales;
  12. output;
  13. end;
  14. run;
复制代码
Be still, my soul: the hour is hastening on
When we shall be forever with the Lord.
When disappointment, grief and fear are gone,
Sorrow forgot, love's purest joys restored.

藤椅
Eternal0601 发表于 2013-5-11 19:24:18
邓贵大 发表于 2013-5-11 16:49
大侠,对您的这个程序运行时不是很清楚,望指教,谢谢!
1.运行过程:  猜的是 按照year address industry为一组处理,如lz的前面到3条记录,第一次do--until将这个3条处理完后,第二次的do--until时候,指针是又跳到第一条记录,完成这一组数据处理;接着继续按照这种形式处理第二组数据(4-6条)吧

2._n_值的变化,我在您程序第二次出现do until ---end中加入  put 'test' @10_n_=;  之后,显示_n_的值都是第一次do until---end处理一组数据后的值,并没有如想像中从_n_=1开始变化

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-11 00:47