楼主: loyelimy
3652 6

【求助】弱问sas里面有没有函数可以求积 [推广有奖]

  • 0关注
  • 0粉丝

大专生

15%

还不是VIP/贵宾

-

威望
0
论坛币
795 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
297 点
帖子
30
精华
0
在线时间
46 小时
注册时间
2009-3-1
最后登录
2018-12-19

楼主
loyelimy 发表于 2009-5-24 09:16:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

就像sum求和一样,想求分类乘积,不知道如何实现。

二维码

扫码加我 拉你入群

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

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

关键词:有没有 如何实现 不知道 Sum 函数 SAS

回帖推荐

rdzr 发表于7楼  查看完整内容

6楼正解,偶学习了,这里似乎可以简化一下程序,让您见笑了:data dset;input x c;cards;-1   1-2   12    1.    1-2.5 20    21    2.    21    32    33    3;proc sql;select c, (-1)**sum((x<0&^missing(x)))*(sum((x=0))=0)*exp(sum(^missing(x))*avg(log(abs(x)))) as pr ...

jingju11 发表于6楼  查看完整内容

data dset; dset;input x c;cards;-1 1-2 1. 1-2.5 20 2;;-1 1-2 1. 1-2.5 20 2;proc sql;select (-1)**sum((x<0&^missing(x)))*(sum((x=0))=0)*exp(sum(^missing(x))*avg(log(abs(x)))) as productX from dset group by c; sql;select (-1)**sum((x<0&^missing(x)))*(sum((x=0))=0)*exp(sum(^missing(x))*avg(log(abs(x)))) as productX from dset group by c;select (-1)**sum((x<0&^missing( ...

rdzr 发表于5楼  查看完整内容

LZ,下面一下思路,请参考——注意:由于ln(ab)=ln(a)+ln(b),因此可将原数据取对数后再分类求和,然后再求出分类积,程序示意如下: data a; input x c @@; y=log(x);cards;2 1 3 1 4 1 5 2 6 2 7 2;proc means sum; class c; var y;run;运行结果如下:                       &nb ...

本帖被以下文库推荐

沙发
爱萌 发表于 2009-5-24 11:37:00

oh, this is simple problem ,you can process your self

最恨对我说谎或欺骗我的人

藤椅
jingju11 发表于 2009-5-25 11:54:00
proc sql;select (sum((x=0)))*exp(count(*)*avg(log(x))) as productX from dset(where=(x^=.));quit;

板凳
nkwilling 发表于 2009-5-25 12:22:00

希望能正面回答别人的提问,别人不懂才问的,不管在你看来是否所谓的真简单。

报纸
rdzr 发表于 2009-5-25 17:44:00

LZ,下面一下思路,请参考——注意:由于ln(ab)=ln(a)+ln(b),因此可将原数据取对数后再分类求和,然后再求出分类积,程序示意如下:

 data a;

 input x c @@;

 y=log(x);

cards;

2 1 3 1 4 1 5 2 6 2 7 2

;

proc means sum;

 class c;

 var y;

run;

运行结果如下:

                                             The SAS System           16:56 Tuesday, May 25, 2009  15

                                       The MEANS Procedure

                                      Analysis Variable : y

                                                 N
                                          c    Obs             Sum
                               -----------------------------------
                                          1      3       3.1780538

                                          2      3       5.3471075
                               -----------------------------------

然后,可以很容易地用 exp(3.1780538)=24, exp(5.3471075)=210 ,这就是 LZ 所需要的分类乘积结果。谢谢!

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

地板
jingju11 发表于 2009-5-25 21:38:00

data dset;

dset;

input x c;

cards;

-1 1

-2 1

. 1

-2.5 2

0 2

;

;

-1 1

-2 1

. 1

-2.5 2

0 2

;

proc sql;

select (-1)**sum((x<0&^missing(x)))*(sum((x=0))=0)*exp(sum(^missing(x))*avg(log(abs(x)))) as productX

from dset group by c;

sql;

select (-1)**sum((x<0&^missing(x)))*(sum((x=0))=0)*exp(sum(^missing(x))*avg(log(abs(x)))) as productX

from dset group by c;

select (-1)**sum((x<0&^missing(x)))*(sum((x=0))=0)*exp(sum(^missing(x))*avg(log(abs(x)))) as productX

from dset group by c;

from dset group by c;

quit;

;

*just for fun;

*楼上的没有考虑0和负数 的情况;

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

7
rdzr 发表于 2009-5-26 11:39:00

6楼正解,偶学习了,这里似乎可以简化一下程序,让您见笑了:

data dset;
input x c;
cards;
-1   1
-2   1
2    1
.    1
-2.5 2
0    2
1    2
.    2
1    3
2    3
3    3
;
proc sql;
select c, (-1)**sum((x<0&^missing(x)))*(sum((x=0))=0)*exp(sum(^missing(x))*avg(log(abs(x)))) as productX
from dset group by c;
quit;

下面是运行的结果:

                                            The SAS System         08:58 Wednesday, May 26, 2009   7

                                              c  productX
                                       ------------------
                                              1         4
                                              2         0
                                              3         6

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

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

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