楼主: SU==
3310 6

[数据管理求助] Stata中rangestat count if方面的问题想请教一下大家 [推广有奖]

  • 4关注
  • 0粉丝

硕士生

27%

还不是VIP/贵宾

-

威望
0
论坛币
607 个
通用积分
5.2038
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1142 点
帖子
55
精华
0
在线时间
202 小时
注册时间
2019-11-11
最后登录
2024-4-2

楼主
SU== 发表于 2020-10-21 02:06:18 |只看作者 |坛友微信交流群|倒序 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
  1. [CODE]
  2. * Example generated by -dataex-. To install: ssc install dataex
  3. clear
  4. input str4 year str2(month day) byte r
  5. "1981" "01" "01" 1
  6. "1981" "01" "02" 1
  7. "1981" "01" "03" 1
  8. "1981" "01" "04" 1
  9. "1981" "01" "05" 1
  10. "1981" "01" "06" 2
  11. "1981" "01" "07" 1
  12. "1981" "01" "08" 1
  13. "1981" "01" "09" 1
  14. "1981" "01" "10" 1
  15. end
复制代码

[/code]

想请教一下大家,我想(1)计算1981~2019年每年r=1、r=2、…r=5的频次分别是多少;(2)计算每个月份(1~12月)r=1、r=2、…r=5的所有年份的总频次分别是多少。

count if是肯定不行,if好像只能跟一个条件。看了很多帖子,说用rangestat,但是(count) r 后面不能限制条件,比如“if r==1”这样的。

后面我又尝试了方法二:生成新变量rd1、rd2...rd5,意为“r=1时rd1=1,否则rd1=.”。想尝试在年份范围内count解决问题,但是不知道怎么回事老是报错。请教一下大家,是不是要写个循环?感觉问题很简单,但就是解决不掉。
  1. gen rd1=1 if r==1
  2. gen rd2=1 if r==2
  3. gen rd3=1 if r==3
  4. gen rd4=1 if r==4
  5. gen rd5=1 if r==5
复制代码
  1. destring year, replace
  2. destring month, replace

  3. . count rd1 if month==1
  4. varlist not allowed
  5. r(101);

  6. . count rd1 if year==1981
  7. varlist not allowed
  8. r(101);
复制代码





二维码

扫码加我 拉你入群

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

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

关键词:Stata Count range estat tata

沙发
SU== 发表于 2020-10-21 02:08:54 |只看作者 |坛友微信交流群
后面我又尝试了方法二:生成新变量rd1、rd2...rd5,意为“r=1时rd1=1,否则rd1=.”。想尝试在年份范围内count解决问题,但是不知道怎么回事老是报错。请教一下大家,是不是要写个循环?感觉问题很简单,但就是解决不掉。

使用道具

藤椅
黃河泉 在职认证  发表于 2020-10-21 10:10:04 |只看作者 |坛友微信交流群
请据以更改:
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str4 year str2(month day) byte r
  4. "1981" "01" "01" 1
  5. "1981" "01" "02" 1
  6. "1981" "01" "03" 1
  7. "1981" "01" "04" 1
  8. "1981" "01" "05" 1
  9. "1981" "01" "06" 2
  10. "1981" "01" "07" 1
  11. "1981" "01" "08" 1
  12. "1981" "01" "09" 3
  13. "1981" "01" "10" 3
  14. end

  15. forvalues i=1(1)5 {
  16.   bys year: egen r`i'=total(r==`i')
  17. }
复制代码

使用道具

板凳
SU== 发表于 2020-10-21 13:01:45 |只看作者 |坛友微信交流群
黃河泉 发表于 2020-10-21 10:10
请据以更改:
感谢您的回复和建议,非常好用!谢谢!

使用道具

报纸
SU== 发表于 2020-10-21 13:04:49 |只看作者 |坛友微信交流群
根据老师的建议和个人情况,按年和按月分别如下,希望帮到一些人
  1. forvalues i=1(1)5 {
  2.   bys year: egen rdy`i'=total(r==`i')
  3. }
  4. forvalues i=1(1)5 {
  5.   bys month: egen rdm`i'=total(r==`i')
  6. }
复制代码

使用道具

地板
DΘstinyじò 发表于 2020-10-21 13:31:03 |只看作者 |坛友微信交流群
只是想统计的话可以尝试以下代码:
(注意原始数据的保存)
  1. //按月
  2. destring day,replace
  3. collapse (count) r_count=day,by(month r)
  4. ///////////////////////////////////////////////////
  5. //按年
  6. destring day,replace
  7. collapse (count) r_count=day,by(year r)
复制代码

使用道具

7
SU== 发表于 2020-10-21 16:36:53 来自手机 |只看作者 |坛友微信交流群
DΘstinyじò 发表于 2020-10-21 13:31
只是想统计的话可以尝试以下代码:
(注意原始数据的保存)
嗯!它做到了!!
谢谢,很有帮助,学到新命令了:)

使用道具

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

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

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

GMT+8, 2024-4-19 18:22