【发布时间】:2012-06-10 12:47:13
【问题描述】:
我有 10 年的数据,需要为某些变量计算 where variable=. 的数量和 where variable=1 的数量。每年都有一些共同变量和一些不同变量。以下代码在 where 语句中存在问题。 这是错误消息,在此先感谢您的帮助。
*ERROR 22-322:语法错误,需要以下之一:名称、带引号的字符串、数字常量、日期时间常量、 缺失值,(, , +, -, ALL, ANY, BTRIM, CALCULATED, CASE, INPUT, PUT, SELECT, SOME, SUBSTRING, TRANSLATE, 用户。
这是所有数据集:
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);
【问题讨论】:
-
请使用选项 MPRINT SPOOL 获取完整的错误消息。
标签: sas