全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
9274 5
2014-04-24
日期数据处理

如图所示,下载下来的数据日期变量的类型为int,format为%td。表明该变量是日期型数据。
我只想保留年度数据,也就是31dec2007、31dec2008等这样的观测案例,
输入命令:keep if date==31dec2007  
出现错误提示:31dec2007 invalid name  r(198);


感觉是,日期型数据不能像数值型数据那样,可以用if date==31dec2007这样的语句。当然,也无法使用字符匹配函数strmatch()。


我应该怎么做才能达到我想要的结果呢?
PS:可以的话,请大神们详细讲一下日期型数据的相关运算,或者在if句怎么被选取成功。
另字符型数据的type会出现str5、str10、str21这样的,如何修改,比如把str5改成str10


上例我曾试过:tostring date, replace 然后再用strmatch()选择,
但是显示date变量直接变成了17256(str5的字符型数据)。不知道为什么?求解啊。。。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-4-24 15:33:18
哦,我大约知道为什么将日期型数据转化为字符型数据时会是str5的字符了。应该改日期型数据本身就是一串排列好的数字,17256代表的就是30mar2007。
但还是不知道怎么选中或者提取出一部分日期型数据删掉或保留。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-4-26 04:00:11
This may be what you want:

gen year=year(date)
bysort year: keep if _n==_N
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-4-26 04:06:57
Sorry, should be this:

gen year=year(date)
bysort year (date): keep if _n==_N
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-22 14:08:29
hplcdadong 发表于 2014-4-26 04:06
Sorry, should be this:

gen year=year(date)
thx.
由于年份不是很多,先把日期数据转化成%td的形式,我把每个代表年末的数值筛选出来,然后keep语句,就得到了我想要的数据。
不过,你的方法也很简单。谢谢哈!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-27 08:25:29
提示: 该帖被管理员或版主屏蔽
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群