全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1691 4
2016-09-08
数据集a
idnameageheightweightcountry

1

w

25

125

23

fd

2

r

69

4168

125

cxv

3

f

21

1235

135

sf

4

g

53

15

15

dfb

5

h

5

156

13

fb
希望变成数据集b
idnamevaluearm

1

w

25

1

2

r

69

1

3

f

21

1

4

g

53

1

5

h

5

1

1

w

125

2

2

r

4168

2

3

f

1235

2

4

g

15

2

5

h

156

2

1

w

23

3

2

r

125

3

3

f

135

3

4

g

15

3

5

h

13

3

1

wfd

4

2

rcxv

4

3

fsf

4

4

gdfb

4

5

hfb

4

arm1代表age,arm2代表height,arm3代表weight,arm4代表country;
这个有点像proc transpose过程的逆运算!要是有逆transpose过程就好了!
二维码

扫码加我 拉你入群

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

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

全部回复
2016-9-8 15:42:06
我的思路是:
data b;
  set a;
  arm=1;output b(keep=id name age rename=(age=value));
  arm=2;output b(keep=id name height rename=(height=value));
  arm=3;output b(keep=id name weight rename=(weight=value));
  arm=4;output b(keep=id name country rename=(country=value));
run;
但是运行不出来!
二维码

扫码加我 拉你入群

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

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

2016-9-8 16:13:38
data b;
set a;
array var{*} age height weight;
length value $8.;
do arm = 1 to 4;
        if arm <=3 then value = var[arm];
        else value = country;
        output;
end;
keep d name value arm;
run;
二维码

扫码加我 拉你入群

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

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

2016-9-8 16:29:52
transpose 是可以做互逆过程的,
by id name;
var  age height weight country;
然后按_name_变量排序应该就可以得到了,需要加arm变量的话对_name_变量按age、height、weight、countrty加个order,在排序就好了
二维码

扫码加我 拉你入群

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

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

2016-9-9 10:59:53
独木者 发表于 2016-9-8 16:29
transpose 是可以做互逆过程的,
by id name;
var  age height weight country;
帅,让我对transpose又有了更深一层的认识!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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