startindex 不能大于字符串长度_Stata中字符串函数的简单介绍

本文作者:鲁津旗   宋莹然               谢梦瑶    高晨    

导读

在之前的推文《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结尾的所有字符串。

da918b0db26c0fb7ede4d8e23de1384e.png

2.ustrleft(s,n)

用法:s为需要提取的字符串,n表示从字符串的最左边开始算起提取字符串长度为n的字符串,n为大于0的整数。

def254f9f723ae614d037b695c2e2fc6.png

3.ustrright(s,n) 

用法:s为需要提取的字符串,n表示从字符串的最右边开始算起提取字符串长度为n的字符串,n为大于0的整数。

a1298dd1252158535120b14ed50fa904.png

4.indexnot(s1,s2)

用法:在s2字符中能否找到字符串s1。如果在s2中找到了字符串s1,结果为0;如果不能在s2中找到,结果则大于0。

s1: ASCII字符串(被搜索);s2: ASCII字符串(用于搜索)

例:

e4a24fa46be52950b2e7b1d02a312911.png

二、字符串的替换与删减

1.subinstr(s1,s2,s3,n)

用法:将s1字符串中的s2替换为s3,n表示s2替换次数,如果n为“.”,则表示全部替换。

06287ee53d6794c4e4ef5d1ac4f73cb5.png

2.stritrim(s)

用法:将s中多个连续的空格缩减为一个空格。

1e16aad1fae1c62b7a52a30a0655fcbc.png

3.strltrim(s)

用法:将s文本前的空格删掉。

83e2ffeb2df4e9ef937612f5af1cb448.png

三、字符串的匹配与转换

1.regexm(s,re)

用法:对正则表达式进行匹配,如果字符串s满足正则表达式re,则匹配结果为1,否则为0。

参数s:字符串;re:正则表达式

例:

e86deaf12ec0022dcb1294aac28b23cb.png

2.plural(n,s)

用法:可以将s变为复数,当n的取值不是+/-1时,就在s后添加后缀“s”。

例:

d513fe11257c2678c14422e73d7ed55a.png

3.plural(n,s1,s2)

用法:

可以给s1添加删减后缀。当n的取值不为+/-1时,以s2指定的形式修正(“+”或”-”)或替代。如果s2前有"+",表示将s2加到s1后;如果s2前为"-",则返回s1中去掉s2 字符串后剩下的字符串;如果s2前既没有"+"也没有"-",则plural(n,s1,s2)=s2。

例:

e1b3f45b6ba78f5aa723c25993d34b72.png

4.real(s)

用法:将s转换为数字或者缺失值,其中s为字符串。

例:

031bd03b1a6b7a57687218774ebb4d2d.png

5.strofreal(n)

用法:将n转换为一个字符串。

77967d679bc35b5b50b9711b2c1be205.png

67c87c0ef510409597afc9c133602896.png

6.strupper(s)

用法:将字符串s中的ASCII字符大写,超出普通ASCII范围的Unicode字符忽略。

cb9849b3cfa125fb43598d9f595f3e5d.png

四、字符串的长度获取

1.strlens(s)

用法:获取s中的字符数或字节长度,仅用于显示纯ASCII字符串的长度的获取,对于超出普通范围的Unicode字符,可以使用ustrlen功能。

域:s表示字符串

7ec31ab8f3d8ba7c9122cb98427ed589.png

2.ustrlen(s)

用法:获取s字符串的字符数,一般用于显示超出普通范围的Unicode字符串长度。

域:Unicode字符串

9af8efb4a347107c31bd12d2b201601f.png

3.udstrlen(s)

用法:在Stata窗口中显示unicode字符串所需显示的display colums(列数)。对于Unicode character(未编码的字符),规定为中文,日文,韩语编码中的Unicode字符,需要显示两列;拉丁字符只需要显示一列。

域:Unicode字符串

7d3b1cf2b5dc2f348031822bd89e017b.png


在这篇文章中我们要注意的一点是ASCII和Unicode编码:

ASCII ( American Standard Code for Information Interchange),是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,收录了128个字符,包括英文字母,数字,一些控制符号。适用于纯英文环境,兼容性最好。

Unicode 是一种重要的交互和显示的通用字符编码标准,Unicode 字符可以适用于所有已知的编码。Unicode 是继 ASCII字符码后的一种新字符编码,它覆盖了美国、欧洲、中东、非洲、印度、亚洲和太平洋的语言,以及古文和专业符号。


以上就是本篇文章对Stata中字符串函数的简单介绍了。Stata中字符串函数还有很多,大家可以多多了解。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值