SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 580|回复: 1
打印 上一主题 下一主题

如何得到需要的数据集

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-6-29 15:11:18 | 只看该作者

如何得到需要的数据集

data lab;
input name$;
cards;
hb
alt
;
run;


data aaa;
input hop no hb0 hb2 alt0 alt1 alt2@@;
cards;
1 1 5 4 20 30 40
1 2 6 5 40 50 60
2 3 3 6 20 30 40
2 4 4 7 20 30 40
;
run;

通过数据集lab中name变量进行循环
同时指定%let gcindex=0 1 2; /*表示后缀*/
最终的目的是将hb0 hb1 hb2/alt0 alt1 alt2纵向拼接*/
想得到的数据集
hop no lq lh1 lh2
1 1 5   .  4
1 2 6   .  5
2 3 3   .  6
2 4 4   .  7
1 1 20 30 40
1 2 40 50 60
2 3 20 30 40
2 4 20 30 40

谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-6-29 16:21:20 | 只看该作者

Re: 如何得到需要的数据集

[code:v6f1xntx]data aaa;
    input hop no hb0 hb2 alt0 alt1 alt2@@;
cards;
1 1 5 4 20 30 40
1 2 6 5 40 50 60
2 3 3 6 20 30 40
2 4 4 7 20 30 40
;
data out;
    length var_name $10;
    set aaa;
    array val{*} hb0-numeric-alt2;
    do i=1 to dim(val);
        var_name=compress(vname(val(i)),'','d');
        var_suffix=input(compress(vname(val(i)),'','dk'),best.);
        var_val=val(i);
        output;
    end;
    keep hop no var_name var_suffix var_val;
run;
proc sort data=out out=out;
    by hop no var_name;
run;
proc transpose data=out out=out(drop=_name_) prefix=lh;
    id var_suffix;
    var var_val;
    by hop no var_name;
run;[/code:v6f1xntx]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 05:18 , Processed in 0.083879 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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