全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
3426 9
2013-02-13
sample是dta格式的,请下载之后改一下~
我有一个变量是字符串型的,表示的是日期。而且数据是这样的,一个格里面有几个数据。
例如
accper
2009-10-11
2008-11-21,2009-12-22
2009-09-11,2006-08-11

现在的问题是,我想精简这个变量如下格式。
accper
2009-10-11
2008-11-21
2006-08-11

也就是说,只有一个时间的就留下,有两个时间的,留下一个,而且要时间早的那个。
各位看看怎么处理呢
sample.xls
大小:(28.82 KB)

 马上下载

QQ截图20130213191318.png
附件列表
QQ截图20130214212809.png

原图尺寸 42.33 KB

QQ截图20130214212809.png

sample.rar

大小:2.49 KB

 马上下载

本附件包括:

  • sample.dta

二维码

扫码加我 拉你入群

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

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

全部回复
2013-2-14 17:59:59
*所附文件中,日期有"00",这对应当月哪天?

*若原数据中各值排列很“齐整”,可用(特殊方法)
g s=date(substr(start,-10,.),"YMD")
form s %td

二维码

扫码加我 拉你入群

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

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

2013-2-14 21:41:15
sungmoo 发表于 2013-2-14 17:59
贴出部分数据(需要明确其中的字符具体是什么)。
谢谢sungmoo版主。
我上面贴出的变量是高管任职的起始年月(数据库的规则是,无法确定具体月、日的,用00表示)。由于同一高管有可能身兼数职,于是同一人的职务的起始年就可能对应有两个或者三个。我想从中取出最先开始的日期。日期是字符串。
修改过的图片中第一列是高管任职的具体职务,第二列对应的是不同职务的开始日期。
二维码

扫码加我 拉你入群

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

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

2013-2-15 02:22:49
clear
input ///
str64 accper
2009-10-11
2008-11-21,2009-12-22
2009-09-11,2006-08-11
end
split accper ,parse(,)

replace accper1=accper2  if (date(accper1,"YMD")>date(accper2,"YMD")) & accper2~=""
二维码

扫码加我 拉你入群

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

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

2013-2-15 09:49:41
sungmoo 发表于 2013-2-14 17:59
贴出部分数据(需要明确其中的字符具体是什么)。

所附文件打不开。
已经重新上传了一份压缩文件!解压就可以了!谢谢!
二维码

扫码加我 拉你入群

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

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

2013-2-15 10:03:52
蓝色 发表于 2013-2-15 02:22
clear
input ///
str64 accper
谢谢蓝色版主!这样可以!但数据里面还有一列包含四个日期的,请问这样怎么选择最小的日期呢?
比如
accper
2005-11-11,2009-02-14,2008-11-21,2009-12-22
2003-10-23,2009-12-22
2009-12-25
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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