查看原文
其他

时间函数(二)——从毫秒计算其他单位的时间

赵政轩 Stata and Python数据分析 2022-03-15


有问题,不要怕!点击推文底部“阅读原文”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~

 喜大普奔~爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.github.io,粉丝们可以通过该网站访问过去的推文哟~



时间函数再次上线,欢迎新老用户继续学习哈。我们接着上次继续啦!

       之前的推文已经说明,time1是时间戳,单位是毫秒,我们需要加上10年零8个小时的毫秒数得到真实时间对应的毫秒数time2

gen double time2 = time1+clock("1970-01-01","YMD")+8*60*60*1000

然后我们把时间数据的显示格式更改成年月日小时分钟

format %tcCCYY-NN-DD_HH:MM  time2

下图的time2就是这样得到的

好了,之前的内容回顾完了,我们继续今天的内容,如何把毫秒时间数据转化成季度、月和周数据。

一、毫秒到季度


1)通过qofd(e_d)dofc(e_tc)的结合

       e_tc表示毫秒数据,e_d表示天数数据。dofc(e_tc)通过自01jan1960 00:00:00.000以来的非闰秒毫秒数计算天数,qofd时间函数是通过自01jan1960 00:00:00.000以来的天数计算对应的季度数。

       gen quarter1 = qofd(dofc(time2))

此时显示的数据是从01jan1960 00:00:00.000time2的季度数,我们可以通过format命令改一下数据的时间显示格式。

       format %tqCCYY!qq quarter1

       如图所示:

2)提取当前时间所在的季度数(10月属于第四季度

       quarter(e_d):计算天数数据中最后一天处在哪一个季度里。

       gen quarter2 = quarter(dofc(time2))

想生成季度虚拟变量的同学,可以按照上述方法先生成季度,然后tab quarter,gen(q)就可以了。

二、从毫秒到月


1)通过mofd(e_d)dofc(e_tc)的结合。

       mofd(e_d)时间函数是通过自01jan1960 00:00:00.000以来的天数计算对应的月度数。

       gen month1 = mofd(dofc(time2))

       此时显示的数据是01jan1960 00:00:00.000time2的月数,我们可以通过format命令改一下数据的时间显示格式。

       format %tmCCYY-NN month1

       如图所示:

2)提取当前时间的月份数据,month(e_d)dofc(e_tc)结合。

       month(e_d)时间函数是计算天数数据中最后一天所处的月数。

gen month2 = month(dofc(time2))

想生成月份虚拟变量的同学,可以按照上述方法先生成月份,然后tab month,gen(m)就可以了。

三、毫秒到周


1)通过wofd(e_d)dofc(e_tc)的结合。

       wofd(e_d)时间函数是通过自01jan1960 00:00:00.000以来的天数计算对应的周数。

       gen week1 = wofd(dofc(time2))

此时显示的数据是现在时间到01jan1960 00:00:00.000的周数,我们可以通过format命令改一下数据的时间显示格式。

       format %twCCYY!www week1

       如图所示:

2)计算当前时间在该年的第几周,week(e_d)dofc(e_tc)结合。

       week(e_d)时间函数是计算天数数据中最后一天所处的周数。

gen week2 = week(dofc(time2))

同理,tab week,gen(w)可以生产周虚拟变量。

好~~~~,毫秒到各个单位的转化就到此结束!别急,大家有没有发现一个问题?我们现在的时间函数都只是在处理数值型数据,那时间函数可不可以处理字符型时间呢?比如“2010-10-10 10:10:10”,它本身在stata内存中是字符形式的,你通过以上的方法是无法提出任何时间数据的。当然有些人说可以通过split命令拆开然后再destring一下,这样做也是可以的。不过本专题是在介绍时间函数,所以就不比较方法的优劣了。在接下来的一篇推文中笔者将为大家介绍如何处理字符型的时间数据。

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~


文字编辑/赵宇亮

技术总编/刘贝贝


往期推文推荐:

1.高校学术大神:你的导师上榜了吗?

2.中国高校财经、管理与综合类期刊灌水排行榜

3.命令sum2docx输出统计量表到docx文件

4.用reg2docx报告你的实证结果吧!

5.爬虫俱乐部又出新命令了——wordconvert转换你的word文件

6.putdocx+wordconvert—将实证结果输出到Word(.docx)文档

7.Stata 15之Markdown——没有做不到,只有想不到!

8.矩阵和宏的故事

9.shellout,open anything

10.Putpdf--神奇的转换工具



关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存