楼主: 耕耘使者
12697 23

[数据管理求助] 函数group的意思 [推广有奖]

11
SpencerMeng 在职认证  发表于 2015-4-18 20:32:51
和蓝色版主一样 没问题

  1. clear
  2. inp str10 date1
  3. "01-06-2000"
  4. "02-06-2000"
  5. "03-06-2000"
  6. end

  7. egen id0=group(date1)

  8. gen d1=date(date1,"DMY")
  9. format d1 %td

  10. egen id01=group(d1)
  11. list
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
耕耘使者 + 1 + 1 + 1 热心帮助其他会员

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

12
耕耘使者 发表于 2015-4-18 22:05:42
蓝色 发表于 2015-4-18 17:07
你把日期排一下序
sort date
然后再看结果
好,我试试,多谢

13
耕耘使者 发表于 2015-4-18 22:11:58
SpencerMeng 发表于 2015-4-18 20:32
和蓝色版主一样 没问题
SpencerMeng版主,您下载一下8楼的数据,试试就会发现问题了。
我尝试了多次,不明白所以然

14
SpencerMeng 在职认证  发表于 2015-4-18 23:13:17
耕耘使者 发表于 2015-4-18 22:11
SpencerMeng版主,您下载一下8楼的数据,试试就会发现问题了。
我尝试了多次,不明白所以然
刚回答您问题的时候,用的别的电脑,想下载数据但是未果。

现在用我的自己的电脑,数据下载好了。

您的数据是stata13版本的

用use13外部命令可以实现低版本的打开您的数据。

您需要先把date变量的科学计数法打回原形

用format命令就行了
  1. format date %10.0f
复制代码
随后再用group绝对没问题~
已有 1 人评分学术水平 热心指数 收起 理由
耕耘使者 + 2 + 2 热心帮助其他会员

总评分: 学术水平 + 2  热心指数 + 2   查看全部评分

15
freddy1001 发表于 2015-4-19 08:25:16 来自手机
group 是对不同取值的数组进行编号的意思
已有 1 人评分热心指数 收起 理由
耕耘使者 + 2 热心帮助其他会员

总评分: 热心指数 + 2   查看全部评分

16
耕耘使者 发表于 2015-4-19 09:42:57
SpencerMeng 发表于 2015-4-18 23:13
刚回答您问题的时候,用的别的电脑,想下载数据但是未果。

现在用我的自己的电脑,数据下载好了。
奇怪,用了您的方法,结果仍然是从17开始的,您看图:
TT截图未命名.jpg
我用的命令如下:
  1. format date %10.0f
  2. egen time=group(date)
复制代码
SpencerMeng版主劳心!诚挚感谢!

17
蓝色 发表于 2015-4-19 09:47:35
让你排序,你为什么不排序咱看结果呢

你的第一行数据的日期,有不是最早的日期,只能排到第17位啊
group是根据date从小到大产生的
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
耕耘使者 + 2 + 2 热心帮助其他会员
SpencerMeng + 1 我很赞同

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

18
SpencerMeng 在职认证  发表于 2015-4-19 10:05:27
耕耘使者 发表于 2015-4-19 09:42
奇怪,用了您的方法,结果仍然是从17开始的,您看图:

我用的命令如下:
蓝色版主所言极是呢。
  1. clear
  2. inp date
  3. 20101102
  4. 20101204
  5. 20110104
  6. 20120524
  7. end
  8. *这样导入的话呈现的是科学计数法形式
  9. format date %10.0f  //将科学计数法的日期变量改为正常的样子
  10. egen d1=group(date)

  11. **打乱顺序的
  12. clear
  13. inp date
  14. 20111102
  15. 20101204
  16. 20100104
  17. 20100524
  18. end

  19. format date %10.0f  
  20. egen d1=group(date)

  21. **对日期进行sort的
  22. clear
  23. inp date
  24. 20111102
  25. 20101204
  26. 20100104
  27. 20100524
  28. end

  29. sort date
  30. format date %10.0f  
  31. egen d1=group(date)
复制代码
已有 1 人评分学术水平 热心指数 收起 理由
耕耘使者 + 2 + 2 热心帮助其他会员

总评分: 学术水平 + 2  热心指数 + 2   查看全部评分

19
SpencerMeng 在职认证  发表于 2015-4-19 10:05:27
耕耘使者 发表于 2015-4-19 09:42
奇怪,用了您的方法,结果仍然是从17开始的,您看图:

我用的命令如下:
蓝色版主所言极是呢。
  1. clear
  2. inp date
  3. 20101102
  4. 20101204
  5. 20110104
  6. 20120524
  7. end
  8. *这样导入的话呈现的是科学计数法形式
  9. format date %10.0f  //将科学计数法的日期变量改为正常的样子
  10. egen d1=group(date)

  11. **打乱顺序的
  12. clear
  13. inp date
  14. 20111102
  15. 20101204
  16. 20100104
  17. 20100524
  18. end

  19. format date %10.0f  
  20. egen d1=group(date)

  21. **对日期进行sort的
  22. clear
  23. inp date
  24. 20111102
  25. 20101204
  26. 20100104
  27. 20100524
  28. end

  29. sort date
  30. format date %10.0f  
  31. egen d1=group(date)
复制代码

20
耕耘使者 发表于 2015-4-19 13:20:48
蓝色 发表于 2015-4-19 09:47
让你排序,你为什么不排序咱看结果呢

你的第一行数据的日期,有不是最早的日期,只能排到第17位啊
蓝色版主醍醐灌顶,耕耘使者大彻大悟。
有劳版主!多谢!

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-14 18:30