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

如何在SAS中统计每条记录STAT字段里Open值的出现次数

SAS统计字段中"Open"出现次数的实现方法

下面提供三种实用的实现方式,根据你的匹配需求选择:

1. 基础子串统计(快速简单)

如果只需统计所有包含"Open"的子串(包括非独立单词,比如"Opened"里的"Open"),直接用SAS内置的COUNT函数即可:

data want;
    set have; /* have是你的原始数据集名 */
    CountOpen = count(STAT, 'Open');
run;

2. 精确独立单词统计(正则方法)

如果需要仅统计作为独立单词的"Open"(比如前后是空格、标点或字符串首尾,避免匹配"Opened"这类包含"Open"的长词),使用正则表达式函数PRXCOUNT:

data want;
    set have;
    /* \b表示单词边界,确保匹配独立的Open */
    CountOpen = prxcount('/\bOpen\b/', STAT);
    
    /* 若需不区分大小写(匹配open、OPEN等),添加i修饰符:
    CountOpen = prxcount('/\bOpen\b/i', STAT);
    */
run;

3. 循环拆分单词统计(灵活自定义)

如果你的STAT字段使用特殊分隔符(比如逗号、分号),或者需要更灵活的单词判断逻辑,可以用SCAN函数循环拆分每个单词并统计:

data want;
    set have;
    CountOpen = 0;
    length word $20; /* 根据实际单词长度调整变量长度 */
    
    /* countw统计STAT中的单词数,默认分隔符是空格,如需指定分隔符可加参数,比如countw(STAT, ',') */
    do i = 1 to countw(STAT);
        word = scan(STAT, i);
        /* 统一转大写后匹配,实现不区分大小写统计 */
        if upcase(word) = 'OPEN' then CountOpen + 1;
    end;
    
    drop i word; /* 清理临时变量 */
run;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 00:42:04