You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SAS中按ID匹配另一数据集的值并重复填充?

SAS数据集匹配填充的最简实现方法

针对需求——将数据集2中对应ID的num值匹配填充到数据集1的同ID记录中,最简的实现方式有两种,可根据数据集的排序情况选择:

方法一:PROC SQL左连接(无需预先排序)

这种写法无需对数据集做排序处理,代码简洁直观,是最省心的选择:

PROC SQL;
    CREATE TABLE dataset1_new AS
    SELECT a.*, b.num
    FROM dataset1 a
    LEFT JOIN dataset2 b ON a.ID = b.ID;
QUIT;

说明

通过LEFT JOIN保留数据集1的所有记录,依据ID字段匹配数据集2中的num值,自动将对应ID的num填充到数据集1的每条同ID记录中,最终生成目标新数据集dataset1_new。

方法二:DATA步MERGE合并(需按ID排序)

如果两个数据集已经按ID字段排序,使用DATA步合并会更高效:

/* 若数据集未排序,先执行排序步骤(已排序可跳过) */
PROC SORT DATA=dataset1; BY ID; RUN;
PROC SORT DATA=dataset2; BY ID; RUN;

DATA dataset1_new;
    MERGE dataset1 dataset2;
    BY ID;
RUN;

说明

利用MERGE语句按ID合并两个数据集,由于数据集2中每个ID仅存在一条记录,合并后数据集1的每条同ID记录都会自动继承对应ID的num值。

内容的提问来源于stack exchange,提问作者user352188

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 03:20:39