全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1601 6
2014-05-30
悬赏 10 个论坛币 已解决

请教SAS高手如何实现下面的目标

*基础数据集 x;

data x;

input name$ chinese math music ;

cards;

Tom    1.1 1.2  1.3

Jack   2.1 2.2  2.3

Alice  3.1 3.2  3.3

;

run;

/*希望产生如下数据集 y

包含三个变量student, subject, score

Tom   chinese 1.1

Tom   math    1.2

Tom   music   1.3

Jack  chinese 2.1

Jack  math    2.2

Jack  music   2.3

Alice chinese 3.1

Alice math    3.2

Alice music   3.3

*/

注意数据集x中除姓名name外,课程Chinese, Math, Music可能还包括其他课程,但在x中都是变量名,需要程序自动判断有多少种课程及其名称,然后将课程名列在数据集y的subject变量中。

请高手指教,多谢!

最佳答案

farmman60 查看完整内容

Replace "drop chinese--english; " with "keep name subject score;" or get a macro variable of subjects".
二维码

扫码加我 拉你入群

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

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

全部回复
2014-5-30 22:58:49
fanglibing 发表于 2014-5-31 18:34
感谢mingfeng07的回答,遗憾的是proc transpose 过程中的var变量列表需要手动确定。
感谢farmman60,程序最 ...
Replace "drop chinese--english; " with "keep name subject score;" or get a macro variable of subjects".
二维码

扫码加我 拉你入群

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

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

2014-5-31 01:09:43
复制代码
二维码

扫码加我 拉你入群

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

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

2014-5-31 04:22:04
复制代码
二维码

扫码加我 拉你入群

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

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

2014-5-31 18:34:06
感谢mingfeng07的回答,遗憾的是proc transpose 过程中的var变量列表需要手动确定。
感谢farmman60,程序最大可能的实现了目标,遗憾的是drop语句中的起止变量名需要手动确定。
再次感谢两位大侠!
二维码

扫码加我 拉你入群

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

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

2014-5-31 19:39:58
完美解决,全自动化实现。


复制代码
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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