楼主: Yvonnehh3
3298 8

[一般统计问题] stata如何自动标注出现频率? [推广有奖]

  • 0关注
  • 0粉丝

大专生

46%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
34.7118
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
293 点
帖子
14
精华
0
在线时间
90 小时
注册时间
2018-3-8
最后登录
2021-5-6

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
下面数据是以每一个comp_ctry编码为单位,标注它在2000年-2013年(对应变量rela_00到rela_13)是否出现(1表示“出现”,空值表示“没有出现”)
现在我想标注每一个comp_ctry编码的出现频率,效果如下图:
求各位大神帮帮忙呀~
数据
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata 2000年-2013年 comp CTR stata数据处理 频率标注

回帖推荐

黃河泉 发表于6楼  查看完整内容

试试

黃河泉 发表于7楼  查看完整内容

Nick Cox 建议:
沙发
黃河泉 在职认证  发表于 2018-3-29 11:17:09 |只看作者 |坛友微信交流群
1.        你若要问程序 (code),请附上资料;你若要附上资料,请用 dataex 印出资料。
2.        尔后建议请用 dataex (先 ssc install dataex 并见说明) 将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。并请参考 http://www.jianshu.com/p/9870080fe769,  https://bbs.pinggu.org/thread-5048204-1-1.html, 与 https://bbs.pinggu.org/thread-5917273-1-1.html

使用道具

藤椅
Yvonnehh3 发表于 2018-3-29 15:04:42 |只看作者 |坛友微信交流群
黃河泉 发表于 2018-3-29 11:17
1.        你若要问程序 (code),请附上资料;你若要附上资料,请用 dataex 印出资料。
2.        尔后建议请用 dataex ( ...
谢谢提醒!
数据资料如下:
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str13 comp_ctry float(rela_00 rela_01 rela_02 rela_03 rela_04 rela_05)
  4. "4401210001102" . 1 1 . . .
  5. "4401210001103" . 1 1 1 . .
  6. "4401210001106" . 1 1 . . .
  7. "4401210001107" 1 . 1 . . .
  8. "4401210001108" 1 . 1 1 . .
  9. "4401210001110" 1 1 1 1 1 .
  10. "4401210001111" 1 1 1 1 . .
  11. "4401210001112" 1 1 1 1 . .
  12. "4401210001115" 1 1 1 1 . .
  13. "4401210001116" 1 1 1 1 . .
  14. "4401210001117" 1 . . 1 . .
  15. "4401210001118" . 1 1 1 . .
  16. "4401210001120" 1 1 1 . . .
  17. "4401210001121" 1 1 1 1 . .
  18. "4401210001122" 1 1 1 1 . .
  19. "4401210001127" 1 1 1 1 . .
  20. "4401210001129" 1 1 1 1 . .
  21. "4401210001130" . . 1 1 . .
  22. "4401210001131" 1 1 1 1 . .
  23. "4401210001132" 1 1 1 1 1 .
  24. "4401210001133" 1 1 1 1 . .
  25. "4401210001134" 1 . 1 1 1 .
  26. "4401210001135" 1 . . . . .
  27. "4401210001136" 1 1 1 1 . .
  28. "4401210001137" 1 1 . 1 . .
  29. end
复制代码

使用道具

板凳
黃河泉 在职认证  发表于 2018-3-29 16:03:30 |只看作者 |坛友微信交流群
Yvonnehh3 发表于 2018-3-29 15:04
谢谢提醒!
数据资料如下:
看看这是不是你要的?
  1. egen f = rowtotal(rela_*)
复制代码

使用道具

报纸
Yvonnehh3 发表于 2018-3-29 16:34:26 |只看作者 |坛友微信交流群
黃河泉 发表于 2018-3-29 16:03
看看这是不是你要的?
谢谢您的热心回答!还没有到想要的效果,rowtotal只是加总了,我想要的是“标注每一行的每个1是第几个出现的”(如一楼的图片所示)。不过您的回答启发我用多次累加的方法,如下:
  1. egen f_00 = rowtotal(rela_00)
  2. egen f_01 = rowtotal(rela_00 rela_01)
  3. egen f_02 = rowtotal(rela_00 rela_01 rela_02)
  4. egen f_03 = rowtotal(rela_00 rela_01 rela_02 rela_03)
复制代码

这个效果出来后比较接近目标了,不过之后有些重复值需要删掉,不知您有何高见?

使用道具

地板
黃河泉 在职认证  发表于 2018-3-29 17:04:58 |只看作者 |坛友微信交流群
Yvonnehh3 发表于 2018-3-29 16:34
谢谢您的热心回答!还没有到想要的效果,rowtotal只是加总了,我想要的是“标注每一行的每个1是第几个出现 ...
试试
  1. ren rela_(##) rela_20(##)
  2. ren rela_* yr*
  3. reshape long yr, i(comp_ctry) j(year)
  4. bys comp_ctry (year): gen n = sum(yr)
  5. replace n = . if yr == .
  6. drop yr
  7. reshape wide n, i(comp_ctry) j(year)
  8. ren n20(##) rela_(##)
复制代码

使用道具

7
黃河泉 在职认证  发表于 2018-3-29 18:18:35 |只看作者 |坛友微信交流群
Yvonnehh3 发表于 2018-3-29 16:34
谢谢您的热心回答!还没有到想要的效果,rowtotal只是加总了,我想要的是“标注每一行的每个1是第几个出现 ...
Nick Cox 建议:
  1. gen work = 0
  2. quietly forval j = 0/5 {
  3.     replace work = work + (rela_0`j' == 1)
  4.     replace rela_0`j' = work if rela_0`j' == 1
  5. }
  6. drop work
复制代码

使用道具

8
Yvonnehh3 发表于 2018-3-30 14:26:27 |只看作者 |坛友微信交流群
黃河泉 发表于 2018-3-29 18:18
Nick Cox 建议:
要就是这个效果!太谢谢您了!简直大神!

使用道具

9
Yvonnehh3 发表于 2018-3-30 14:26:52 |只看作者 |坛友微信交流群
黃河泉 发表于 2018-3-29 17:04
试试
谢谢您!学到好多新command!

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-5 22:54