楼主: lqwoailuo
4896 4

怎么把几列数据合并成一列? [推广有奖]

  • 4关注
  • 0粉丝

博士生

94%

还不是VIP/贵宾

-

威望
0
论坛币
200 个
通用积分
0.0001
学术水平
4 点
热心指数
5 点
信用等级
5 点
经验
14009 点
帖子
407
精华
0
在线时间
177 小时
注册时间
2013-8-6
最后登录
2014-5-29

楼主
lqwoailuo 发表于 2014-3-23 18:14:48 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
例如,我有如下数据:
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


谢谢大家!
二维码

扫码加我 拉你入群

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

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

关键词:数据合并 Group

沙发
henryyhl 发表于 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;
It's not going to be easy, but it is going to be worth it.

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

板凳
farmman60 发表于 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;

报纸
lqwoailuo 发表于 2014-3-23 21:44:28
farmman60 发表于 2014-3-23 21:20
data x;
input A B  C;
cards;
谢谢。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-28 20:04