全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1474 7
2012-06-10
悬赏 10 个论坛币 未解决
数据集如下
a b c
1 2 11
1 3 22
1 4 33
2 1 44
2 3 11
......
想变成的样子是
a b c
1 1 .
1 2 11
1 3 22
1 4 .
2 1 44
2 2 .
2 3 11
2 4 .
.....
即对a 的取值,b都要从1取到4,c保持原有值或者缺失。
。,sas刚入门,谢谢各位大侠帮帮忙。。。。

二维码

扫码加我 拉你入群

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

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

全部回复
2012-6-10 22:49:29
/*生成中间辅助数据集*/
data b;
do a=1 to 2;  /*假设你的a 数据集中变量a的值只到2*/
do b=1 to 4;
output;
end;
end;
run;

proc sort data=a;
  by a b;
run;

proc sort data=b;
  by a b;
run;
/*t生成目标数据集*/
data want;
merge a b;
by a b;
run;
二维码

扫码加我 拉你入群

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

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

2012-6-11 10:22:36
webgu 发表于 2012-6-10 22:49
/*生成中间辅助数据集*/
data b;
do a=1 to 2;  /*假设你的a 数据集中变量a的值只到2*/
非常感谢你的回答,不过我的a不是规律的。
我自己想了个办法,写出来跟大家分享下
data a;
set b;
by a;
if first.a;
run;
data d;
set a;
by a;
do i=1 to 4;
b=i;
output;
drop i;
end;
proc sort data=d;
by a b;
run;
proc sort data=b;
by a b;
run;
data e;
merge d b;
by a b;
run;
二维码

扫码加我 拉你入群

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

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

2012-6-11 12:34:52
复制代码
二维码

扫码加我 拉你入群

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

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

2012-6-11 21:06:28
复制代码
如果你的数据集中的a是不规律的,只要修改一下这个程序就可以了。
二维码

扫码加我 拉你入群

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

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

2012-6-11 23:00:08
good to know
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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