我有10年的數據,需要計算其中variable =的數量。和其中變量的數量= 1的一些變量。每年都有一些共同的變數和一些不同的變量。以下代碼在處有問題,其中聲明。 這裏是錯誤信息,在此先感謝您的幫助。宏變量在哪裏陳述
* ERROR 22-322:語法錯誤,需要下列之一:名稱,引用字符串,數字常量,日期時間常數, 缺失值,(,,+, - ,ALL ,ANY,BTRIM,計算CASE,INPUT,PUT,選擇,一些子串,翻譯, USER
這裏是所有數據集:
Year N_community
2000 15339
2001 15246
2002 15142
2003 14916
2004 14500
2005 14701
2006 14732
2007 14804
2008 13651
2009 13751
下面是代碼:
/* For year 2000 to 2009 and the number of "missing" */
data health_status_vars_missing;
set all;
run;
%let CmList = D_CFAIL D_CHD D_CHOLES D_DEPRSS D_HBP D_MYOCAR D_OTHHRT D_PSYCHO;
%let CmCnt = %sysfunc(countw(&CmList));
%macro countm(yr);
%do i=0 %to &yr.;
%do L=1 %to &CmCnt.;
proc sql;
create table %scan(&Cmlist., &L.)_M as
select 200&i as year, count(*) as %scan(&Cmlist., &L.)_M
from cohort0&i.
where %scan(&Cmlist., &L.)=.;
quit;
data health_status_vars_missing;
merge health_status_vars_missing(in=a) %scan(&Cmlist., &L.)_M(in=b);
by year;
if a;
run;
%end;
%end;
%mend countm;
%countm(9);
pleast使用選項MPRINT閥芯得到完整的錯誤消息。 – Shuguang