SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 961|回复: 4
打印 上一主题 下一主题

数据集列转行的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-11-17 13:15:44 | 只看该作者

数据集列转行的问题

数据集中有 a b c d e f g h  这几个变量,c与f、d与g、e与h一一相对应(比如一个是数据一个是单位)现在希望可以把c d e 这几个变量放到一列中,也就是放在一个变量下,原先的变量名为一列,数据为一列。把 f g h这几个变量放到一列下。a b变量不变,但数据要对应上新的变量,形成新的数据集 。请问应该如何编程?
例如
a b c d e f g h
1 2 4 6 4 3 4 6
4 4 4 6 7 8 9 8
变为
a b m n x y
1 2 c  4 f  3
1 2 d  6 g  4
1 2 e  4 h  6
4 4 c  4 f  8
........
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-11-17 13:48:11 | 只看该作者

Re: 数据集列转行的问题

[code:17ykp9oe]data aaa;
        input a b c d e f g h;
        m ='c'; n =c; x ='f'; y =f; output;
        m ='d'; n =d; x ='g'; y =g; output;
        m ='e'; n =e; x ='h'; y =h; output;
cards;
1 2 4 6 4 3 4 6
4 4 4 6 7 8 9 8
;
run;[/code:17ykp9oe]

看,问题解决了。请不要说如果有成千上万的变量如何如何。因为我知道你没有。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-11-17 14:02:21 | 只看该作者

Re: 数据集列转行的问题

如果是数据集已经存在了,并不需要输入变量呢?本人刚开始用SAS,还在上手阶段,谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-11-17 14:39:29 | 只看该作者

Re: 数据集列转行的问题

[code:1bdu9e0q]data raw;
        input a b c d e f g h;
        datalines;
1 2 4 6 4 3 4 6
4 4 4 6 7 8 9 8
;
run;

data tmp(keep=a b m n x y);
        set raw;
        array ary1(*) c d e;
        array ary2(*) f g h;
       
        do i=1 to dim(ary1);
                m=vname(ary1(i));
                n=ary1(i);
                x=vname(ary2(i));
                y=ary2(i);
                output;
        end;
run;[/code:1bdu9e0q]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2009-11-17 15:08:19 | 只看该作者

Re: 数据集列转行的问题

transpose
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-6 06:19 , Processed in 0.078334 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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