Datetime 如何设置耗时2个月的时间变量(双月数据)?

Datetime 如何设置耗时2个月的时间变量(双月数据)?,datetime,time,time-series,stata,Datetime,Time,Time Series,Stata,我找不到一种方法来定义Stata中需要两个月时间的时间变量。我在其他论坛上找到了定义3个月(季度)间隔或将其定义为一个学期的方法,但这不是我想要的 我有一个这样的数据集 year month observation 2000 1 40 2000 2 10 2000 3 50 2000 4 10 我创建了一个变量biu\u monthas year month bi_month observation 2000 1

我找不到一种方法来定义Stata中需要两个月时间的时间变量。我在其他论坛上找到了定义3个月(季度)间隔或将其定义为一个学期的方法,但这不是我想要的

我有一个这样的数据集

year month observation
2000   1        40
2000   2        10
2000   3        50
2000   4        10
我创建了一个变量
biu\u month
as

year month bi_month observation
2000   1       1        40
2000   2       1        10
2000   3       2        50
2000   4       2        10
但是在这里,我不能使用下面的代码,也不能使用
tsset
命令(因为它没有定义双月数据的命令)

因为Stata读取的
biu_month
表示从1到12的月份

作为一个术语,双月(或双月)在我看来并不是特别透明。我建议两个月两次,两个月两次

这里的主要问题似乎是希望将月度数据聚合为两个月的数据,特别是间隔1-2月,…,11-12月。为此,我建议用每个月的第一个月表示两个月

clear 
input year month whatever 
2000   1        40
2000   2        10
2000   3        50
2000   4        10
end 

gen mdate = ym(year, month) 

gen m2date = 2 * floor(mdate/2) 

format m*date %tm 

list


     +-------------------------------------------+
     | year   month   whatever    mdate   m2date |
     |-------------------------------------------|
  1. | 2000       1         40   2000m1   2000m1 |
  2. | 2000       2         10   2000m2   2000m1 |
  3. | 2000       3         50   2000m3   2000m3 |
  4. | 2000       4         10   2000m4   2000m3 |
     +-------------------------------------------+
现在,这样的数据不能使用新的两个月日期
tsset
xtset
,因为每个这样的日期在数据集中都不是唯一的

但是假设您减少了数据集,使每个两个月的日期只发生一次(或者,最多每个面板发生一次)。现在
tsset
xtset
已触手可及,所需的调整就是设置
delta(2)

以每两个月的第二个月来表示每两个月的时间段同样是系统的。只需在上面的
m2date
配方中添加1即可


注意:严格地说,
xtset
只需要面板标识符,不要求每个面板最多出现一次。我不确定这是否广泛有用,但这是另一回事

谢谢,这是一个很好的解决方案!糟糕的是,没有两个月一次的口译,你可以加上分钟、小时、上午/下午、两周、四个月、两年一次、四年一次。。。作为时间单位,Stata不直接支持,但您真正缺少的是什么?有了一两个额外的命令,定义自己的时间基础并不困难。
clear 
input year month whatever 
2000   1        40
2000   2        10
2000   3        50
2000   4        10
end 

gen mdate = ym(year, month) 

gen m2date = 2 * floor(mdate/2) 

format m*date %tm 

list


     +-------------------------------------------+
     | year   month   whatever    mdate   m2date |
     |-------------------------------------------|
  1. | 2000       1         40   2000m1   2000m1 |
  2. | 2000       2         10   2000m2   2000m1 |
  3. | 2000       3         50   2000m3   2000m3 |
  4. | 2000       4         10   2000m4   2000m3 |
     +-------------------------------------------+
    collapse whatever, by(year m2date) 

    tsset m2date, delta(2) 

    list 

    +--------------------------+
     | year   m2date   whatever |
     |--------------------------|
  1. | 2000   2000m1         25 |
  2. | 2000   2000m3         30 |
     +--------------------------+