本文作者:王 涛(石河子大学) 文字编辑:李钊颖 技术总编:李朋冲 重大通知!!!2019年7月5日至7月8日在武汉举行的首期Python编程技术定制培训,招生工作已经圆满结束。另外爬虫俱乐部将于2019年8月22日至28日在湖北武汉举行为期一周的Stata编程技术定制培训,此次采取初级班和高级班分批次培训,仍在火热招生中。 详细培训大纲及报名方式,请点击文末阅读原文呦~ 日期的提取在数据处理中不可或缺,常见的类型是字符型时间变量的提取,例如,利用date()函数、substr()函数、todatetime命令,然而对于数值型变量日期的提取却鲜有介绍。 本文首先介绍对于字符型日期提取的方法,然后利用爬虫俱乐部线下培训过程中遇到的答疑问题,详细介绍数值型变量日期的提取。 一、字符型变量日期提取 首先,我们利用input命令输入两个日期,例如6/17/2019和6/09/2019,程序如下: clear input str15 date '6/17/2019' '6/09/2019' end browse 然后,为将字符型日期转为数值型,我们可以利用date()函数加format命令,程序如下:
当然你也可以选择日期显示格式,例如我们输入如下程序将会显示不同的日期格式: gen d1 = date(date,'MDY') gen d2= date(date,'MDY') gen d3 = date(date,'MDY') gen d4 = date(date,'MDY') format d1 %tdCY.N.D format d2 %tdCY/N/D format d3 %tdCY-M-D format d4 %tdCY_M_D //'_'表示空格 browse 最后我们利用year()、month()函数和substr()函数提取年份和月份,程序如下:
除了一般常见的年月日日期数据,还有一些带时分秒的日期类型,例如2019-06-17 14:04:31.890。对于这样日期,我们依然可以利用date()函数,处理方式和上面类似,程序如下: clear input str29 time '2019-06-17 14:04:31.890' end gen date = date(time,'YMDhms') format date %tdCY-N-D browse 此外,我们还可以利用clock()函数和dofc()函数,clock()函数表示此日期与1960年1月1日00:00:000相距的毫秒数;dofc()函数是将毫秒数转化为天数。程序如下:
上图中date和date1日期一样,可见两种方式均可。接着我们依然按照上面的方式提取年份和月份,程序如下: gen year=real(substr(time,1,4)) //字符型的直接提取 gen year1=year(date) //数值型日期提取 gen month = real(substr(time,6,2)) gen month1 = month(date) 爬虫俱乐部将于2019年8月22日至28日在湖北武汉举行为期一周的Stata编程技术定制培训,此次采取初级班和高级班分批次培训。课程通过案例教学模式,旨在帮助大家在短期内掌握Stata软件编程、金融计量知识和实证分析方法,使大家熟悉Stata核心的爬虫技术,以及Stata与其他软件交互的高端技术。 初级班主要是为了让学员掌握Stata数据分析技巧,并能独立撰写相关的程序。涉及内容包括多种数据格式的读取和输出、数据的合并、实证结果的输出以及爬虫俱乐部编写的命令介绍等。 高级班主要是为了让学员掌握Stata软件进阶操作,涉及内容包括正则表达式、网络爬虫技巧、文本分析等技术。经过团队精心策划,此次课程新增北大法宝裁判文书信息提取和百度地图api调用两大案例,以及新兴实证研究方法介绍,相信定能让学员受益匪浅! |
|