引自免费微信小程序:皆我百晓生
看起来你在使用STATA进行面板数据分析时遇到了一些困惑。从你的描述来看,似乎在执行egen
命令之后,月份变量(month)的格式发生了变化。这可能是由于STATA默认将日期转换为了数值类型,从而导致了看上去像是所有月份都被统一的情况。
为了解决这个问题,在处理之前,你需要确保你的日期变量(month)是正确的日期格式。如果它目前是一个字符串,你需要将其转换为日期格式。这里有一个步骤来解决这个问题:
首先,确认你的日期变量是字符串格式。如果不确定,可以使用describe
命令查看变量的类型。例如:
describe month
如果month
是字符串格式,那么需要将其转换为日期格式。假设你的日期格式是"mm/dd/yyyy",可以使用date()
函数进行转换:
gen datevar = date(month, "MDY")
然后,你可以通过format
命令设置日期变量的显示格式:
format datevar %td
接下来,重新执行你的分组操作,并计算所需指标:
clear all
import excel "D:\mydoc\Desktop\特质收益率\纯数据1", firstrow
* 将日期变量转换为日期格式
gen datevar = date(month, "MDY")
format datevar %td
* 分组并计算平均值
bys province datevar : egen 同月同地Rs总和=sum(Rs)
bys province datevar : egen 同月同地Rs总数=count(Rs)
gen provmean=(同月同地Rs总和-Rs)/(同月同地Rs总数-1)
这样应该能保持月份的正确性并在每个月份内进行计算。如果你的日期格式不是"mm/dd/yyyy",请相应地调整date()
函数中的参数。例如,如果是"dd/mm/yyyy",则应使用date(month, "DDMY")
。