SAS里INDEX,INDEXC和SCAN的区别

 我来答
仁昌爱娱乐
高粉答主

2019-11-15 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459836

向TA提问 私信TA
展开全部

SAS里INDEX,INDEXC和SCAN的区别为:搜索的内容不同、返回的位置值不同、搜索字符不同。

一、搜索的内容不同

1、INDEX:INDEX是搜索一个字符串中,某个字符或某个字符串的位置,找不到时返回0。

2、INDEXC:INDEXC是搜索一个字符串中,某个字符或字符串的位置,找不到时返回0。

3、SCAN:SCAN是搜索一个字符串中,某个字符的位置,找不到时返回0。

二、返回的位置值不同

1、INDEX:INDEX返回的位置值是被搜索字符串中包括尾字符数的位置。

2、INDEXC:INDEXC返回的位置值是被搜索字符串中不包括尾字符数的位置。

3、SCAN:SCAN返回的位置值是被搜索字符串中包括尾字符数的位置。

三、搜索字符不同

1、INDEX:INDEX搜索的字符只包括普通字符,不包括特殊的标点符号。

2、INDEXC:INDEXC搜索的字符包括普通字符和特殊的标点符号。

3、SCAN:SCAN搜索的字符包括普通字符和特殊的标点符号。

就烦条0o
2016-07-24 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
SCAN只能用于CHAR的搜索。而INDEX, INDEXC则不一定受到这种局限。而且,INDEX
(S,S1)表示在S1中搜索S。而INDEXC(S,S1-1)则表示同样的意思,只是有不同的表述。INDEXC可以搜索一些在文字里的奇怪的符号,例如“-”。

以下的引用可以更好的说明:

In SAS, the INDEX() function will scan a string and return the
location of a substring. So for example INDEX(“Alabama”,”bam”)
would return 4, since “bam” starts at the 4th letter of the word
“Alabama.”

INDEXC(“Alabama”,”bam”) returns 3… Huh?

The INDEXC() function takes the list of characters in the string
after the comma and searches for the first instance of any of them,
thus when it encounters the lower case “a,” at the third character,
it returns that index. (If these were all uppercase, it would
return a 1).

This is useful if you need to find any instances of special
characters. For example, searching a variable field called
“phone_number” for parentheses or dashes could be done with
INDEXC(phone_number,”()-“).
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式