楼主: fugangxx
1557 11

[编程问题求助] 请教两个stata分组的编程问题 [推广有奖]

  • 7关注
  • 14粉丝

已卖:5808份资源

学术权威

11%

还不是VIP/贵宾

-

威望
0
论坛币
153652 个
通用积分
9123.2121
学术水平
63 点
热心指数
132 点
信用等级
79 点
经验
2110 点
帖子
4004
精华
0
在线时间
4906 小时
注册时间
2013-6-18
最后登录
2026-1-7

楼主
fugangxx 在职认证  发表于 2021-8-12 09:53:43 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
遇到两个stata分组的问题,想了好几天也没有得出答案,请各位大侠出手相助,谢谢,非常感谢!!

. dataex

----------------------- copy starting from the next line -----------------------
  1. * Example generated by -dataex-. For more info, type help dataex
  2. clear
  3. input str1 var1 float var2
  4. "a"  1
  5. "b"  2
  6. "b"  5
  7. "d"  5
  8. "g"  8
  9. "g"  9
  10. "h" 10
  11. "m"  2
  12. ""   2
  13. "a"  4
  14. "b"  6
  15. "b"  7
  16. "b"  8
  17. "c"  9
  18. "f" 10
  19. "g"  1
  20. "h"  2
  21. "m"  3
  22. ""  10
  23. "a"  1
  24. "b"  2
  25. "b"  2
  26. "b"  2
  27. "c"  3
  28. "c"  4
  29. "c"  5
  30. "d"  8
  31. "d"  9
  32. "m" 10
  33. end
复制代码

------------------ copy up to and including the previous line ------------------


问题1:通过stata 对数据进行分组,按照var1空行(或称缺失值)怎么进行数据分组,

问题2:通过stata 对var1和var2中的具体的数值(或者字符串)进行分组,比如,示例中var1出现m即是分组的指征,或者var2中数值10是分组的指征 ,从上至下,出现分组指征即进行分组,m或10(包含m,10)及其以上为一组,其下为别一组,很多这种分组,多次分,分成较多的组


二维码

扫码加我 拉你入群

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

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

关键词:stata分组 Stata tata including generated

回帖推荐

pengxhan 发表于2楼  查看完整内容

gen tag1=1 if var1=="" gen tag2=1 if var2==10 gen g1=sum(tag1) gen g2=sum(tag2)

沙发
pengxhan 发表于 2021-8-12 13:44:12
gen tag1=1 if var1==""
gen tag2=1 if var2==10
gen g1=sum(tag1)
gen g2=sum(tag2)

藤椅
zdlspace 学生认证  发表于 2021-8-12 14:23:29
pengxhan 发表于 2021-8-12 13:44
gen tag1=1 if var1==""
gen tag2=1 if var2==10
gen g1=sum(tag1)
你读懂他的要求了?反正我是没读懂第二条什么意思,什么叫“m或10(包含m,10)及其以上为一组”,没搞明白

板凳
fugangxx 在职认证  发表于 2021-8-12 15:28:37
谢谢您的回复,m是指 var1中的值m,有很多个,var2中的值10,也有很多个,您的答案只是针对我显示的这几个数值,如果说有上万条数据,而且其中的m和10是无规律出现的

期望结果图.png (18.04 KB)

期望结果图.png

报纸
fugangxx 在职认证  发表于 2021-8-12 15:42:13
谢谢楼上两位的回复,可能我没说得特别清楚,两位的答案基本能完成我要实现的目的,但是追问一句,如果10作为分组的分组指征,需要把10放在上一组而不是下一组,也就是在10的下面划线分组,最后的结果如下图

期望结果图.png (18.04 KB)

期望结果图.png

地板
fugangxx 在职认证  发表于 2021-8-12 15:47:13
我为什么回复不了了,谢谢楼上两位朋友,是想生成两个分组变量g1和g2, g2的结果还不是我预期的,想把10分到上一组而不是下一组,即在10后划线进行分组

期望结果图.png (18.04 KB)

期望结果图.png

7
fugangxx 在职认证  发表于 2021-8-12 15:50:21
由上面的问题总引申出来的一个新问题,问题3:根据变量的具体值或者字符串找到他对应的序号并将其引用出来,比如,上面提供的数据var1中字母m其序号分别为8,18和29,var2中的位置序号分别是7,10,15和29,我需要按照这些序号分组或者引用这些序号,在随后的程序中应用,谢谢,非常感谢

8
fugangxx 在职认证  发表于 2021-8-12 15:53:32
谢谢楼上两位朋友,刚才我回复了好几个帖子,但是不知道为什么不显示,我就是想生成两个分组变量,一个是针对var1的分组变量,一个是针对var2的分组变量,楼上两位的回复非常好,基本解决了问题,分组变量g2还不完全是我想到结果,希望10能分组到上一组,而不是下一组,我刚回复了,但是不知道为什么不显示,我马上把图贴上来

9
fugangxx 在职认证  发表于 2021-8-12 15:54:03
期望结果图

期望结果图.png (18.04 KB)

期望结果图.png

10
pengxhan 发表于 2021-8-12 17:25:39
就是按照var2=10以上为一组 包括10么? 还是要var1和var2 联合分组? 看不懂

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-7 06:43