Я пытаюсь создать хэш-слияние между двумя таблицами, output.hicno_xwalk
и papi_claim_01
. Раньше я делал обычное слияние совпадений, используя сортировки proc и шаг данных. Вот исходный код:Ошибка Hash Merge в SAS
proc sort data = output.hicno_xwalk;
by HICNUMBER Plan_Type;
run;
proc sort data = papi_claim_01;
by HICNUMBER Plan_Type;
run;
data papi_claim_01a;
merge output.hicno_xwalk (in=a)
papi_claim_01 (in=b);
by HICNUMBER Plan_Type;
if (b);
run;
Теперь я использую это:
data hash_merge (drop = rc);
set output.hicno_xwalk point = _n_;
if 0 then set output.hicno_xwalk papi_claim_01; *load properties;
declare hash merge(dataset:'output.hicno_xwalk');
merge.definekey (HIC); *define variable to use as a key (no duplicates);
merge.definedata ('NEW_HIC','Plan_Type'); *Columns from the merge table to include;
merge.definedone(); *end hash;
do until (eof);
set papi_claim_01 end = eof;
if merge.find() = 0 then output;
end;
stop; *output records where HIC is found in both tables;
run;
Однако я получаю сообщение об ошибке в моем журнале говоря
ERROR: Type mismatch for method parameter 1 at line 404 column 5. ERROR: Expecting Character type. ERROR: DATA STEP Component Object failure.
Aborted during the EXECUTION phase.
Что ошибка пытается скажите мне, и как я могу исправить свой код?
Спасибо за помощь!
Это может помочь: https://communities.sas .com/t5/Base-SAS- Программирование/HASH-ошибок печатать с ошибками/TD-р/161946 – superfluous