首页 > 其他分享 >Stata:字符串函数

Stata:字符串函数

时间:2023-01-14 18:45:36浏览次数:55  
标签:字符 海淀区 函数 示例 s2 s1 Stata 字符串 北京市

我们在做数据清理时经常会遇到字符型变量的清理问题,Stata提供了大量、功能强大的字符函数,灵活运用字符函数可以高效、快速、精确、准确地清理数据。本文为大家介绍一些常用的Stata 字符函数。其中s 代表字符集,包括字符串、字符型变量或者其他字符表达式,n 代表数值子表达式,包括数字、字符型变量或者其他数值表达式。
1. 字符串的缩写与扩展

abbrev(s,n):适用于所有字符型变量,功能是对s进行缩写,缩写的长度为n,n的取值范围为5-32

示例:

abbrev("displacement", 8) = “displa~t”

abbrev("北京市海淀区", 8) = “北京~区”

strcat(s1,s2):合并s1、s2。Stata里没有strcat()函数,用加号实现字符之间的连接。

示例:

"hello" + "world" = "hello world"

"a"+ "b" = "ab"

"北京市 " + "海淀区" = "北京市海淀区"

strdup(s1,n):创建n个s1的副本并合并。Stata里没有strdup()函数,用乘号实现字符的多次复制。

示例:

"hello"* 3 = "hellohellohello"

0 * "hello" = ""

"北京市"* 2 = "北京市北京市"

 

2. 字符串的截取

substr(s,n1,n2):从s中第n1个字符开始截取n2个字符。如果n2缺失,则从第n1个字符开始截取所有字符。如果n1<0,则从s字符的倒数第n1个字符处开始截取。

示例:

substr("abcdef",2,3) = "bcd"

substr("abcdef",-3,2) ="de"

substr("abcdef",2,.) = "bcdef"

substr("abcdef",-3,.) ="def"

usubstr(s,n1,n2):从s中第n1个字符开始截取n2个字符。如果n2缺失,则从第n1个字符开始截取所有字符。如果n1<0,则从s的倒数第n1个字符处开始截取。适用于Unicode编码。

 示例:

usubstr("北京市海淀区",4,3) = "海淀区"

usubstr("北京市海淀区",-3,3) = "海淀区"

usubstr("北京市海淀区",4,.) = "海淀区"

ustrleft(s,n):截取s的前n个字符。适用于Unicode编码。

示例:

ustrleft("北京市海淀区",3) = "北京市"

ustrright(s,n):从s的结尾处开始截取n个字符。适用于Unicode编码。

示例:

ustrright("北京市海淀区",3) = "海淀区"

word(s,n):截取s中第n个单词。当n是缺失时,截取的结果也是缺失。当n>0时,从字符s左边开始截取;当n<0时,从字符右边开始截取。

示例:

word(“thisis a happy day”, 2) = "is"

word(“this is a happy day”, .) = ""

word(“北京市, 3) = "市"

word(“北京市, 3) = "

 

3. 字符串的替换

 

plural(n,s):可以将s变为复数。当n的取值不是+/-1,plural就给s添加后缀“s”。

示例:

plural(1,"horse") = "horse"

plural(2, "") = "horses"

plural(n,s1,s2):可以给s1添加删减后缀。当n的取值不为+/-1时,如果s2前有“+”,添加s2至s1后面;若s2前有“-”,在s1中去掉s2;如果s2前没有“+/-”,s2替换s1

示例:

plural(2,"glass", "+es") = "glasses"

plural(2, "abcdefg","-efg") = "abcd"

plural(2, "mouse","mice") = "mice"

plural(1, "mouse","mice") = "mouse"

plural(2, "北京市", "+海淀区") = "北京市海淀区"

plural(2, "北京市海淀区","-海淀区") = "北京市"

regexr(s1,re,s2):判断s1中是否有符合re表达式的字符,如果有,用s2替换s1中满足re条件的第一个字符串,否则,返回s1。适用于ASCII编码。

示例:

regexr(“小明是学生”,”小”,”大”) = ”大明是学生”

regexr(“小明是小学生”, ”小”,”大”) = ”大明是小学生”

regexr(“大明是学生”, ”小”,”大”) = ”大明是学生”

ustrregexrf(s1,re,s2[,noc]):用法同regexr,增加选项noc。如果不指定noc非0,就不区分大小写。适用于Unicode编码。

示例:

ustrregexrf("this       is", "is", "X") = "thX is"

ustrregexrf("THIS is ", " Is","X") = " THIS is"

ustrregexrf("THIS is ", " Is","X", 1) = "THX is"

ustrregexra(s1,re,s2[,noc]):用s2替换s1中符合re表达式的所有字符。当指定选项noc不为0时,不区分大小写。适用于Unicode编码。

示例:

ustrregexra("this      is", "is", "X") ="thX X"

ustrregexra("THIS is","Is", "X") = " THIS is"

ustrregexra("THIS is", "Is","X", 1) = "THX X"

subinstr(s1,s2,s3,n):将s1中前n次出现的s2替换成s3。如果指定n为缺失“.”,则s1中所有的s2字符全部被替换成s3。

示例:

subinstr("thisis the day","is","X",1) = "thX is the day"

subinstr("this is the hour","is","X",2) ="thX X the hour"

subinstr("this isthis","is","X",.) = "thX X thX"

usubinstr(s1,s2,s3,n):将s1中前n次出现的s2替换成s3。如果指定n为缺失“.”,则s1中所有的s2全部被替换成s3。适用于Unicode编码。

示例:

subinstr("北京市海淀区海淀路","海淀","朝阳",1) = "北京市朝阳区海淀路"

subinstr("北京市海淀区海淀路","海淀","朝阳",.) = "北京市朝阳区朝阳路"

subinword(s1,s2,s3,n):将s1中前n次出现的单词s2替换成s3。如果指定n为缺失“.”,则s1中所有的单词s2全部被替换成s3。

示例:

subinword("thisis the day","is","X",1) = "this X the day"

subinword("this is thehour","is","X",.) = "this X the hour"

subinword("this isthis","th","X",.) = "this is this"

 

4. 删除字符串中的空格


stritrim(s):将s中字符之间的连续多个空格删除至一个空格。无法去掉s字符串开头处和结尾处的空格。

示例:

stritrim("hello   there") ="hello there"

stritrim("北京市        海淀区") = "北京市海淀区"

strltrim(s): 去掉s开头处的空格。

示例:

strltrim("  this") = "this"

strltrim("  北京市") ="北京市"

strrtrim(s):去掉s结尾处的空格。

示例:

strrtrim("this") = "this"

strrtrim("北京市  ") = "北京市"

strtrim(s):去掉s开头处和结尾处的空格。

示例:

strtrim("    this ") = "this"

strtrim("    北京市   ") = "北京市"

 

5. 字符型与数值型的转换

real(s):将s转换为数字或者缺失。

示例:

real("5.2")+1 = 6.2

real("hello") = .

real("北京市") = .

strofreal(n):将数值n转为字符。

示例:

strofreal(4)+"F" = "4F"

strofreal(1234567) = "1234567"

strofreal(12345678) = "1.23e+07"

strofreal(.) = "."

strofreal(n,s):将数值n按照s规定的显示格式显示。

示例:

strofreal(4,"%9.2f") = "4.00"

strofreal(123456789,"%13.0gc") = "123,456,789"

strofreal(0,"%td") = "01jan1960"

strofreal(225,"not a format") = ""

标签:字符,海淀区,函数,示例,s2,s1,Stata,字符串,北京市
From: https://www.cnblogs.com/xkdn/p/17052347.html

相关文章

  • 字符串处理
    《面对字符串输入的情况》  想这个输入格式我该如何输入?这样即可:scanf("%d:(%d)",&s,&cnt); 《字符串哈希》对于字符串str长度为n,可以在O(n)的时间内解......
  • c语言——函数及递归
    程序中一旦调用了某个函数,该函数就会完成特定的计算,然后返回到调用它的地方函数分为库函数和自定义函数一、库函数io函数都在头文件stdio中字符串操作函数都在头文件string......
  • Stata:rename用法
    2.1圆括号与批量重命名rename(old1old2...)(new1new2...)[,options]将需要批量重命名的变量放置在第1对圆括号中,新的变量名放置在第2对圆括号中,这个操作方......
  • 20 个 JS 工具函数助力高效开发
    日常开发中,面对各种不同的需求,我们经常会用到以前开发过的一些工具函数,把这些工具函数收集起来,将大大提高我们的开发效率。1、校验数据类型export const typeOf = fu......
  • Oracle:字符串的拼接、截取、查找、替换
    一.拼接:1.使用“||”来拼接字符串:select'拼接'||'字符串'asStrfromdual;2.使用concat(param1,param2)函数实现:selectconcat('拼接','字符串')asStrf......
  • 字符分类函数和字符转换的简单使用
    #include<stdio.h>#include<ctype.h>intmain(){chararr[]="IAmAStudent";inti=0;while(arr[i]!='\0'){if(isupper(arr[i])){arr[i]=tolower(arr[i]);......
  • LeetCode刷题(160)~删除字符串中的所有相邻重复项
    题目描述给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在S上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作......
  • 1298:计算字符串距离
    2023第一篇博客,请听我唠叨一会:................(此处省略999+字)进入正题                              ......
  • 方便的格式化OutputDebugString输出函数
    OutputDebugString使用只能输入一个参数,在实际使用中带来很大的不便,下面改造后的函数就很好了,想怎么输出自己定。voidOutputDebugPrintf(constchar*strOutputString,........
  • 格式化数字字符串输出的一个小技巧
    我这里分别以VC和Delphi举例:比如想生成000005,000255这样的字符串先看VC的: inti=5; CStringstrOut; strOut.Format("%.6d",i); AfxMessageBox(strOut); i=25......