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

SAS中last.date未达预期:未仅保留最后日期行却保留所有行

问题分析与解决

你的代码逻辑是提取每个date分组的最后一行,但如果原始数据中每个date值仅对应一条记录,那么每一行都会被判定为last.date,最终就会输出所有行。

如果你的需求是提取整个数据集的最后一行,或者提取最大date对应的目标行,可以用以下两种方法:

方法1:直接获取数据集最后一行(无需排序)

利用SAS的nobs参数获取总行数,通过行号_n_定位最后一行:

data &data._summary;
    set &data. nobs=total_rows;
    if _n_ = total_rows;
run;

方法2:按date排序后提取最大date的目标行

如果你的目标是获取最大date对应的记录,先按date降序排序,再通过分组判断提取:

proc sort data=&data.;
    by descending date;
run;

data &data._summary;
    set &data.;
    by descending date;
    if first.date; /* 仅取最大date的第一行;若要所有同date记录,删除该判断 */
run;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 05:33:12