Stata字符串函数:快捷提取字符信息

2023-11-15

1.substr()函数的用法

语法:substr(s,n1,n2)

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

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

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

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

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

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

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

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

dis substr("abcde",3,.)
cde

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))

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Stata字符串函数:快捷提取字符信息 的相关文章

  • C# Socket连接请求超时处理

    在Socket的超时时间默认20多秒 而实际连上不需1秒时间 20多秒很多时候用户是不能接受的 而在等待返回结果的这段时间里程序会处于停止响应状态 废话不多说了 先上代码 private delegate string ConnectSoc
  • TVS管电路原理图符号及选型举例

    TVS管的电路原理图符号与稳压二极管符号类似 结构也都差不多 了解TVS管的电路原理图符号是掌握TVS管符合选型的基础 一般常见的TVS管电路原理图符号有 VBR IPP IR VRWM VC PM CP VBR代表的是 击穿电压 IPP代
  • 杂七杂八的小知识

    杂七杂八的小知识 前端知识 Node js安装注意事项 Vue学习文档 Mysql数据库小知识 安装数据库后使用数据库所需步骤 MySQL远程连接 常用数据库命令 mysql数据库导入查询 StarUML使用教程 docker小知识 cma
  • pandas 和 Stata 13 个文件

    我安装了 pandas 0 13 1 但是pandas read stata 无法阅读 dta以 Stata 13 格式创建的文件 出现错误 TypeError cannot concatenate str and NoneType obj
  • 显示迄今为止记录的另一个变量随时间推移获得的最高值的变量

    我有一个患者数据集及其随时间 以年为单位 与酒精相关的患者数据 如下所示 clear input long patid float year cohort 1051 1994 1 2051 1972 1 2051 1989 2 2051 1
  • 走进暄桐教室 一起观看暄桐同学作品及感受

    暄桐是一间传统美学教育教室 创办于2011年 林曦是创办人和授课老师 教授以书法为主的传统文化和技艺 旨在以书法为起点 亲近中国传统之美 以实践和所得 滋养当下生活 其实 暄桐教室的写字画画课 不仅是林曦老师单方面的输出 而是有分享 也有回
  • FAM amine, 6-isomer,1313393-44-0,含有纯6-异构体的荧光团,6-FAM NH2

    产品名称 FAM amine 6 isomer 6 FAM NH2 中文名称 6 羧基荧光素 氨基 CAS 1313393 44 0 分子式 C27H26N2O6 分子量 474 51 纯度 95 结构式 产品描述 荧光素衍生物具有胺基 含
  • 公抓抓:批量获取企业工商信息的办法

    网站产生数据的作用 企业公示系统的数据 目前网络上每天都有海量数据诞生 这些数据蕴含着巨大的价值 很多时候企业和政府都需要大量的企业数据用于自身的运营 分析等 这些时候往往需要全面的数据才能得出更加客观的结论 比如金融机构在进行业务合作时
  • R 中固定效应的 F 检验(面板数据)

    我正在尝试对面板数据 OLS 回归 在 R 中 的固定效应 个体特定的虚拟变量 的联合显着性进行 F 检验 但是我还没有找到一种方法来实现大量固定效应 理想情况下 我会在plm包 但是我还没有找到任何专门进行此测试的内容 这是 Stata
  • 在 Stata 中进行加权热甲板插补的简单方法?

    我想在 Stata 中进行简单的加权热甲板插补 在 SAS 中 等效命令如下 请注意 这是一个较新的 SAS 功能 从 2015 年左右的 SAS STAT 14 1 开始 proc surveyimpute method hotdeck
  • 液晶偏振光栅

    1 偏振 光是横波 在垂直于光的传播方向的平面内光波振动 即E矢量振动 各方向振幅都相等的光为自然光 只在某一方向有光振动的光称为线偏振光 各方向光振动都有 但振幅不同的光叫部分偏振光 螺旋着振动的光称圆偏振光 分旋和右旋 2 庞加莱球表示
  • 关于如何为 Pygments 编写词法分析器的大量文档? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一本字典Stata http stata com 关键字和 Stata 语法的合理知识 我想花几个
  • 在双边案例交叉设计中创建控制日期

    我计划研究空气污染对急诊室就诊的影响 并打算使用双边病例交叉设计 对于每个病例 医院就诊 我想创建 4 个控制日期 就诊前后 7 天和 14 天 例如 如果一个人于 2012 年 9 月 10 日访问诊所 我的控制日期将为 8 月 27 日
  • R 与 Stata 中的 Cox 比例风险模型

    我正在尝试使用以下数据在 R 中复制 Stata 的 cox 比例风险模型估计http iojournal org wp content uploads 2015 05 FortnaReplicationData dta http iojo
  • 在 coefplot 中仅绘制交互项

    在 Stata 中进行回归后 我尝试仅绘制交互项的系数 我无法使用社区贡献的命令coefplot 这是一个可重现的示例和我尝试的解决方案 sysuse auto clear reg price foreign i turn foreign
  • 如何在 Stata 中查找并替换字符串变量的一部分?

    我正在使用一个基本上是 URL 的变量 所以观察结果包括像这样的值 www google com https www google com https yahoo movies com 我正在尝试创建一个 do 文件以将一堆这些文件导入到
  • 在 Stata 的 do-file 中将命令分成几行

    我想运行keepStata 12 中 do 文件中的命令 keep a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 c1 c2 c3 c4 我想要的是执行以下操作 keep a1 a2 a3 a4 a5 b1 b2 b3 b4
  • 如何获取完整的子目录列表(包括子目录的子目录)?

    我有数千个城市文件夹 例如city1 city2等等 但实际上命名为NewYork Boston ETC 每个文件夹还包含两个子文件夹 land and house 所以目录结构是这样的 current dictionary city1 h
  • 哪些类型的语言允许以编程方式创建变量名称?

    这个问题纯粹出于求知欲 在相对频繁地浏览 Python 部分后 我看到了许多类似的问题this https stackoverflow com questions 1429814 how to programmatically set a
  • 如何使用RStudio用Stata命令编写RMarkdown文件?

    我的问题已在标题中解释 我尝试编译一个示例 Rmd 我在这里找到 http www ssc wisc edu hemken Stataworkshops Stata 20and 20R 20Markdown http www ssc wis

随机推荐

  • 【Java+MySQL】使用JDBC连接MySQL 8.0数据库

    一 Java MySQL 8 0连接驱动包 下载链接 https pan baidu com s 1YFOImz0dCHtzIajSFq9xgg pwd boul 提取码 boul IDEA 导入方式 1 在 External Librar
  • Mysql 学习

    文章目录 下载 安装 修改 修改登录密码 授权 下载 Mysql 数据库的下载链接 注意 CenterOS 请选择 Red Hat 那一项 安装 这里介绍的是 5 7 版本 安装包是 rpm bundle tar 结尾的 创建 mysql
  • ZC-CLS381RGB颜色识别——配置寄存器组(上)

    文章目录 前言 一 ZC CLS381RGB简介 二 配置寄存器组 1 主控寄存器 2 检测速率寄存器 2 增益寄存器 2 颜色数据寄存器 三 状态转移图和信号波形图绘制 总结 前言 在现代工业生产中 颜色识别技术已经成为了一个非常重要的技
  • 使用JsonConvert.DeserializeObject注意事项

    在使用JsonConvert DeserializeObject反序列化自定义对象的时候 我遇到了一个问题 定义了一个对象QueryModel QueryModel拥有两个构造方法 私有无参构造方法 private QueryModel 跟
  • android直接方法和虚方法,Android NDK入门:C++ 基础知识

    为什么写这篇文章 本文算作是 Android 音视频开发打怪升级 系列文章的 番外 篇 原本打算将本文的内容写在 Android FFmpeg视频解码播放 这篇文章中 因为要想学习 FFmpeg 相关知识 C 的基础知识是必不可少的 但是写
  • java集合框架Map之HashMap底层原理解析

    感兴趣的话大家可以关注一下公众号 猿人刘先生 欢迎大家一起学习 一起进步 一起来交流吧 哈希表 hash table 哈希表也称为散列表 散列表 Hash table 也叫哈希表 是根据关键码值 Key value 而直接进行访问的数据结构
  • STM32——HAL版——定时器ms和us延时函数

    定时器做ms和us延时函数 本文用的是STM32L431RCT6芯片 定时器TIM2和TIM6挂载在APB1总线上 1 配置TIM2为ms延时定时器 TIM2为通用定时器在APB1总线上 主频为80MHz 设置TIM2参数 时钟源选择为内部
  • Android应用请求获取Root权限

    要让Android应用获得Root权限 首先Android设备必须已经获得Root权限 应用获取Root权限的原理 让应用的代码执行目录获取最高权限 在Linux中通过chmod 777 代码执行目录 代码如下 应用程序运行命令获取 Roo
  • 企业实践

    欢迎关注 全栈工程师修炼指南 公众号 点击 下方卡片 即可关注我哟 设为 星标 每天带你 基础入门 到 进阶实践 再到 放弃学习 花开堪折直须折 莫待无花空折枝 文章目录 0x00 前言简述 1 背景了解 2 发展历程 3 产品版本 4 官
  • Tensorflow入门——自制数据集:将未经处理的图片制成npy格式的数据集

    一些吐槽和文章简介 博主是那种 拿来就用 不会再查 的人 而几乎所有教程都秉持着 这应该是python课教的 的理念 从而使得没学过python的人颇为头疼 博主虽接触过python 但还没系统学过 阅读一篇代码 最耗时的部分不是探索算法原
  • Java基础(二):System.arraycopy()和Arrays.copyof()

    目录 1 Arrays copyOf 和 System arrayCopy 1 1 Arrays copyOf 1 2 System arrayCopy 1 3 区别 1 Arrays copyOf 和 System arrayCopy 1
  • java中用iterator去检查最大值,如何从Java 8中的Iterator获取n个第一个值?

    I have sorted a HashMap using Sort a Map by values Java to that I have a LinkedHashMap i e an Iterable which garantees i
  • maven 自定义archetype

    Maven提供了archetype帮助我们快速构建项目骨架 很便捷 但是 中央仓库中的archetype版本过于陈旧 构建好项目后 需要修改很多信息 甚是麻烦 那么如何自定义个archetype就显得很有必要 自定一个archetype须遵
  • numpy中的np.random.rand、np.random.randn、np.random.randint、np.random.uniform等用法

    随机数生成方法 1 np random rand d0 d1 dn np random rand d0 d1 dn 生成一个指定形状的 0 1 之间均匀分布的随机数数组 参数d0 d1 dn指定了生成的随机数数组的维度 import num
  • js光标事件

    JavaScript是基于对象 object based的语言 而基于对象的基本特征 就是采用事件驱动 event driven 它是在图形界面的环境下 使得一切输入变化简单化 通常鼠标或热键的动作我们称之为事件 Event 而由鼠标或热键
  • DNF管理软件包

    DNF是一款Linux软件包管理工具 用于管理RPM软件包 DNF可以查询软件包信息 从指定软件库获取软件包 自动处理依赖关系以安装或卸载软件包 以及更新系统到最新可用版本 DNF与YUM完全兼容 提供了YUM兼容的命令行以及为扩展和插件提
  • 【文心一言】如何申请获得体验资格,并简单使用它的强大功能

    目录 一 文心一言 1 1 它能做什么 1 2 技术特点 1 3 申请方法 二 功能体验 2 1 文心一言 2 2 写冒泡排序代码 测试代码 2 3 画一个爱心 2 4 画一个星空 三 申请和通过 3 1 申请时间 3 2 通过时间 文心一
  • 【MATLAB第2期】源码分享#基于LSTM时间序列单步预测,含验证和预测未来

    MATLAB第2期 源码分享 基于LSTM时间序列单步预测 含验证和预测未来 1 运行环境 matlab2020a cpu 2 数据说明 单列数据 2018 10 2018 12 共三个月 92个数据 3 数据处理 样本标准化处理 其中 前
  • 含重复点的蚁群算法

    背景 以论文 汉中市城市生活垃圾收运路线优化研究 为背景 共37个位置 一个是车库 一个是垃圾处理中心 剩下35个是垃圾收集站 每次都是垃圾搬运车从车库出发 经过7个垃圾收集站 运到到垃圾处理中心 重复5次 直到35个垃圾收集站的垃圾都收集
  • Stata字符串函数:快捷提取字符信息

    1 substr 函数的用法 语法 substr s n1 n2 a s为需要进行提取的字符串 b n1表示提取的起始位置 c 对于不同编码的文本 n2代表不同含义 对于纯ASCII编码的文本 n2表示要提取字符长度为n2的字符串 而对于其