全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
7583 7
2013-03-12
悬赏 300 个论坛币 已解决
如附件所示ymdhms.xlsx, 我现在想生存一个datetime的变量,使得是2012年12月1日12:35:06秒形式,
我尝试了用mdyhms和Cmdyhms都未能解决,用format %tc转化后跟原来的数据总有几秒钟的相差。

第二个问题是删除重复的条数,因为我在xtset id datetime的时候出现错误提示
“repeated time values within panel”,由于数据量较多,我一时查找不出来在什么位置。

https://bbs.pinggu.org/thread-2265579-1-1.html

因为比较急,所以非常希望有人能解决!
非常感谢!

idyearmonthdayhourminutesecond

1

2012

12

1

12

35

6

1

2012

12

1

12

35

6

2

2012

10

1

12

35

6

2

2012

10

1

12

35

6

2

2012

10

1

12

35

6

3

2008

6

12

8

36

28

3

2008

6

12

8

36

28



最佳答案

蓝色 查看完整内容

import excel "D:\temp\ymdhms.xlsx", sheet("Sheet1") firstrow clear gen double datetime=Cmdyhms(month,day,year,hour,minute,second) format %tC datetime list 没有问题啊,秒也不差的 . import excel "D:\temp\ymdhms.xlsx", sheet("Sheet1") firstrow clear . gen double datetime=Cmdyhms(month,day,year,hour,minute,second) . format %tC datetime . list +------------------------ ...
二维码

扫码加我 拉你入群

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

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

全部回复
2013-3-12 23:29:57
import excel "D:\temp\ymdhms.xlsx", sheet("Sheet1") firstrow  clear
gen double datetime=Cmdyhms(month,day,year,hour,minute,second)
format %tC  datetime
list

没有问题啊,秒也不差的


. import excel "D:\temp\ymdhms.xlsx", sheet("Sheet1") firstrow  clear


. gen double datetime=Cmdyhms(month,day,year,hour,minute,second)

. format %tC  datetime

. list

     +-----------------------------------------------------------------------+
     | id   year   month   day   hour   minute   second             datetime |
     |-----------------------------------------------------------------------|
  1. |  1   2012      12     1     12       35        6   01dec2012 12:35:06 |
  2. |  1   2012      12     1     12       35        6   01dec2012 12:35:06 |
  3. |  2   2012      10     1     12       35        6   01oct2012 12:35:06 |
  4. |  2   2012      10     1     12       35        6   01oct2012 12:35:06 |
  5. |  2   2012      10     1     12       35        6   01oct2012 12:35:06 |
     |-----------------------------------------------------------------------|
  6. |  3   2008       6    12      8       36       28   12jun2008 08:36:28 |
  7. |  3   2008       6    12      8       36       28   12jun2008 08:36:28 |
     +-----------------------------------------------------------------------+
二维码

扫码加我 拉你入群

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

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

2013-3-13 00:03:20
你把你自己实现的过程先写出来,然后让别人看看哪里有问题在改啊
二维码

扫码加我 拉你入群

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

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

2013-3-13 07:59:28
蓝色 发表于 2013-3-13 00:03
你把你自己实现的过程先写出来,然后让别人看看哪里有问题在改啊
我是这样处理的:
gen datetime=Cmdyhms(month,day,year,hour,minute,second)
format %tCDDmonCCYY_HH:MM:SS   datetime
gen datetime=mdyhms(month,day,year,hour,minute,second)
format   dateYMDHMS  %tC

好像都对不起来。

我的最终目的是xtset id datetime,
但是电脑提示我“repeated time values within panel”


在尝试删除重复项的时候,我发现数据量大的时候,
duplicates drop id month  day  year hour minute second
与先下面生成一个年、月、日、分、时、秒的dateYMDHMS方法不一致
duplicates drop id datetime


在请教一下,由于我这里是精确到秒的数据,
因此在生成秒格式的数据datetime后,我xtset id datetime的时候要指示数据是秒的格式吗?

二维码

扫码加我 拉你入群

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

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

2013-3-15 12:54:37
duplicates drop id month  day  year hour minute second

duplicates drop id datetime

这两个方法也是一样的结果
二维码

扫码加我 拉你入群

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

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

2013-3-16 21:14:29
蓝色 发表于 2013-3-15 12:53
import excel "D:\temp\ymdhms.xlsx", sheet("Sheet1") firstrow  clear
gen double datetime=Cmdyhms(mon ...
多谢前辈及时指教!
:)
发现:
gen double datetime=mdyhms(month,day,year,hour,minute,second)

gen datetime=mdyhms(month,day,year,hour,minute,second)
效果是不一样的。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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