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

在SAS中如何根据另一列的取值删除指定列中的对应文本

SAS 字符串逐行匹配删除实现方案

直接使用SAS内置字符串替换函数即可实现需求,无需自行编写循环逻辑,参考代码如下:

data want;
    set have;
    length cleaned_words $50.;
    /* 替换指定内容为空后压缩多余空格,再去除首尾空白 */
    cleaned_words = strip(compbl(tranwrd(words, strip(remove), '')));
    /* 若需要直接覆盖原words列,将上述变量名改为words即可 */
run;

函数说明

  • tranwrd(源字符串, 待匹配子串, 替换内容):SAS内置字符串替换函数,会在源字符串中查找所有匹配的子串,统一替换为指定内容,此处我们将待删除内容替换为空字符串实现删除效果
  • strip(remove):删除待匹配内容首尾的空格,避免因字符两侧存在空白导致匹配失败
  • compbl():将替换后产生的连续多个空格压缩为单个空格,避免删除内容后残留多余空白
  • strip():最终删除结果字符串首尾的空格,得到规整的输出

运行上述代码后得到的want数据集中,cleaned_words列的结果如下:

  • Michigan address
  • Hawaii address
  • broadway niceblock

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:15:05