全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4854 4
2014-03-23
例如,我有如下数据:
A B  C
1 2  3
2 3  4
5 6  8
我想把这3列数据合成一列,然后在前面多一列组别,分别代表它以前属于哪一列的数据:
GROUP    X
    1        1
    1        2
    1        5
    2        2
    2        3
    2        6
    3        3
    3        4
    3        8


谢谢大家!
二维码

扫码加我 拉你入群

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

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

全部回复
2014-3-23 18:30:26
比较原始的一种方法:用2次proc transpose,你试试看。
data x;
input A B  C;
cards;
1 2  3
2 3  4
5 6  8
;
run;
proc transpose data=x out=x2;
var a b c;
run;
proc transpose data=x2 out=x3;
by _name_;
var col1-col3;
run;
二维码

扫码加我 拉你入群

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

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

2014-3-23 19:35:19
henryyhl 发表于 2014-3-23 18:30
比较原始的一种方法:用2次proc transpose,你试试看。
data x;
input A B  C;
谢谢您。
二维码

扫码加我 拉你入群

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

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

2014-3-23 21:20:15
data x;
input A B  C;
cards;
1 2  3
2 3  4
5 6  8
;
run;

data want;
  set x;
  array var _numeric_;
  do over var;
  group=vname(var);
    x=var;
        output;
  end;
drop a b c;
run;

proc sort data=want;
by group;
run;
二维码

扫码加我 拉你入群

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

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

2014-3-23 21:44:28
farmman60 发表于 2014-3-23 21:20
data x;
input A B  C;
cards;
谢谢。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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