楼主: myocean7
3989 8

[原创博文] 求助关于求和 + 所占比例计算 [推广有奖]

  • 0关注
  • 1粉丝

大专生

66%

还不是VIP/贵宾

-

威望
0
论坛币
331 个
通用积分
0
学术水平
1 点
热心指数
2 点
信用等级
1 点
经验
1013 点
帖子
36
精华
0
在线时间
68 小时
注册时间
2011-7-17
最后登录
2016-1-11

楼主
myocean7 发表于 2011-8-24 11:54:42 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
新手上路,望各位大侠多多指教。



现有两个变量和四组数据,想要先计算total_sales, 然后对每一个item计算share of sales (=sales/total_sales *100%).

item  sales  share_of_sales
1      5
2      5
3     10
4     10


谢谢:)
二维码

扫码加我 拉你入群

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

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

关键词:sales share Total sale item 新手上路 share

沙发
honghejing 发表于 2011-8-24 12:31:25
不客气,可以用SQL搞搞

藤椅
yugao1986 发表于 2011-8-24 14:45:58
  1. data need;
  2. set test ;
  3. retain sum;
  4. sum+sales;
  5. ratio=sales/sum;
  6. drop sum;
  7. run;
复制代码
三人行必有我师

板凳
soporaeternus 发表于 2011-8-24 15:01:30
  1. data b;
  2.         if _N_=1 then do until(EOF);
  3.                 set a end=EOF;
  4.                 total_sales+sales;
  5.         end;
  6.         set a;
  7.         share_of_sales=sales/total_sales;
  8.         format share_of_sales percent8.2;
  9. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
yugao1986 + 1 + 1 + 1 精彩

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

Let them be hard, but never unjust

报纸
honghejing 发表于 2011-8-24 16:01:24
data a;
input item  sales;
cards;
1      5
2      5
3     10
4     10
;
run;

proc sql;
        create table b as
        select *,sales/sum(sales)*100 as share_of_sales   from a
        ;
quit;

地板
zhangzachary 发表于 2011-8-24 18:05:29
soporaeternus 发表于 2011-8-24 15:01
每次用
if _N_=1 then do until(EOF);
                set a end=EOF;
                <................>
        end;
是不是相当于对a做2次data步循环,只是合并在一个data步里做了呢?
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

7
soporaeternus 发表于 2011-8-25 08:46:07
zhangzachary 发表于 2011-8-24 18:05
每次用
if _N_=1 then do until(EOF);
                set a end=EOF;
恩,涉及求和后的每行对和的计算,本质对a读取了2次
Let them be hard, but never unjust

8
myocean7 发表于 2011-8-25 09:51:02
honghejing 发表于 2011-8-24 16:01
data a;
input item  sales;
cards;
这个易懂,多谢!

9
dyes0506 发表于 2011-8-25 10:25:17
proc sql;
        select item,sales,sum(sales) as share_of_sales,sales/calculated share_of_sales as proportion
        from test;
quit;
从数据到结论过程关键的是人不是软件......

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

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