Hash SAS哈希表合并错误-->键不匹配

Hash SAS哈希表合并错误-->键不匹配,hash,merge,sas,hashtable,Hash,Merge,Sas,Hashtable,我在使用哈希表合并我的两个数据集时遇到了问题。我声明的哈希表有1个键和2个数据变量 data final_table; if 0 then set hash_data; if _N_=1 then do; declare hash hashlookup (dataset:'hash_data'); hashlookup.definekey('key'); hashlookup.definedata('ABC', 'XYZ'); hashl

我在使用哈希表合并我的两个数据集时遇到了问题。我声明的哈希表有1个键和2个数据变量

data final_table;   
 if 0 then set hash_data;
    if _N_=1 then do;
     declare hash hashlookup (dataset:'hash_data');
     hashlookup.definekey('key');
      hashlookup.definedata('ABC', 'XYZ');
     hashlookup.definedone();
     end;
 set datatabletwo;  
 rc = hashlookup.find(key:'key'); 
 run;
键是相同长度的数字变量。我已经尝试将两个键重新格式化为字符,但日志仍然返回以下错误消息:错误:第57行第7列的键变量key的类型不匹配


希望有人能帮忙。提前谢谢。

这里的问题是

rc = hashlookup.find(key:'key');
查找字符串“key”,而不是变量key中的值。因此,请改为这样做

data final_table;   
 if 0 then set hash_data;
    if _N_=1 then do;
     declare hash hashlookup (dataset:'hash_data');
     hashlookup.definekey('key');
     hashlookup.definedata('ABC', 'XYZ');
     hashlookup.definedone();
     end;
 set datatabletwo;  
 rc = hashlookup.find(); 
 run;

这里的问题是

rc = hashlookup.find(key:'key');
查找字符串“key”,而不是变量key中的值。因此,请改为这样做

data final_table;   
 if 0 then set hash_data;
    if _N_=1 then do;
     declare hash hashlookup (dataset:'hash_data');
     hashlookup.definekey('key');
     hashlookup.definedata('ABC', 'XYZ');
     hashlookup.definedone();
     end;
 set datatabletwo;  
 rc = hashlookup.find(); 
 run;
不带key:parameters的find方法将使用definekey中命名的PDV变量。在这种情况下,不带key:parameters的find方法中的变量keye将使用definekey中命名的PDV变量。在本例中,变量键