我試圖將數字變量傳遞到此宏。我能夠通過KEEP和SET語句,但是當它到達RENAME語句時,我得到以下錯誤:在SAS中使用數字列名稱
錯誤:變量'2013'n不在文件WORK.'2013'n上。
錯誤:文件WORK上的DROP,KEEP或RENAME選項無效.'2013'n。
%macro step2(year,cwyear);
TITLE; FOOTNOTE;
DATA WORK._EG_CFMT;
LENGTH label $ 9;
SET WORK."&year."n (KEEP="&year."n "&cwyear."n RENAME=("&year."n =start "&year."n =label)) END=__last;
RETAIN fmtname "cw&year."n type "C";
end=start;
RUN;
%mend step2;
當我在&年左右更改雙引號時。單引號,像這樣:
SET WORK.'&year.'n (KEEP="&year."n "&cwyear."n RENAME=("&year."n =start "&year."n =label))
我得到這個錯誤:
錯誤:檔案工作「。 & YEAR.'n.DATA不存在。
當我變回所有雙引號和去除n的,我得到以下錯誤:
ERROR 22-322:語法錯誤,需要下列之一:名稱,引用的字符串,;, CUROBS,END,INDSNAME,KEY,KEYRESET,KEYS, NOBS,OPEN,POINT,DATA,LAST,NULL。
我該如何做這項工作?
感謝您的幫助!
爲什麼你刪除'N'當你切換到雙引號? – Joe
,因爲原始代碼有雙引號和n's,並且引發錯誤。我試圖測試一些不同於我已經知道不起作用的東西。 – theponcer
原始錯誤消息只是說該變量不存在。你確定你沒有試圖通過它的標籤而不是它的名字來引用變量嗎? – Tom