如果您在 3 个具有不同值的表中具有相同的列名称,我不明白 SAS 合并如何处理列

问题描述 投票:0回答:1

我有一个 REC 列,可以在三个表中找到:GRAV、ATTRI 和 SIN_TOT。我想知道在这段代码的最终结果中,SAS到底采用了哪个表的REC列?知道每个表的 REC 列之间存在不同的值。

data plafond_dos;
    
        merge grave (in=a)
              attri (in=b)
              sin_tot (in=c)
        ;
        if a;
        by exer_sin anc_ref cont; 
run;
sas sas-macro
1个回答
0
投票

请参阅 here 有关此主题的文档,简要总结:

  • 对于
    by
    组中的第一个观察,任何共享的非 by 变量都将采用从中读取的 last 数据集的值(正如它们出现在
    merge
    语句中一样)。
  • by
    组中的所有下一条记录将隐式保留从中读取变量的first数据集的值。

显然,这取决于每个数据集中存在哪些

by
组合来确定每组中的第一个和最后一个。

© www.soinside.com 2019 - 2024. All rights reserved.