导读
在之前的推文《Stata中日期函数的简单介绍》中,我们对Stata的日期函数进行了简单介绍。在Stata中,字符串函数的使用频率很高,今天我们来简单介绍一下Stata中的字符串函数。本文主要分为四个部分:字符串的提取与查找、字符串的替换与删减、字符串的连接与转换、字符串的长度获取。
用法介绍 | 函数举例 |
字符串的提取与查找 | 字符串的提取:substr(s,n1,n2) ustrleft(s,n) ustrright(s,n) |
字符串的查找:indexnot(s1,s2) | |
字符串的替换与删减 | 字符串的替换:subinstr(s1,s2,s3,n) |
字符串的删减:stritrim(s) strltrim(s) | |
字符串的匹配与转换 | 字符串的匹配:regexm(s,re) |
字符串的转换:plural(n,s) plural(n,s1,s2) real(s) strofreal(n) strupper(s) | |
字符串的长度获取 | strlen(s) ustrlen(s) udstrlen(s) |
一、字符串的提取与查找
1.substr(s,n1,n2)
用法:s为需要提取的字符串,n1表示提取的起始位置,n2表示要提取的字符字符串的长度。如果n1 < 0,n1表示为从字符串右边向左边数的位置,如果n2=“.”,则提取从n1开始到s结尾的所有字符串。
例:
2.ustrleft(s,n)
用法:s为需要提取的字符串,n表示从字符串的最左边开始算起提取字符串长度为n的字符串,n为大于0的整数。
例:
3.ustrright(s,n)
用法:s为需要提取的字符串,n表示从字符串的最右边开始算起提取字符串长度为n的字符串,n为大于0的整数。
例:
4.indexnot(s1,s2)
用法:在s2字符中能否找到字符串s1。如果在s2中找到了字符串s1,结果为0;如果不能在s2中找到,结果则大于0。
域:s1: ASCII字符串(被搜索);s2: ASCII字符串(用于搜索)
例:
二、字符串的替换与删减
1.subinstr(s1,s2,s3,n)
用法:将s1字符串中的s2替换为s3,n表示s2替换次数,如果n为“.”,则表示全部替换。
例:
2.stritrim(s)
用法:将s中多个连续的空格缩减为一个空格。
例:
3.strltrim(s)
用法:将s文本前的空格删掉。
例:
三、字符串的匹配与转换
1.regexm(s,re)
用法:对正则表达式进行匹配,如果字符串s满足正则表达式re,则匹配结果为1,否则为0。
参数:s:字符串;re:正则表达式
例:
2.plural(n,s)
用法:可以将s变为复数,当n的取值不是+/-1时,就在s后添加后缀“s”。
例:
3.plural(n,s1,s2)
用法:
可以给s1添加删减后缀。当n的取值不为+/-1时,以s2指定的形式修正(“+”或”-”)或替代。如果s2前有"+",表示将s2加到s1后;如果s2前为"-",则返回s1中去掉s2 字符串后剩下的字符串;如果s2前既没有"+"也没有"-",则plural(n,s1,s2)=s2。
例:
4.real(s)
用法:将s转换为数字或者缺失值,其中s为字符串。
例:
5.strofreal(n)
用法:将n转换为一个字符串。
例:
6.strupper(s)
用法:将字符串s中的ASCII字符大写,超出普通ASCII范围的Unicode字符忽略。
例:
四、字符串的长度获取
1.strlens(s)
用法:获取s中的字符数或字节长度,仅用于显示纯ASCII字符串的长度的获取,对于超出普通范围的Unicode字符,可以使用ustrlen功能。
域:s表示字符串
例:
2.ustrlen(s)
用法:获取s字符串的字符数,一般用于显示超出普通范围的Unicode字符串长度。
域:Unicode字符串
例:
3.udstrlen(s)
用法:在Stata窗口中显示unicode字符串所需显示的display colums(列数)。对于Unicode character(未编码的字符),规定为中文,日文,韩语编码中的Unicode字符,需要显示两列;拉丁字符只需要显示一列。
域:Unicode字符串
例:
在这篇文章中我们要注意的一点是ASCII和Unicode编码:
ASCII ( American Standard Code for Information Interchange),是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,收录了128个字符,包括英文字母,数字,一些控制符号。适用于纯英文环境,兼容性最好。
Unicode 是一种重要的交互和显示的通用字符编码标准,Unicode 字符可以适用于所有已知的编码。Unicode 是继 ASCII字符码后的一种新字符编码,它覆盖了美国、欧洲、中东、非洲、印度、亚洲和太平洋的语言,以及古文和专业符号。
以上就是本篇文章对Stata中字符串函数的简单介绍了。Stata中字符串函数还有很多,大家可以多多了解。