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

如何使用PROC SQL将SAS数据集中的指定字符串替换为空值

实现方案

方案1:生成新的清洗后数据集(不修改原表)

用CASE WHEN匹配所有异常值,替换为SAS字符空值'':

PROC SQL;
CREATE TABLE price_clean AS
SELECT 
    ID,
    CASE 
        WHEN Price IN ('N/A', 'NA', 'NoValue') THEN '' 
        ELSE Price 
    END AS Price LENGTH=8
FROM price;
QUIT;

方案2:直接修改原表

用UPDATE语句批量更新符合条件的行:

PROC SQL;
UPDATE price
SET Price = ''
WHERE Price IN ('N/A', 'NA', 'NoValue');
QUIT;

可选:同步转为数值类型

如果你需要后续对Price做数值计算,可以在清洗时直接转为数值类型,异常值替换为SAS数值空值.:

PROC SQL;
CREATE TABLE price_clean AS
SELECT 
    ID,
    CASE 
        WHEN Price IN ('N/A', 'NA', 'NoValue') THEN . 
        ELSE INPUT(Price, best32.) 
    END AS Price FORMAT=8.2
FROM price;
QUIT;

补充说明

  • 你可以根据实际遇到的其他异常值,自行扩充IN列表里的匹配项
  • 清洗后空值符合SAS的空值规范,在后续计算、过滤中都会被自动识别为空

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:57:01