全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2205 5
2010-09-08
悬赏 20 个论坛币 已解决
i have the following data set:
people pay_amount pay_month Gender
A                  10                1         M
A                   5                 3         M
A                   6                 4         M
B                   2                 4         F
B                   1                 2         F
B                  10                 5         F
...
I want to do a transpose and get the final data set as:
people  Gender pay_month1 pay_month2 pay_month3 pay_month4 pay_month5 ...
A             M          10                                         5                     6
B              F                                 1                                          2                 10
...

最佳答案

xiaoxiahu0571 查看完整内容

data a; input people $ pay_amount pay_month Gender$ @; datalines; A 10 1 M A 5 3 M A 6 4 M B 2 4 F B 1 2 F B 10 5 F ; run; proc sort data=a; ...
二维码

扫码加我 拉你入群

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

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

全部回复
2010-9-8 21:28:46
data a;
input people $ pay_amount pay_month Gender$ @;
datalines;
A                  10                1         M
A                   5                 3         M
A                   6                 4         M
B                   2                 4         F
B                   1                 2         F
B                  10                 5         F
;
run;
proc sort data=a;
        by people pay_month;
run;
proc transpose data=a out=a1(drop=_name_) prefix=pay_month;
        var pay_amount;
        id pay_month;
        by people gender;
run;
二维码

扫码加我 拉你入群

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

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

2010-9-8 21:59:02
Thanks a lot. But the final output the payment month was arranged in mon1 mon3 mon4 mon2 ....is there a way we can arrange it by month? 2# xiaoxiahu0571
二维码

扫码加我 拉你入群

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

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

2010-9-8 22:23:21
%macro aa(n);
        proc sql;
        create table a2 as
        select
        people,gender,
        %do i=1 %to &n.;
                        pay_month&i.,
        %end;
"abc" as tmp
from a1;
quit;
%mend;
%aa(5);
那个transpose里貌似没办法改,,除非第一组A是按照1、2、3、4、5来排序,还有个比较笨的办法先加一组变量,分别为1、2、3、4、5,然后排序后转置就是那个结果了,求高手
二维码

扫码加我 拉你入群

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

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

2010-9-8 23:00:09
I know we can print it out in order like: var month1-month100, and save it 2 excel. but i don't know how to save it as a sas data set...
二维码

扫码加我 拉你入群

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

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

2010-9-9 05:59:40
5# rockfido

复制代码
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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