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

SAS合并数据集时RETAIN的作用及Python等效实现

SAS代码中RETAIN语句的作用及Python等效实现

关于RETAIN语句的作用

在SAS的DATA步中,默认每次处理新观测时,所有变量会被重置为缺失值。RETAIN语句的核心作用是让指定变量在DATA步的循环迭代之间保留上一次的取值,不会被自动重置。

但你这段代码里的RETAIN UEN UEN_NO FEE属于冗余代码,没有实际效果。因为SET DF_ADJ1 DF_ADJ2是按顺序读取两个数据集的每一条观测,每次读取新观测时,这三个变量会被新观测的对应值直接覆盖,完全没机会用到上一次保留的值,所以去掉RETAIN后结果完全一致。

Python等效实现

这段SAS代码的核心逻辑是合并两个数据集并保留指定列,用Pandas实现的代码如下:

import pandas as pd

# 假设DF_ADJ1和DF_ADJ2是已加载的Pandas DataFrame
df_final = pd.concat([DF_ADJ1, DF_ADJ2], ignore_index=True)[['UEN', 'UEN_NO', 'FEE']]
  • pd.concat([DF_ADJ1, DF_ADJ2], ignore_index=True):按行合并两个DataFrame,ignore_index=True重置索引,和SAS默认生成连续观测编号的逻辑对齐。
  • [['UEN', 'UEN_NO', 'FEE']]:筛选保留目标列,对应SAS的KEEP语句。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 23:59:54