此错误在SAS中意味着什么:检测到重复的列名称

时间:2016-06-24 20:00:21

标签: database sas

我是sas的新手,并试图调试其他人的代码。目标是合并3个数据集。

这是我正在尝试运行的代码中的最后一步:

Folder name = "test", URL = "test.mydoma.in"

但是,我收到此错误消息:

在上述请求中检测到重复的列名称        CORRESPONDING列名称匹配。这种情况很模糊。

首先,我并不真正理解错误消息,因为它说有重复的列名...但当然有重复的列名!我正在尝试将可能有或可能没有相同列标题的3个数据集合并为一个!

我认为我不明白错误信息告诉我的是什么。

有人请帮助我!

1 个答案:

答案 0 :(得分:0)

此错误会触发,因为SAS已经从discharge_rtw_reason表中提取foot_dados_paper_merge(通过select *),然后再指示再次创建变量(使用长度更新)。不允许在SAS数据集中具有两个具有相同名称的变量。尝试在执行SQL查询之前更改长度。

或者,重写如下(假设temp_var已不存在):

proc sql; 
    create table foot_all as
        select*
    from foot_paper_merged          
    outer union corr
        select*,temp_var as discharge_rtw_reason length=84
    from foot_dados_paper_merge (rename=(discharge_rtw_reason=temp_var))        
    outer union corr
        select*
    from foot_dados_ca_dc;              
quit;

澄清 - 无论联合行动如何,这都是一个问题。尝试运行以下内容(应该提供WARNING: Variable discharge_rtw_reason already exists on WORK.test):

proc sql;
create table test as 
select*,discharge_rtw_reason length=84
    from foot_dados_paper_merge;