如何在SAS中找到子串的最后位置(索引函数的对位)

rac*_*jin 2 indexing function sas

字符串'6017> 6025> 6023> 6022> 6025> 6032'.我们怎么知道'6025'的最后位置?index函数只返回第一次出现的字符串.很难使用反向功能,因为它找不到一个字符.有什么好主意吗?

sus*_*hil 10

您可以使用FIND功能来解决问题.查看SAS文档中的查找功能.对于您的问题,find函数的以下语法可以提供帮助.

FIND(input string,search string,start position)
Run Code Online (Sandbox Code Playgroud)

因此,要以反方向查找文本,可以使用START POSITION的负值,该值将大于字符串的长度.因此,如果长度为8,则开始位置为-8或-9或-10等,以反向搜索

查看以下示例代码.

data _null_;
    x='6017>6025>6023>6022>6025>6032';
    y=find(x,'6025',-length(x));
putlog _all_;
run;
Run Code Online (Sandbox Code Playgroud)