添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
本文详细介绍了Stata中substr(), usubstr(), ustrleft(), ustrright()等函数的用法,用于从字符串中提取特定部分。此外,还展示了如何通过正则表达式提取地址中的省份和城市信息。同时,提供了Excel中提取字符串的技巧,如使用LEFT和FIND函数。这些方法在数据预处理和信息提取中非常实用。 摘要由CSDN通过智能技术生成

a. s为需要进行提取的字符串

b. n1表示提取的起始位置。

c. 对于不同编码的文本,n2代表不同含义。对于纯ASCII编码的文本,n2表示要提取字符长度为n2的字符串。而对于其他非ASCII编码的文本来说,n2表示要提取字节长度为n2的字符串。

(当然,对于那些纯ASCII编码的字符来说,上述两种说法是等价的。需要注意的是,所有utf-8编码中超出ASCII编码范围的字符都是两个字节以上。)

dis substr('abcde',1,3)
//一个汉字字符占三个字节
dis substr('爬虫俱乐部',1,3)

 n1的取值为负整数时,意味着自后向前数从第|n1|个字节的位置开始提取字符信息

dis substr("爬虫俱乐部",-6,3)

当n2是.(缺失值)时,意味着字符串从第n1个字节开始提取到最后一个字节。

dis substr("abcde",3,.)

2.usubstr()函数的用法

语法:usubstr(s,n1,n2)

usubstr()函数的大部分用法与substr()函数相同。区别在于,usubstr()函数适用于所有unicode编码的字符串,而substr()函数在使用过程中需要区分字符串是否为ASCII编码。

dis unubstr("爬虫俱乐部",2,3)

3. ustrleft()函数

ustrleft(s,n)

a. s为需要进行提取的字符串,s为所有unicode编码的字符;

b. n表示从字符串的最左边开始算起提取字符长度为n的字符串。其中n取值为正整数。

dis ustrleft("爬虫俱乐部",3)

4. ustrright()函数

语法:ustrright(s,n)

a. s为需要进行提取的字符串,s为所有unicode编码的字符;

b. n表示从字符串的最右边开始算起提取字符长度为n的字符串。其中n取值为正整数。

dis ustrright("爬虫俱乐部",3)

example:

如果我们想要提取start变量中的年份,运行以下程序,结果如下图所示:

replace start = usubstr(start, 1, 4)

如果我们想提取birth变量下的年、月、日信息,并将对应内容放到新变量中,操作如下:

gen year = real(ustrleft(birth, 4)) //提取birth变量中前四个字符,利用 real()函数将字符型变量转换为数值型变量
gen month = substr(birth, 6, 3) //从birth变量中第 6个字符开始提取 3个字符的内容到新变量中
gen day = real(ustrright(birth, 2)) //提取birth变量中最后两个字符

5. 用stata分离省市名称

(1)通过正则化方式

gen province=ustrregexs(0) if ustrregexm(officeaddress,".*省")
replace province=ustrregexs(0) if ustrregexm(officeaddress,".*自治区")
replace province=ustrregexs(0) if ustrregexm(officeaddress,"北京市|重庆市|天津市|上海市")
gen city=ustrregexs(0) if ustrregexm(officeaddress,".*?市")
replace city=ustrregexra(city,province,"")

(2)excel帮助

A. 提取省份

公式:=LEFT(A2,MIN(FIND({"省","市","区"}, A2&"省市区")))

公式解析:通过left函数,从A2单元格(地址所在的单元格)字符串的左边开始提取字符,提取的字符个数是字符串中最早出现【省/市/区】的位置数字。

B. 提取市区

添加辅助列,公式为=SUBSTITUTE(A2,B2,""),表示拆分地址中除了省份之外,剩下的地址,并向下填充。

A2单元格(地址所在的单元格)B2单元格(提取出的省份信息单元格)

C. 接下来从剩下的地址中提取市区。

=LEFT(D2,MIN(FIND({"市","区","县"},D2&"市区县")))

B2=MID(A2,FIND("省",A2)+1,FIND("市",A2)-FIND("省",A2))

C2=MID(A2,FIND("市",A2)+1,FIND("区",A2)-FIND("市",A2))

D2=MID(A2,FIND("区",A2)+1,SUM(IFERROR(FIND({"路","街","道"},A2),0))-FIND("区",A2))

1.substr()函数的用法语法:substr(s,n1,n2)a. s为需要进行提取的字符串b. n1表示提取的起始位置。c. 对于不同编码的文本,n2代表不同含义。对于纯ASCII编码的文本,n2表示要提取字符长度为n2的字符串。而对于其他非ASCII编码的文本来说,n2表示要提取字节长度为n2的字符串。(当然,对于那些纯ASCII编码的字符来说,上述两种说法是等价的。需要注意的是,所有utf-8编码中超出ASCII编码范围的字符都是两个字节以上。)dis substr('a 使用CGSS2010重复某文章中的定量研究,中需要因变量“区县人均收入”。 如何在CGSS2010中为所有样本生成一个格式一的“所在区县”信息? CGSS2010中包含区县信息的变量为S42。tab s42 发现,其中填写方式混乱, 在是否包含市级信息,是否包含“市”、“区”、县”等字样、是否包含空格等方面 存在大量不一致,无法采用统一的标记及顺序行提取。 尽量避免缺失值地生成区县变量,内容为不包含地区行政级别的区县名称,一 般是2个字,也可能是1或3个字。 使用tab查看当
任何字符串都是String类的对象,字符串是不变的,它们的值在创建后无法更改 在字符串的内部,是用一串字符char[]来存储的。因为数组一经确定长度无法更改,所以字符串一经创建就无法更改。 如果两个字符串内容相同,则他俩使用同一个内存地址,所以可以共享它们 public class Demo2 { public static void main(String[] args) { String s1 = "123"; String s2 = "123";
文章目录为什么先介绍字符串? 为什么先介绍字符串? 对于经济学数据,在我的印象中,使用最多的就是面板数据。面板数据就涉及到时间,地点。从excel或csv导入进来的数据,如果数据中含有非数字,则显示为字符串类型,即使有些纯数字也会显示为字符串类型。因为我现在没有校园网也进不去数据库,就随便举两个例子: 时间为“2020-08-31”,这种带有非数字类型的数据导入stata就是一个字符串,如果我们要从字符串提取月份应该怎么做?想把这个字符串转化成stata能识别的时间应该怎么做? 中国城市都有城市代码,如
substring() 截取的值只能是字符串类型!参数不能为负! substring(a,b):索引从0开始,从a开始开始选取到b结束选取(不包括该元素) 例: var ttt = “123456789”; console.log(ttt.substring (0,4));//输出为1234 //提取身份证省份 $("#IUNativePlace").click(function () { var nativeplace = ''; var idCard = $("#formIUStuden
横截面数据:一个时间点多个个体的变量数据 时间序列数据:某个经济体在不同时间点的变量取值数据 面板数据:多个经济体在不同时点的上的数据。其中分为短面板和长面板,短面板指的是T较小,N较大;长面板指的是T较大,N较小。采用xtset N T 的时候,会显示数据是否是balance的,以及长短。 stata中一些基本操作 文件的操作 设置路径(这里可以直接复制电脑上的路径名称) cd"C:\Users" use xyz.dta,clear public static void main(String[] args) { // TODO Auto-generated method stub String s = "第12章第3节"; Pattern...
好的,我明白了。关于 Stata 字符串补充,你可以使用 generate 命令和函数 strcat() 来实现。具体步骤如下: 1. 使用 generate 命令创建一个新变量,例如 new_var。 2. 使用 strcat() 函数将原始字符串和需要补充的字符串拼接起来,例如:strcat(old_var, "补充的字符串")。 3. 将拼接后的字符串赋值给新变量 new_var。 下面是一个示例代码: clear input str10 old_var "apple" "banana" "orange" generate new_var = strcat(old_var, "_fruit") 输出结果如下: +----------------------+ | old_var new_var | |----------------------| 1. | apple apple_fruit | 2. | banana banana_fruit | 3. | orange orange_fruit | +----------------------+