楼主: jingliang30
4557 10

求sas 累加 累乘的 宏!!! [推广有奖]

  • 0关注
  • 4粉丝

已卖:211份资源

讲师

46%

还不是VIP/贵宾

-

威望
0
论坛币
348 个
通用积分
11.8609
学术水平
21 点
热心指数
23 点
信用等级
20 点
经验
4721 点
帖子
194
精华
0
在线时间
742 小时
注册时间
2010-9-29
最后登录
2025-9-22

受到警告 楼主
jingliang30 发表于 2013-1-28 15:43:10 |AI写论文
提示: 受到警告  Imasasor 问题问得太简单了,能不能详细阐述一下 2013-1-28 16:01
1论坛币
木有钱。。求求sas  累加 累乘的  宏!!!

最佳答案

yongyitian 查看完整内容

data aa; input var1 var2 var3; datalines; 1 2 3 2 3 4 3 4 5 4 5 6 5 6 7 ; run; %macro sum_prod(In=in, var=var, Out=out); data &Out; if _n_ = 1 then prod_&var=1; set &In; retain prod_&var; prod_&var=prod_&var*&var; sum_&var + &var; run; %mend; %sum_prod(In=aa, var=var1, Out=aa1); proc print data=aa1; title 'dataset aa1'; run; title;

沙发
yongyitian 发表于 2013-1-28 15:43:11
data aa;
input var1 var2 var3;
datalines;
1 2 3
2 3 4
3 4 5
4 5 6
5 6 7
; run;

%macro sum_prod(In=in, var=var, Out=out);
data &Out;
   if _n_ = 1 then prod_&var=1;
    set &In;
        retain prod_&var;
        prod_&var=prod_&var*&var;
        sum_&var + &var;
run;
%mend;
%sum_prod(In=aa, var=var1, Out=aa1);
proc print data=aa1; title 'dataset aa1'; run; title;
已有 1 人评分经验 论坛币 收起 理由
webgu + 60 + 10 热心帮助其他会员

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

藤椅
heperwong 在职认证  发表于 2013-1-28 16:19:36
%macro example;
data _NULL_;
set  A;
call symputx ('_n', _n_);
run;
DATA dataB;
SET A;
%do i =1 %to &_n;
%IF  &i= 1 %THEN %DO;
sum=K;
%END;
%ELSE %do;
sum=sum+k;
retain sum;
%end;
%end;
RUN;
%mend;
累乘将sum=sum+k改为sum=sum*k;

板凳
ihust 发表于 2013-1-28 16:33:15
不用宏也可以累加累乘啊

报纸
jingliang30 发表于 2013-2-1 11:14:15
这个宏怎么调用呢?我是菜鸟一枚

地板
playmore 发表于 2013-2-1 14:14:42
累加可以用Proc SQL中的SUM来做
累乘可以先对数化,再求累加,最后用个exp就好了
已有 1 人评分经验 收起 理由
webgu + 60 观点有启发

总评分: 经验 + 60   查看全部评分

playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

7
ihust 发表于 2013-2-1 17:22:29
playmore 发表于 2013-2-1 14:14
累加可以用Proc SQL中的SUM来做
累乘可以先对数化,再求累加,最后用个exp就好了
对,累乘这是个好方法,我好像在那本书上见过

8
tangliang0905 发表于 2013-2-2 01:03:24
playmore 发表于 2013-2-1 14:14
累加可以用Proc SQL中的SUM来做
累乘可以先对数化,再求累加,最后用个exp就好了
Yes. I remember there is an example in Crackman's website. Just be careful of negative number and 0.
已有 1 人评分经验 收起 理由
webgu + 50 分析的有道理

总评分: 经验 + 50   查看全部评分

9
jingliang30 发表于 2013-3-1 17:06:02
data _a_;
set b (keep=r);
sum+r;
run;

10
jingliang30 发表于 2013-3-27 10:25:44
data _a_;
set b (keep=r);
sum+r;
run;

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

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