全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4252 7
2018-05-11
我想将id相同的记录合为一条,原数据是这样的:
QQ截图20180511190310.png



想以id为根据,id相同的,把var1、var2、var3加在后面,变成如下这种:

QQ截图20180511190729.png

请问是用proc transpose过程吗?如果是的话,其中的prefix、var、id等参数应该怎么定义呢?如果不是的话,应该用什么语句呢?
谢谢大家!!
二维码

扫码加我 拉你入群

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

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

全部回复
2018-5-11 19:13:02
数据在这里~~
附件列表

result.xlsx

大小:8.72 KB

 马上下载

原数据

example.xlsx

大小:10 KB

 马上下载

结果形式

二维码

扫码加我 拉你入群

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

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

2018-5-12 11:25:49
我觉得你干脆transpose &N.次,把结果再一起merge起来的好,prefix = con1_ 这样;

你这用data步first、last + array也能做,就是不怎么直观
二维码

扫码加我 拉你入群

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

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

2020-11-14 10:59:24
Tigflanker 发表于 2018-5-12 11:25
我觉得你干脆transpose &N.次,把结果再一起merge起来的好,prefix = con1_ 这样;

你这用data步first、 ...
妈耶,不详细介绍一下,我都不知道去哪学……transpose太麻烦了
二维码

扫码加我 拉你入群

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

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

2021-11-8 09:18:15
请问楼主的问题有解决嘛,我也遇到了相同的问题
二维码

扫码加我 拉你入群

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

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

2021-11-8 16:02:27
data temp1;
  set manyper(rename=(var1=var1n var3=var3n));
  by id;
        if first.id then n=0;
        n+1;
        var1=put(var1n,8.);
        var3=put(var3n,mmddyy10.);
        drop no name var1n var3n;
run;

proc transpose data=temp1 out=temp2;
  by id n;
  var var1 var2 var3;
run;

data temp3;
  set temp2;
  namen=catx('_',_name_,n);
  drop n _name_ _label_;
run;

proc sort data=temp3;
  by id;
run;

proc transpose data=temp3 out=oneper;
  by id;
  id namen;
  var COL1;
run;
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
栏目导航
热门文章
推荐文章

说点什么

分享

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