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

如何使用SAS PROC函数提取最值对应整行数据并匹配运动鞋?

找出对应最高/最低销售额的运动鞋的正确SAS实现方法

方法一:PROC SQL 一步到位

直接通过子查询获取全局的最高、最低销售额,再匹配原表中的对应记录:

PROC SQL;
    SELECT sneaker, salesThisPeriod
    FROM M4.sneaker
    WHERE salesThisPeriod IN (
        SELECT MIN(salesThisPeriod), MAX(salesThisPeriod)
        FROM M4.sneaker
    );
QUIT;

方法二:PROC MEANS + 数据步关联

先计算全局极值存储到临时表,再和原表关联筛选目标数据:

  1. 计算并存储销售额的极值
PROC MEANS DATA=M4.sneaker NOPRINT;
    VAR salesThisPeriod; /* 指定分析变量为销售额 */
    OUTPUT OUT=sales_extremes MIN=min_sales MAX=max_sales; /* 将极值输出到临时表 */
RUN;
  1. 关联原表筛选对应运动鞋
DATA target_sneakers;
    MERGE M4.sneaker sales_extremes;
    IF salesThisPeriod = min_sales OR salesThisPeriod = max_sales;
RUN;

/* 查看结果 */
PROC PRINT DATA=target_sneakers;
    VAR sneaker salesThisPeriod;
RUN;

原代码的问题说明

你原来的代码使用Class salesThisPeriod是错误的——Class语句是用来按指定变量分组计算统计量,这会把每个不同的销售额作为分组,计算每个分组的min/max(毫无意义),完全偏离了获取全局最高、最低销售额的需求。正确的做法是用VAR语句指定分析变量,去掉Class语句。

内容的提问来源于stack exchange,提问作者Robyn O'Halloran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:53:19