楼主: thebouncer1
2048 6

求助, SAS求所有组合 [推广有奖]

  • 0关注
  • 0粉丝

已卖:5份资源

高中生

35%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
220 点
帖子
24
精华
0
在线时间
25 小时
注册时间
2009-8-18
最后登录
2025-6-4

楼主
thebouncer1 发表于 2010-6-12 12:09:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有一个表是在每个省,城市,区的各个产品的销量。 如下:
province  city district  product  sales
A1 B1 C1 P1 100
A1 B1 C1 P2 200
A2 B2 C2 P1 1289
A2 B2 C2 P2 500
A2 B2 C2 P3 285
A3 B3 C3 P1 40
另外一个表是各个商店的系数,如下,
province  city district  Store Factors
A1 B1 C1 T1 1.5
A1 B1 C1 T2 2.1
A2 B2 C2 T1 1.2
A2 B2 C2 T2 1.5
A3 B3 C3 T1 2
我现在想要的是
province  city district  Product Store   Sales
A2 B2 C2 P1 T1       =1289*1.2/(1.2+1.5)
A2 B2 C2 P1 T2       =1289*1.5/(1.2+1.5)
A2 B2 C2 P2 T1       =500*1.2/(1.2+1.5)
A2 B2 C2 P2 T2       =500*1.5/(1.2+1.5)
A2 B2 C2 P3 T1       =285*1.2/(1.2+1.5)
A2 B2 C2 P3 T2       =285*1.5/(1.2+1.5)
也就是把一表中的每一个产品的销量都按比例分到各个店里,比例是根据第二个表的店的系数。
每个地方的品种数量和商店的数量都不一样, 我要把所有的组合都列出来。
谢谢!!
二维码

扫码加我 拉你入群

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

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

关键词:province Product factors produc factor 求助 SAS

回帖推荐

soporaeternus 发表于3楼  查看完整内容

希望是对的 希望对你有用......

本帖被以下文库推荐

沙发
醉_清风 发表于 2010-6-12 13:39:29
第一张表里没有商店 第二张表里每个省,城市,区的商店系数又不一样
这个怎么算呢?
从来不需要想起 永远也不会忘记

藤椅
soporaeternus 发表于 2010-6-12 14:20:55
  1. data a;
  2.         input province$  city $ district $ product $ sales;
  3.         datalines;
  4.         A1 B1 C1 P1 100
  5. A1 B1 C1 P2 200
  6. A2 B2 C2 P1 1289
  7. A2 B2 C2 P2 500
  8. A2 B2 C2 P3 285
  9. A3 B3 C3 P1 40
  10. ;
  11. run;

  12. data b;
  13.         input province $ city $ district $  Store $ Factors;
  14.         datalines;
  15.         A1 B1 C1 T1 1.5
  16. A1 B1 C1 T2 2.1
  17. A2 B2 C2 T1 1.2
  18. A2 B2 C2 T2 1.5
  19. A3 B3 C3 T1 2
  20. ;
  21. run;

  22. proc sql;
  23.         create table c as
  24.                 select
  25.                         a.province
  26.                         ,a.city
  27.                         ,a.district
  28.                         ,b.product
  29.                         ,a.store
  30.                         ,b.sales*a.factors/sum(a.factors) as sales
  31.                 from b a
  32.                 left join a b
  33.                 on
  34.                         a.province=b.province
  35.                         and a.city=b.city
  36.                         and a.district=b.district
  37.                 group by
  38.                         a.province
  39.                         ,a.city
  40.                         ,a.district
  41.                         ,b.product
  42.         ;
  43. quit;
复制代码
希望是对的
希望对你有用......
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

Let them be hard, but never unjust

板凳
醉_清风 发表于 2010-6-12 15:21:43
助人乃快乐之本
像楼上的同志学习
从来不需要想起 永远也不会忘记

报纸
thebouncer1 发表于 2010-6-12 20:29:32
谢谢楼上, 上班再试一下,家里没有SAS。

地板
wkn1986 发表于 2010-6-13 01:41:08
data a1;
input province $   city  $ district $  product $ sales;
cards;
A1 B1 C1 P1 100
A1 B1 C1 P2 200
A2 B2 C2 P1 1289
A2 B2 C2 P2 500
A2 B2 C2 P3 285
A3 B3 C3 P1 40
;
run;
data a2;
input x1 $   x2 $ x3$  store $ factor;
cards;
A1 B1 C1 T1 1.5
A1 B1 C1 T2 2.1
A2 B2 C2 T1 1.2
A2 B2 C2 T2 1.5
A3 B3 C3 T1 2
;
run;
data a3;
retain sum;
set a1;
by province city district;
if first.province or first.city or first.district then do;
sum=0;
do i=1 to n;
set a2 nobs=n point=i;
if province=x1 and city=x2 and district=x3 then sum+factor;
end;end;
do i=1 to n;
set a2 nobs=n point=i;
if province=x1 and city=x2 and district=x3 then do;
sale=sales*factor/sum;
output;
end;end;
drop sum x1-x3;
run;

7
thebouncer1 发表于 2010-6-15 06:35:35
soporaeternus 发表于 2010-6-12 14:20
  1. data a;
  2.         input province$  city $ district $ product $ sales;
  3.         datalines;
  4.         A1 B1 C1 P1 100
  5. A1 B1 C1 P2 200
  6. A2 B2 C2 P1 1289
  7. A2 B2 C2 P2 500
  8. A2 B2 C2 P3 285
  9. A3 B3 C3 P1 40
  10. ;
  11. run;

  12. data b;
  13.         input province $ city $ district $  Store $ Factors;
  14.         datalines;
  15.         A1 B1 C1 T1 1.5
  16. A1 B1 C1 T2 2.1
  17. A2 B2 C2 T1 1.2
  18. A2 B2 C2 T2 1.5
  19. A3 B3 C3 T1 2
  20. ;
  21. run;

  22. proc sql;
  23.         create table c as
  24.                 select
  25.                         a.province
  26.                         ,a.city
  27.                         ,a.district
  28.                         ,b.product
  29.                         ,a.store
  30.                         ,b.sales*a.factors/sum(a.factors) as sales
  31.                 from b a
  32.                 left join a b
  33.                 on
  34.                         a.province=b.province
  35.                         and a.city=b.city
  36.                         and a.district=b.district
  37.                 group by
  38.                         a.province
  39.                         ,a.city
  40.                         ,a.district
  41.                         ,b.product
  42.         ;
  43. quit;
复制代码
希望是对的
希望对你有用......
这个稍微有点问题。 问题出在 b.sales*a.factors/sum(a.factors),

比如当有两个products,三个stores 的时候, 它就变成了 6 个数的平均。
但是我只需要三个stores factors 的平均就可以了。

不过稍微改一下就可以了。 谢谢!!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 04:08