全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2290 5
2011-11-16

ID

A

B

C

D

Attr1

Atrr2

sku1

100

200

300

400

B

D

sku2

500

600

700

800

A

C

期望得到的结果:

ID

x

y

sku1

200

400

sku2

500

700





任务需求:对每一行,选出以Attr1Attr2的值 为列名的列。

目前这一操作已经在DATA步实现了,请教高手如何在SAS SQL中实现上面的操作?Many Thanks.
附DATA步的操作程序:

复制代码


二维码

扫码加我 拉你入群

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

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

全部回复
2011-11-16 14:57:07
复制代码
我是纯粹来搞笑的......
一般还是
列传行保留列名-〉连接-〉行转列 比较靠谱,呵呵
二维码

扫码加我 拉你入群

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

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

2011-11-16 16:15:35
soporaeternus 发表于 2011-11-16 14:57
我是纯粹来搞笑的......
一般还是
列传行保留列名-〉连接-〉行转列 比较靠谱,呵呵
很不错的code,非常感谢!不过还是存在一定的问题的,因为实际数据库中不仅包括ABCD这四列,而是包括300列,按照该方法,temp字符串会很长很长。
二维码

扫码加我 拉你入群

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

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

2011-11-16 16:16:52
tj0412ymy 发表于 2011-11-16 16:15
很不错的code,非常感谢!不过还是存在一定的问题的,因为实际数据库中不仅包括ABCD这四列,而是包括300列 ...
列传行做吧......
二维码

扫码加我 拉你入群

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

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

2011-12-4 07:01:10
soporaeternus 发表于 2011-11-16 14:57
我是纯粹来搞笑的......
一般还是
列传行保留列名-〉连接-〉行转列 比较靠谱,呵呵
Why not use a <case when end> recode statement in SQL?

data t1;
a=1;b=2;c=3;d=4;att1='a';att2='c';
run;

proc sql;
  select
  case att1
  when 'a' then a
  when 'b' then b
  when 'c' then c
  else          d
  end as att1v,
  case att2
  when 'a' then a
  when 'b' then b
  when 'c' then c
  else          d
  end as att1v
  from t1
  ;
  quit;
二维码

扫码加我 拉你入群

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

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

2011-12-5 08:51:28
bobguy 发表于 2011-12-4 07:01
Why not use a  recode statement in SQL?

data t1;
嗯!这是一个好的办法!而且参数化也很简单!学习了!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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