SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 2791|回复: 6
打印 上一主题 下一主题

求助:怎样对列求和?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-7-15 04:04:59 | 只看该作者

求助:怎样对列求和?

比如说,如果data如下:
a    3
  b    5
  a    2
  b    4

那么我怎样才能生成这样一个表格:
a   5
  b   9

我想要一个表格,所以应该不可以用proc summary 或者 proc print 之类的。据说应该要用proc sql ?

谢谢各位大虾
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-7-15 04:49:29 | 只看该作者

Re: 求助:怎样对列求和?

Try this code. It creates a csv file in "c\:";
[code:2hf4v2qf]data one;
input id $ n @@;
cards;
a 3
b 5
a 2
b 4
;
run;

proc print; run;

ods csv file='c:\table.csv';
proc means data=one sum;
class id;
run;
ods csv close;
[/code:2hf4v2qf]

Hope this helps.

YZ
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-7-15 05:33:32 | 只看该作者

Re: 求助:怎样对列求和?

对的对的,这个就是我想要的。谢谢大虾!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-7-15 12:05:14 | 只看该作者

Re: 求助:怎样对列求和?

对于那些proc步生成的结果可以用ods命令改变默认的输出方式,建议看看ods帮助。
对于此问题,你也可以用data歩或者proc sql实现。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-7-25 17:09:37 | 只看该作者

Re: 求助:怎样对列求和?

很简单嘛 <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
data one;
input x$ y;
cards;
a 3
b 5
a 2
b 4
run;
proc sort data=one;
by x;
data two;
set one;
by x;
retain total 0;
if first.x then total=0;
total=total+y;
if last.x ;
run;
proc print data=two;
run
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2011-3-24 09:35:17 | 只看该作者

Re: 求助:怎样对列求和?

最后那个只用数据步的很好,谢谢,那个正是我想要的。
就是那段code我有点不明白  first.x代表什么阿
回复 支持 反对

使用道具 举报

0

主题

0

帖子

2

积分

新手上路

Rank: 1

积分
2
7#
发表于 2011-3-24 11:01:53 | 只看该作者

Re: 求助:怎样对列求和?

first.x
判断是否是第一个x,if yes,计数器清零重新求和
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-11 11:01 , Processed in 0.072755 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表