楼主: Henryzhu
7732 7

[数据管理求助] 用Stata如何生产年、月、日、时、分、秒变量datetime,并删除重复的条数 [推广有奖]

  • 6关注
  • 61粉丝

已卖:314份资源

教授

89%

还不是VIP/贵宾

-

威望
0
论坛币
11959 个
通用积分
0.2415
学术水平
45 点
热心指数
76 点
信用等级
24 点
经验
86502 点
帖子
1419
精华
0
在线时间
1026 小时
注册时间
2010-11-23
最后登录
2022-1-9

楼主
Henryzhu 在职认证  发表于 2013-3-12 23:29:56 |AI写论文
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 +------------------------ ...
关键词:datetime Stata tata date ATET 生产 如何
很高兴能来这个论坛

沙发
蓝色 发表于 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
你把你自己实现的过程先写出来,然后让别人看看哪里有问题在改啊
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Henryzhu + 5 + 5 + 5 热心帮助其他会员

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

板凳
Henryzhu 在职认证  发表于 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

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

地板
Henryzhu 在职认证  发表于 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)
效果是不一样的。
很高兴能来这个论坛

7
peyzf 发表于 2015-3-16 20:48:58
如何将 datetime中的年、月、日信息提取出来?

8
布鲁斯鼬太知 发表于 2019-3-17 16:20:26
peyzf 发表于 2015-3-16 20:48
如何将 datetime中的年、月、日信息提取出来?
substr命令,可以提取string的

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-2-4 16:01