全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4046 3
2019-07-10




图一变成图二,当有行和列都有无数条的时候 有什么简单的办法

no

时间

a

b

c

d

1

m1

1

2

2

2

1

m2

2

3

3

4

1

m3

2

3

4

5

1

m4

1

2

1

2

2

m1

1

2

2

2

2

m2

2

3

3

4

2

m3

2

3

4

5

3

m1

1

2

2

2

3

m2

2

3

3

4

3

m3

2

3

4

5

3

m4

1

2

1

2



no

m1_a

m2_a

m3_a

m4_a

m1_b

m2_b

m3_b

m4_b

m1_c

m2_c

m3_c

m4_c

m1_d

m2_d

m3_d

m4_d

1

1

2

2

1

2

3

3

2

2

3

4

1

2

4

5

2

2

1

2

2

2

3

3

2

3

4

2

4

5

3

1

2

2

1

2

3

3

2

2

3

4

1

2

4

5

2


二维码

扫码加我 拉你入群

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

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

全部回复
2019-7-11 21:40:37
这种一般有两种方法,比较简单的是transpose过程,这种代码量比较小,你自己在帮助里搜一下吧;另一种是data步里面用retain语句,这种复杂些,代码量比较大,但是可以同时做比较多的处理。
二维码

扫码加我 拉你入群

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

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

2019-7-12 10:33:41
使用transpose和merge
data test;
input no time $  a b c d;
format time $ 2.;
cards;
1 m1 1 2 2 2
1 m2 2 3 3 4
1 m3 2 3 4 5
1 m4 1 2 1 2
2 m1 1 2 2 2
2 m2 2 3 3 4
2 m3 2 3 4 5
3 m1 1 2 2 2
3 m2 2 3 3 4
3 m3 2 3 4 5
3 m4 1 2 1 2
;
run;
proc transpose data=test out=testa(drop=_name_) prefix=a_;
by no;
id time;
var a;
run;
proc transpose data=test out=testb(drop=_name_) prefix=b_;
by no;
id time;
var b;
run;
proc transpose data=test out=testc(drop=_name_)  prefix=c_;
by no;
id time;
var c;
run;
proc transpose data=test out=testd(drop=_name_)  prefix=d_;
by no;
id time;
var d;
run;
data result;
merge testa testb testc testd;
by no;
run;


二维码

扫码加我 拉你入群

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

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

2019-7-12 16:16:28
CTR1013 发表于 2019-7-11 21:40
这种一般有两种方法,比较简单的是transpose过程,这种代码量比较小,你自己在帮助里搜一下吧;另一种是dat ...
retain的方法 能说下思路嘛
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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