首页 > 解决方案 > 扫描功能改变一个短语

问题描述

我有一个解码短语 (AE_SER_D)“在调查员的判断中是重大医疗事件”,我需要将其更改为“在调查员的判断中是重大医疗事件”,因为 r 和 s 之间的撇号导致程序出错. 我无法更改解码(AE_SER_C),但想使用扫描函数编写一行代码来搜索 ae_ser_d 是否为 ne '' 并包含此短语,但只想搜索短语的部分片段,就像我搜索一样对于整个短语,由于撇号,它会导致程序仍然出错。SCAN 是这里的最佳选择吗?

标签: sas

解决方案


使用 Reeza 的想法:使用compress()函数和'p'选项删除所有标点符号。假设您想要整个短语周围的单引号,请使用单引号将结果括起来cats()

data want;
    AE_SER_D = cat("'Is a significant medical event in the Investigator's ", 'judgment"');
    AE_SER_D_Fixed = cats("'", compress(AE_SER_D,,'p'), "'");
run;

如果只需要去掉引号而需要保留其他标点符号,直接在 中指定compress()

data want;
    AE_SER_D = cat("'Is a significant medical event in the Investigator's ", 'judgment"');
    AE_SER_D_Fixed = cats("'", compress(AE_SER_D, "'"""), "'");
run;

资料来源:KevinQin


推荐阅读