SAS多表合并同名列处理规则咨询(REC列取值疑问)
SAS Merge处理同名异值列的规则及你的代码分析
核心规则
SAS的merge语句对同名非BY列的处理逻辑是:后续输入表的同名列值会覆盖前面表的,最终数据集中该列的值取自merge语句里最后一个包含该列的表(基于同一个BY组匹配的前提)。
针对你的代码分析
你的代码中merge的表顺序为:grave → attri → sin_tot,三个表均包含REC列且取值不同,同时通过if a;限定只保留来自grave表的观测对应的BY组。最终plafond_dos数据集的REC列取值分三种情况:
- 当同一个
exer_sin anc_ref cont分组中,三个表都有匹配观测:REC取自最后一个表sin_tot - 当分组中只有
grave和attri有匹配观测:REC取自attri - 当分组中只有
grave有观测:REC取自grave
内容的提问来源于stack exchange,提问作者nadal
相关产品推荐
相关产品推荐

