2301_79902002 2024-04-26 11:25 采纳率: 0%
浏览 10

STATA 用bysort按照月份分类后月份改变了

如题,stata问题,我想按照月份做相同地区除公司i之外同群公司的收益率均值,导入数据后前面数据显示为图1,但是运行程序分组后显示为图2,月份直接被统一了,这是为什么

img

img

附代码:

clear all
import excel "D:\mydoc\Desktop\特质收益率\纯数据1",firstrow
bys province month :egen 同月同地Rs总和=sum(Rs)
bys province month :egen 同月同地Rs总数=count(Rs)
gen provmean=(同月同地Rs总和-Rs)/(同月同地Rs总数-1) 

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-26 11:25
    关注

    引自免费微信小程序:皆我百晓生

    看起来你在使用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")

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月26日

悬赏问题

  • ¥100 复现论文:matlab仿真代码编写
  • ¥15 esp32驱动GC9A01循环播放视频
  • ¥15 惠普360g9的最新bios
  • ¥30 这个功能用什么软件发合适?
  • ¥60 微信小程序,取消订单,偶尔订单没有改变状态
  • ¥15 用pytorch实现PPO算法
  • ¥15 关于调制信号的星座图?
  • ¥30 前端传参时,后端接收不到参数
  • ¥15 这是有什么问题吗,我检查许可证了但是显示有呢
  • ¥15 机器学习预测遇到的目标函数问题