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

如何在SAS中使用包含匹配功能删除含指定关键词的项目名称观测

你现有的代码有两个核心问题:

  1. 漏写了set before;语句,SAS无法读取原始数据集,会直接生成空数据集
  2. FIND函数一次仅支持搜索单个目标字符串,你把第二个搜索词填到了第三个参数位(该参数位仅接受控制匹配规则的修饰符,比如i代表不区分大小写),所以才会把"workshop"的每个字符都当成无效修饰符抛出警告。
推荐实现方式

方式1:连用FIND函数(适合少量关键词场景)

两个FIND函数用OR逻辑连接,分别匹配两个关键词即可:

data want;
    set before;
    /* 加i修饰符表示不区分大小写,不需要可删除 */
    if find(projectname, "seminar", "i") or find(projectname, "workshop", "i") then delete;
run;

方式2:PRXMATCH正则匹配(适合关键词较多的场景)

用正则表达式可以一次性匹配多个关键词,后续新增关键词只需在正则里用|分隔追加即可:

data want;
    set before;
    /* 正则语法:/关键词1|关键词2|关键词n/修饰符 */
    if prxmatch("/seminar|workshop/i", projectname) then delete;
run;
补充说明
  • FIND/PRXMATCH函数未匹配到目标时返回值为0,SAS逻辑判断中0为假、非0为真,所以无需额外写>0判断
  • 如果你需要严格区分大小写匹配,删除上述代码里的修饰符i即可
  • 上述代码生成新数据集want保留处理后的结果,不会覆盖原始before数据集,避免误操作丢失原始数据,如果需要直接覆盖可以把第一行改成data before;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:36:03