全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
9691 8
2013-08-13
悬赏 10 个论坛币 未解决
假设我的数据有如下两列:
var1 var2
A     10
B      11
A      20
C      30
B       15
D      14
B      23
.....

我现在想对var1进行分组计数、并计算每一组的均值。即要生成两个新变量var3和var4,var3用来存放每组对应的频数,var4用来存放每组对应的均值。

请问用data步程序如何做?

以前好像解决过类似的问题,但长时间没接触SAS,又忘记了。
二维码

扫码加我 拉你入群

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

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

全部回复
2013-8-13 20:19:32
proc summary data = yourdata nway;
    class var1;
    var var2;
    output out = summary(drop = _type_ index = (var1) rename = (_freq_ = var3)) mean = var4;
run;

data result;
    set yourdata;
    set summary key = var1/unique;
    _error_ = 0; if _iorc_ = 0;
run;
二维码

扫码加我 拉你入群

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

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

2013-8-14 00:39:08
in data step looks like not explicit. It is much clear for what it does in 2nd floor.
Of note: if VAR1 contains missing, you have to work extra lines on it.
JingJu
复制代码
二维码

扫码加我 拉你入群

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

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

2013-8-14 10:00:33
jingju11 发表于 2013-8-14 00:39
in data step looks like not explicit. It is much clear for what it does in 2nd floor.
Of note: if V ...
jingju11, thanks for your answer, but I suddenly find a really easy way to solve this problem, for your codes, I don't understand somewhere, but I will learn it and make it clear, thanks again.
二维码

扫码加我 拉你入群

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

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

2013-8-14 10:01:07
yuerqieqie 发表于 2013-8-13 20:19
proc summary data = yourdata nway;
    class var1;
    var var2;
thanks for your answer.
二维码

扫码加我 拉你入群

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

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

2013-8-15 10:03:03
干嘛非用data步,用sql很方便
proc sql;
create table temp as
select var1,var2,sum(var2),avg(var2)
from yourdata
group by var1
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群