全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2340 8
2013-03-11
各位好,问题如下:
我有两列时间变量如下
date                             time
20110809                  92355
20110809                  90448                                   
20110809                  90343
20110809                  90343
20110809                  90343
20110809                  90343
20110809                  90333
20110809                  90326
20110809                  90318


如表一小部分,如第一行指2011年08月09日,09点23分55秒。


我现在想将这两列分裂成6列,分别指明年月日时分秒。如下图变为:
Y                Mon              D               H              M             S
2011           08               09             09             23           55
2011           08               09             09             04           48
.
.
.
求助应该如何操作?万分感谢!

ps: 年为09年到12年,月包含12个月, 日1-31均存在,时包含09,10,11,13,14,15,分秒各包含所有60分秒。






二维码

扫码加我 拉你入群

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

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

全部回复
2013-3-11 22:02:55
用字符函数转换数值或者数值转换字符,然后用类似str之类的函数,提取你想要的即可。大致思路。stata语法忘光了
二维码

扫码加我 拉你入群

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

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

2013-3-11 22:09:09
zhukovasky 发表于 2013-3-11 22:02
用字符函数转换数值或者数值转换字符,然后用类似str之类的函数,提取你想要的即可。大致思路。stata语法忘 ...
{:3_59:}不得要领啊  可否助我个command?
二维码

扫码加我 拉你入群

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

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

2013-3-11 23:22:32
坏半半 发表于 2013-3-11 22:09
不得要领啊  可否助我个command?
自顶
二维码

扫码加我 拉你入群

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

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

2013-3-12 01:01:42
clear
input ///
date                     time
20110809                  92355
20110809                  90448                                   
20110809                  90343
20110809                  90343
20110809                  90343
20110809                  90343
20110809                  90333
20110809                  90326
20110809                  90318
end
des

tostring date time,replace

gen Y  =real(substr(date,1,4))
gen Mon=real(substr(date,5,6))
gen D  =real(substr(date,7,8))
gen H  =real(substr(time,1,2))
gen M  =real(substr(time,3,4))
gen S  =real(substr(time,5,6))
list
二维码

扫码加我 拉你入群

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

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

2013-3-12 01:02:15
. clear

. input ///
> date                     time

          date       time
  1. 20110809                  92355
  2. 20110809                  90448                                   
  3. 20110809                  90343
  4. 20110809                  90343
  5. 20110809                  90343
  6. 20110809                  90343
  7. 20110809                  90333
  8. 20110809                  90326
  9. 20110809                  90318
10. end

. des

Contains data
  obs:             9                          
vars:             2                          
size:            72                          
--------------------------------------------------------------------------------------------------------------
              storage  display     value
variable name   type   format      label      variable label
--------------------------------------------------------------------------------------------------------------
date            float  %9.0g                  
time            float  %9.0g                  
--------------------------------------------------------------------------------------------------------------
Sorted by:  
     Note:  dataset has changed since last saved

.
. tostring date time,replace
date was float now str8
time was float now str5

.
. gen Y  =real(substr(date,1,4))

. gen Mon=real(substr(date,5,6))

. gen D  =real(substr(date,7,8))

. gen H  =real(substr(time,1,2))

. gen M  =real(substr(time,3,4))

. gen S  =real(substr(time,5,6))

. list

     +--------------------------------------------------+
     |     date    time      Y   Mon   D    H     M   S |
     |--------------------------------------------------|
  1. | 20110808   92355   2011   808   8   92   355   5 |
  2. | 20110808   90448   2011   808   8   90   448   8 |
  3. | 20110808   90343   2011   808   8   90   343   3 |
  4. | 20110808   90343   2011   808   8   90   343   3 |
  5. | 20110808   90343   2011   808   8   90   343   3 |
     |--------------------------------------------------|
  6. | 20110808   90343   2011   808   8   90   343   3 |
  7. | 20110808   90333   2011   808   8   90   333   3 |
  8. | 20110808   90326   2011   808   8   90   326   6 |
  9. | 20110808   90318   2011   808   8   90   318   8 |
     +--------------------------------------------------+

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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