如何将4位字符串变量拆分为时分变量?已尝试recode和split命令
拆分4字符时分字符串为小时和分钟变量
假设你的字符串变量名为time_str(比如值为"0915"代表9点15分),以下是两种可行的实现方式:
方法一:用substr函数直接提取
这是最直观的方式,通过指定字符位置截取子串,再转为数值型变量方便后续分析:
- 提取小时:
gen hour = real(substr(time_str, 1, 2))substr(time_str, 1, 2)表示从time_str的第1个字符开始,截取2个字符(即前两位小时数),real()函数把截取到的字符串转为数值型。 - 提取分钟:
同理,从第3个字符开始截取2个字符,得到后两位分钟数。gen minute = real(substr(time_str, 3, 2))
方法二:用split命令拆分
你之前尝试的split命令需要指定拆分位置(因为你的字符串没有分隔符),具体操作如下:
- 按位置拆分字符串:
split time_str, pos(2)pos(2)表示在第2个字符之后拆分,执行后会生成两个新字符串变量time_str1(前两位)和time_str2(后两位)。 - 转为数值型变量:
gen hour = real(time_str1) gen minute = real(time_str2)
为什么recode不适用?
recode命令主要用于对数值变量重新编码(比如把1-3归为"低",4-6归为"高"),它没法处理字符串的拆分需求,所以不用在这个场景下尝试。
内容的提问来源于stack exchange,提问作者Pepe Hidalgo
相关产品推荐
相关产品推荐

