作者west1996 (焦了六年变脆了)
看板Statistics
标题Re: [程式] sas MARCO问题
时间Mon May 2 00:12:58 2011
※ 引述《c21221203 (kkii)》之铭言:
: -------------------------------------------------------------------
: [软体程式类别]:
: sas
: [程式问题]:
: 资料处理
: [软体熟悉度]:
: 低(1~3个月)
: [问题叙述]:
: 不好意思,又来麻烦各位
: 小弟我资料集bbb2里面有一个为的YEAR的变数,
: 我想要把资料分年取出,
: 但不想要一年一年重打code一次,
: 所以研究了一下marco,
: 但有错误起各位高手帮忙解谜。
: [程式范例]:
: 这是一般我只取2006年的时候:
: data cutyear;
: set bbb2;
: if year=2006 then output;
: run;
%macro cut_year(startyear);
data cutyear&startyear;
set bbb2;
if year=&startyear then output;
run;
%mend;
%cut_year(XXXX)
这样就行了
: 但我换成marco後就不能跑
: %macro CUT_YEAR(STARTYEAR);
: DATA CUTYEAR;
: SET BBB2;
: %IF STARTYEAR=%year %THEN %OUTPUT;
: %MEND
: %MACRO CUT_YEAR(2007);
: 请问我在marco里面的data是我修改我的STARTYEAR以後,每次跑出来的资料,都会在这
: 资料库里吗? 我的OUTPUT都无法变成蓝色字体。
: 这是我的log错误的地方。
: WARNING: Extraneous information on %MEND statement ignored for macro
: definition CUT_YEAR.
: 改成五楼大大的方是以後,没有出错了但是没东西
: %macro CUT_YEAR(STARTYEAR);
: DATA CUTYEAR2007;
: SET BBB2;
: IF YEAR=&STARTYEAR THEN OUTPUT;
: %MEND
: % CUT_YEAR(2007);
: THEN OUTPUT 是黑色字这是正常吗?
macro语法里只有对macro来讲是关键字的才会变蓝色
像是 %if %then %do %end %sysfunc这一类的
其他一般在data step或是procedure理的关键字是不会变色的
: 没有档案跑出来说QQ
: -----------------------------------------------------------------------------
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.243.0.65
1F:→ west1996:如果原始资料的year是文字型,则第四行code要改成 05/02 00:29
2F:→ west1996:if year= "&startyear" then output; 要用双引号!! 05/02 00:29
3F:推 c21221203:感谢west大 跟A大的帮忙,我对SAS越来越有兴趣了 05/02 01:30