有问题,不要怕!点击推文底部“
阅读原文
”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱
[email protected]
,我们会及时为您解答哟~
喜大普奔~爬虫俱乐部的github主站正式上线了!我们的网站地址是:
https://stata-club.github.io
,粉丝们可以通过该网站访问过去的推文哟~
——爬虫俱乐部
我们接着上一篇继续介绍剩余的处理字符型时间的时间函数,它们分别是
weekly(s1,s2[,Y])
、
monthly(s1,s2[,Y])
、
quarterly(s1,s2[,Y])
、
halfyearly(s1,s2[,Y])
和
yearly(s1,s2[,Y])
。
yearly(s1,s2[,Y])
只能对
字符型
的年份进行处理(这里提醒大家一下,之前我们讲的
year(e_d)
是解决
数值型
时间数据,它与此处讲的yearly(s1,s2[,Y])不同,大家不要用混淆了),s1的取值范围是0100-9999,不在此范围内的字符型数字在转换之后变为
missing
,s2中只有Y这一种时间结构,也就是说,yearly时间函数只能处理只有年份的字符型时间数据。我们接下来看一个例子:
生成不同类型年份数据,并加入s1的最大最小范围以及超过的此范围的数据(如下图所示)。
clear
set obs 8
input str10 var1
1998
99
00
01
9999
10000
0100
0099
end
gen year = yearly(var1,"Y",2000)
年份数据位数是两位的都转化为不超过2000且年份后两位是对应var1里面的字符数值;在0100-9999范围内的四位字符时间数据,都转化位对应的数值型数据;在此范围之外的都为
missing
。
halfyearly(s1,s2[,Y])
表示返回s1与1960年上半年相距的半年数。s2为YH或者HY,Y指的是年份, H为1指的是
上半年
,H为2指的是
下半年
。如果数据中的年份部分是两位,要记得定义
[,Y]
。我们以YH结构的数据为例子:
clear
set obs 9
input str10 var1
"1994-01"
"1994=01"
"1994,1"
"1994 1"
"1994h1"
"19941"
"1994 2"
"1994 3"
"94 1"
end
gen halfyear = halfyearly(var1,"YH",2000)
大家可以观察一下规律,Y对应时间数据中的年份部分,如果出现了两位年份时需要添加选项Y。YH指定时间数据的结构为年份加半年,半年和年份之间必须有非数字字符。注意了,H的取值为1或者2。如果H对应的时间数据的位置上出现了大于2的数字,那么转化的结果为
missing
。
quarterly(s1,s2[,Y])
表示返回s1与1960年第一季度相距的季度数,quarterly中的s2为YQ或者QY,Q对应位置上的时间数据范围是1-4(四个季度)。
gen quarter = quarterly(var1,"YQ",2000)
monthly(s1,s2[,Y])
计算s1与1960年1月1日相距的月数,其中的s2为YM和MY,M对应位置上的时间数据范围是1-12(月份)。
gen month = monthly(var1,"YM",2000)
weekly(s1,s2[,Y])
计算s1与1960年1月1日相距的周数,其中s2为YW和WY,W对应位置上的时间数据范围是1-52(周)。
gen week = weekly(var1,"YW",2000)
谢谢大家阅读学习,关于如何处理字符型时间数据的介绍,就到此结束啦,谢谢!!!
注:此推文中的图片及封面(除操作部分的)均来源于网络!如有雷同,纯属巧合!
以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。
另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!
应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~