我正在开展一个项目,我在特定地理层面拥有数据。由于历史原因,这些区域被编入索引:
01 02 ... 19 的 2A 的 2B 21 ... 95
我想在这些区域中运行一个程序,数据库被索引为sthg_d theindex (sthg_d01; sthg_d2A ...),并将它们与国家数据库合并我有这个地理区域索引(它是 dep )
目前我所做的是创建一个包含相应索引的表 (1:01; 2:02; 19:19; 20:21; 28:29; 29:2A; 30:2B; 31:30 ......) 然后我尝试通过搜索此列表中的每个文件进行合并。它适用于数字索引,但幸运的是它不适用于字符中的两个索引,我得到了
ERROR 388-185: Opérateur arithmétique requis.
ERROR 202-322: L'option ou le paramètre n'est pas reconnu(e) et sera ignoré(e).
哪位是英文:
ERROR 388-185: Expecting an arithmetic operator.
ERROR 202-322: The option or parameter is not recognized and will be ignored.
这是我的代码
%macro appar ();
data _null_;
set dep.dep2; /*the table with (1:01 ; 2:02 ; 19 : 19 ; 20 : 21 ; 28 : 29 ; 29 : 2A ; 30 : 2B ; 31 : 30...) */
call symput('d'!!left(_n_),dep2); /* variable with 01;02;... is called dep2 */
run;
%do i=1 %to 96 ; /* 2 pour tester sinon 96 sur la métropole */
/* I try to create my subtable i of the national one */
data f(keep = dep dirindik);
set FoyerN.foyer;
length dep $2;
dep=substr(dirindik,1,2);
if dep=&&&d&i;
run;
我有问题,在如果dep =&&& d& i 。
/* The core of my problem : the merge */
data p;
merge f(in=x) PotePrec.pote&anprec._d&&d&i (in=y);
by dirindik;
if x and y;
run;
%end; /* du %do */
%mend appar;
答案 0 :(得分:2)
由于dep
被定义为$ 2字符变量,因此需要将其与字符串常量进行比较,如下所示:
if dep="&&&d&i";