全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7687 11
2010-03-12
我想在sas中用sql实现如下问题:
例如有表一:
ID    age     sex
1      25       f
2      20      m
表二:
ID   product
1      a
1      b
2      a
1      b
2      a
如何合并成这样一个表
ID   age   sex     a      b
1     25    f         1      2
2     20    m       2      0
二维码

扫码加我 拉你入群

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

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

全部回复
2010-3-12 15:57:45
非常简单,
二维码

扫码加我 拉你入群

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

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

2010-3-12 16:07:01
请教各位,能不能把程序写一下,谢谢大家
二维码

扫码加我 拉你入群

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

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

2010-3-12 16:19:04
proc sql;
create table t1 as
select
id
,product
,count(*) as cnt
from table2
group by 1,2
;
quit;

然后对上面的表进行转置,使用proc transpose程序,接下来使用merge语句就可以了。自己动动脑筋,别指望人家给现成的答案。
二维码

扫码加我 拉你入群

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

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

2010-3-12 16:21:56
1# 小春1988 你这个合并后的表好像没写对吧 ,具体是什么用意呢?
二维码

扫码加我 拉你入群

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

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

2010-3-12 16:32:17
data a;
        input id:1. age:2. sex:$1.;
        cards;
1 25 f
2 20 m
;
run;

data b;
        input id:1. product:$1.;
        cards;
1 a
1 b
2 a
1 b
2 a
;
run;

proc sql;
        create table c as
        select   A.*
                        ,B.product
                        ,count(*) as t
        from a A
        join b B
        on A.id=B.id
        group by A.id,age,sex,product ;
quit;

proc transpose data=c out=d(drop=_name_);
        by id age sex;
        var t;
        id product;
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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