楼主: wayne0524
2158 7

[有偿编程] 高手进!关于增加一行累加结果的观测 [推广有奖]

  • 25关注
  • 6粉丝

已卖:1370份资源

讲师

40%

还不是VIP/贵宾

-

威望
0
论坛币
4534 个
通用积分
8.4306
学术水平
30 点
热心指数
44 点
信用等级
30 点
经验
8310 点
帖子
367
精华
0
在线时间
488 小时
注册时间
2007-2-3
最后登录
2022-11-2

楼主
wayne0524 发表于 2013-5-3 21:26:22 |AI写论文
15论坛币
data kkk;                                                                                                                           
input a $3.  b 4. c 4. ;                                                                                                               
cards;                                                                                                                                 
K1 1    4                                                                                                                              
K2 2    5                                                                                                                              
K3 3    6                                                                                                                              
;                                                                                                                                       
run;         

简单举例如上,假如一共有Kn 个观测,现想增加一行观测在最后一行的Kn下面,增加的最后的观测,a 字段名称为ALL , B、C字段 是 K1-Kn的加总和,如何用代码实现??求高手解答!请附上代码~ 非常感谢!!
关键词:cards Input 求高手解答 非常感谢 Data

本帖被以下文库推荐

沙发
邓贵大 发表于 2013-5-3 21:26:23
  1. data lll;
  2. do until(eof);
  3. set kkk end=eof;
  4. _b= sum(_b, b);
  5. _c = sum(_c, c);
  6. output;
  7. end;
  8. a='ALL';
  9. b=_b;
  10. c=_c;
  11. output;
  12. drop _b _C;

  13. *or use proc tabulate/report etc;
  14. proc tabulate data=kkk order=data out=lll;
  15. class a;
  16. var b c;
  17. tables a all, b*sum c*sum;
  18. data lll;
  19. set lll(keep=a b_sum c_sum rename=(b_sum=b c_sum=c));
  20. if a=' ' then a='ALL';
  21. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Tigflanker + 1 + 1 + 1 观点有启发

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

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.

藤椅
cwh32314 发表于 2013-5-3 21:30:53
干嘛的

板凳
rdwalk 发表于 2013-5-3 21:51:41
proc sql;
  create table summary as
  select sum(b) as b,sum(c) as c
    from kkk;
quit;
data final;
  set kkk summary;
  if a=' ' then a='ALL';
run;

or

data sum_down(drop = sum_b sum_c);
  set kkk end=last;
  sum_b+b;sum_c+c;output;
  if last then do;
    a='ALL';
    b=sum_b;
    c=sum_c;
    output;
  end;
run;

报纸
yongyitian 发表于 2013-5-3 22:51:34
data bbb;
   set kkk end=eof;
   sum_b + b;
   sum_c + c;
   if eof then do;
   a = 'All';
   b = sum_b;
   c = sum_c;
   output;
   end;
   drop sum_b sum_c;
run;
data result;
    set kkk bbb;
run;

地板
wayne0524 发表于 2013-5-4 19:20:40
邓贵大 发表于 2013-5-3 21:26
第二种,tabulate 的思路给我启发,非常感谢!

7
wayne0524 发表于 2013-5-4 19:22:02
rdwalk 发表于 2013-5-3 21:51
proc sql;
  create table summary as
  select sum(b) as b,sum(c) as c
非常感谢您的思路和代码~!由于楼上答案也是准确的在先,所以不能把分给你了,谢谢!

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

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