【STATA】时间变量处理,字符串转为日期时间

您所在的位置:网站首页 stata转换数据类型 【STATA】时间变量处理,字符串转为日期时间

【STATA】时间变量处理,字符串转为日期时间

2023-08-30 03:42| 来源: 网络整理| 查看: 265

STATA、EXCEL、PYTHON处理时间变量使之能够加减计算的方法是:以某一个时间线为基准(如STATA以1960年1月1日为基准),计算指定时间与基准时间的“相隔天数/月数/季度数/年数”,通过“相隔”数来进行加减计算。

大部分被导入STATA的时间变量不会被自动识别为时间变量(这句话可能是我乐观了),需要进行字符串到“相隔”数值的转换。

但是因为“相隔”数对使用者来说本身是没有意义的,所以还需要format 进行一下格式上的转化,简单来讲就是披上一层可以让我们认识的人皮。

图1:常见的时间数据导入格式

常见字符串导入的格式 第一步:将字符串转为与基准时间的间隔数

gen clock=clock(date1,"YMDhms") gen date=date(date2,"YMD")

date1的数据构成是年月日时分秒,所以选用clock()函数,得出的结果是指定时间与1960年1月1日 0时0分0秒的间隔秒数,因为是以秒计次,所以间隔数字非常大。

date2的数据构成是年月日,所以选用date()函数。得出的结果是指定时间与1960年1月1日的间隔天数。

图2:转换后的时间间隔

在这里插入图片描述 第二步:将间隔数值转化为易读格式

format clock %tc format date %td 图3:披上人皮后的时间间隔

在这里插入图片描述 此时时间值已经从date1、date2的字符串变成了可以进行加减运算的浮点数。可是用来筛选时间,计算时间差等。

常用转换函数包括:

函数转化类型常用format转化格式clock(var,“YMDhms”)年月日时分秒%tcweekly(var,“YW”)年周(eg.2021W23)%twdate(var,“YMD”)年月日%tdmonthly(var,“YM”)年月%tmquartly(var,“YQ”)年季(eg.2021Q2)%tqhalfyearly(var,H")年半年(eg.2021h1)%thyear(var,“Y”)年%ty

以上函数一般规律为:时间函数(待转换变量/“值,“该变量/值的格式”[,Y])。 注意⚠️格式参数(即表格中的“YMDhms”/“YW”/"YMD"等)需要根据变量/值的格式来自由调整,如20210813 10:24:43的格式为YMDhms,而10:24:43 08/13/2021的指定格式则为hmsDMY. Y用于处理2位数年份,如21年8月3日,一般情况下可以忽略

在确定了变量/值格式参数后,目前的时间变量函数已经可是识别大部分常用时间写法,如date(var,“YMD”)函数可以识别的字符串日期格式包括但不限于20210813、2021.08.13、2021/08/13等。

时间变量提取单独的时间元素

date1、date2转为时间变量后,需要单独提取年、月等时间元素,可以用

year();month();week();day()

图4:提取出来的时间元素

在这里插入图片描述 以上函数仅适用于date()转化出的时间变量,不适用于clock()转化的date1变量。 如果需要将clock格式转化为date格式,可以通过split()将date1字符串分为年月日与时分秒两个值后,再对年月日单独进行date()转化。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3