SAS中文论坛

标题: 求助:数据分列? [打印本页]

作者: shiyiming    时间: 2009-12-30 10:42
标题: 求助:数据分列?
求助:数据分列?
一数据集,里面的观测无规律。
data a ;
input x1-x5;
cards;
1 10 11 12 18
1 9 15 16 18
2 3 8 10 12
2 4 9 20 21
2 5 10 13 15
3 6 9 12 13
6 8 9 19 20
;
run;

求助:怎样能将这些观测按照相同的数字分列?
即:将1排成一列、将2排成一列。。。一直到最大的数字。

谢谢!!
作者: shiyiming    时间: 2009-12-30 11:12
标题: Re: 求助:数据分列?
Does this work for you?

[code:m9c0s55y]data a ;
  input x1-x5;
cards;
1 10 11 12 18
1 9 15 16 18
2 3 8 10 12
2 4 9 20 21
2 5 10 13 15
3 6 9 12 13
6 8 9 19 20
;
run;

proc sql;
  create table b as
    select x1 as x
      from a

    union all

    select x2 as x
      from a

    union all

    select x3 as x
      from a

    union all

    select x4 as x
      from a

    union all

    select x5 as x
      from a

    order by x;
quit;

proc transpose data = b
               out = c(drop = _name_);
  var x;
  by x;
run;

proc transpose data = c
               out = results(drop = _name_) prefix = Col;
  var col:;
  id x;
run;
[/code:m9c0s55y]
作者: shiyiming    时间: 2009-12-30 12:31
标题: Re: 求助:数据分列?
[code:3pjygjpk]data a ;
input x1-x5;
cards;
1 10 11 12 18
1 9 15 16 18
2 3 8 10 12
2 4 9 20 21
2 5 10 13 15
3 6 9 12 13
6 8 9 19 20
;
run;

data final(keep=arr1-arr21);
    set a;
    array arr(1:21);
    array arrx x1-x5;
    do i=1 to 5;
    arr(arrx(i))=arrx(i);
    end;
run;[/code:3pjygjpk]
作者: shiyiming    时间: 2009-12-30 12:46
标题: Re: 求助:数据分列?
to ahuige

This is beautiful!  <!-- s8) --><img src="{SMILIES_PATH}/icon_cool.gif" alt="8)" title="Cool" /><!-- s8) -->
作者: shiyiming    时间: 2009-12-30 13:09
标题: Re: 求助:数据分列?
斑竹总是很节俭,不肯多写一个字,上次是n+last.var;这次是arr(arrx(i))=arrx(i);
要都这样,还怎么拉动内需呀?
作者: shiyiming    时间: 2009-12-30 14:04
标题: Re: 求助:数据分列?
to hopewell

领会哥本哈根会议精神 拥抱低碳生活
作者: shiyiming    时间: 2009-12-30 14:57
标题: Re: 求助:数据分列?
谢谢各位大侠的指教!!
这就是想要的格式。 又学了一种分列的方法,精炼!!

不知还有没有其他方法?
上面只是举了一个列子,我的数据集的观测很多,没规律,不知道各观察的大小界限。如:
data a ;
input x1-x5;
cards;
1101 1102 1115 1220 1359
1101 1219 1415 1613 1818
122 1115 1818 5610 6201
1101 1102 1219 1359 1613
18 1110 1220 3348 1507
;
run;

请教有没有办法?

谢谢!
作者: shiyiming    时间: 2009-12-30 18:31
标题: Re: 求助:数据分列?
转换后的变量不连续也不按顺序成吗? 来个高污染,高耗能的...
[code:1ar03mdf]data a ;
        input x1-x5;
        obs=_n_;
cards;
1101 1102 1115 1220 1359
1101 1219 1415 1613 1818
122 1115 1818 5610 6201
1101 1102 1219 1359 1613
18 1110 1220 3348 1507
;

proc transpose data=a out=b;
        by obs;
        var x1-x5;
run;

proc transpose data=b out=b(drop=_name_ obs) prefix=var_;
        id col1;
        by obs;
        var col1;
run;[/code:1ar03mdf]
作者: shiyiming    时间: 2009-12-30 20:06
标题: Re: 求助:数据分列?
OK、非常谢谢!!
作者: shiyiming    时间: 2012-7-22 21:48
标题: Re: 求助:数据分列?
Mark




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2