Re: [程式] sas MARCO問題

看板Statistics作者 (焦了六年變脆了)時間13年前 (2011/05/02 00:13), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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

05/02 00:29, , 1F
如果原始資料的year是文字型,則第四行code要改成
05/02 00:29, 1F

05/02 00:29, , 2F
if year= "&startyear" then output; 要用雙引號!!
05/02 00:29, 2F

05/02 01:30, , 3F
感謝west大 跟A大的幫忙,我對SAS越來越有興趣了
05/02 01:30, 3F
文章代碼(AID): #1DlOQDGz (Statistics)
討論串 (同標題文章)
文章代碼(AID): #1DlOQDGz (Statistics)