全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2308 7
2010-05-09
我想将一个学生数据class按性别分为两个表class1,class2,用了下面的程序为什么分成的两个表都和原表格一样啊?
%macro shuju;
data
%do i=1 %to 2;
class&i
%end;
;
set sashelp.class;
%do i=1 %to 2;
if Sex="F" then output class&i;
else if Sex="M" then output class&i;
%end;
run;
%mend shuju;
%shuju;
但是换成下面的就可以了,不知为什么啊。向各位请教了。
%macro shuju;
data
%do i=1 %to 2;
class&i
%end;
;
set sashelp.class;
if Sex="F" then output class1;
%do i=2 %to 2;
else if Sex="M" then output class&i;
%end;
run;
%mend shuju;
%shuju;
二维码

扫码加我 拉你入群

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

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

全部回复
2010-5-9 14:49:27
上一种用options的mprint打出解析的sas语句,如下:
MPRINT(SHUJU):   data class1 class2 ;
MPRINT(SHUJU):   set sashelp.class;
MPRINT(SHUJU):   if Sex="F" then output class1;
MPRINT(SHUJU):   else if Sex="M" then output class1;
MPRINT(SHUJU):   if Sex="F" then output class2;
MPRINT(SHUJU):   else if Sex="M" then output class2;
MPRINT(SHUJU):   run;

发现问题了没有。
二维码

扫码加我 拉你入群

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

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

2010-5-9 14:55:51
路过,
二维码

扫码加我 拉你入群

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

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

2010-5-9 15:02:44
请问2楼的怎么打出你给出的内容啊?请指教,谢谢啦
二维码

扫码加我 拉你入群

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

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

2010-5-9 15:37:24

2楼给出的是LOG内容
不知道楼主为啥用宏 这么简单的问题
data class1(where=(sex="F")) class2(where=(sex="M"));
set sashelp.class;
run;
不就完了嘛

实在不行用select
data class1 class2;
set sashelp.class;
select(sex);
when("F") output class1;
when("M") output class2;
otherwise ;
run;
二维码

扫码加我 拉你入群

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

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

2010-5-9 15:41:25
%macro shuju;
data
%do i=1 %to 2;
class&i
%end;
;
set sashelp.class;
%do i=1 %to ;
if Sex="F" then output class&i.;
%let i=%eval(&i.+1);
if Sex="M" then output class&i.;
%end;
run;
%mend shuju;
%shuju;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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