楼主: 阅兵蓝2015
14440 11

[数据管理求助] 请高手指点 如何对变量赋值 [推广有奖]

  • 0关注
  • 0粉丝

高中生

92%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.0002
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1918 点
帖子
33
精华
0
在线时间
28 小时
注册时间
2015-9-14
最后登录
2016-6-7

楼主
阅兵蓝2015 发表于 2016-4-23 11:09:37 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
想要产生一个新的变量max,只要在相同的年份内,numb变量的取值曾经为1,就令max为1,否则为0stata如何实现?

请高手指点 QQ截图20160423110521.jpg
二维码

扫码加我 拉你入群

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

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

关键词:高手指点 Stata 如何实现 tata max 如何

沙发
皖山一流 学生认证  发表于 2016-4-23 12:23:48
没明白,,
按照你的意思,max和number不就是一样的了吗?
gen max=number

藤椅
韩飞009 发表于 2016-4-23 14:22:44 来自手机
可以,只是我不会

板凳
dqlcsm 发表于 2016-4-23 15:09:39
egen x1=tag(year number)
sort x1
by year:egen tol=total(x1)
gen id=1
replace id=0 if number==0&tol==1

报纸
SpencerMeng 在职认证  发表于 2016-4-23 16:58:59
韩飞009 发表于 2016-4-23 14:22
可以,只是我不会
只要在相同的年份内,numb变量的取值曾经为1,就令max为1,否则为0

楼主,这句话有歧义,比如1999年,number有一个取值为1,那么max对应的5个值都是1还是仅仅number在1999年取值为1 的那一行对应的max赋值为1呢?

地板
阅兵蓝2015 发表于 2016-4-24 09:02:57
SpencerMeng 发表于 2016-4-23 16:58
只要在相同的年份内,numb变量的取值曾经为1,就令max为1,否则为0

楼主,这句话有歧义,比如1999年, ...
我的意思是  1999年对应的所有max 取值都为1

7
阅兵蓝2015 发表于 2016-4-24 09:27:28
dqlcsm 发表于 2016-4-23 15:09
egen x1=tag(year number)
sort x1
by year:egen tol=total(x1)
谢谢回复
egen x1=tag(year number)的含义是什么?
用help查了一下tag的用法,没有看明白

8
dqlcsm 发表于 2016-4-24 10:00:48
阅兵蓝2015 发表于 2016-4-24 09:27
谢谢回复
egen x1=tag(year number)的含义是什么?
用help查了一下tag的用法,没有看明白
标记tag()里面的变量第一次出现的时候为1,第二次或者以上为0

9
SpencerMeng 在职认证  发表于 2016-4-24 11:31:05
阅兵蓝2015 发表于 2016-4-24 09:02
我的意思是  1999年对应的所有max 取值都为1
好的  我懂您的意思了

用bysort这一个命名就够了
  1. clear
  2. inp year number
  3. 1999 0
  4. 1999 1
  5. 1999 0
  6. 1999 0
  7. 1999 0
  8. 2000 1
  9. 2000 0
  10. 2000 0
  11. 2000 0
  12. 2001 0
  13. 2001 0
  14. 2001 0
  15. end

  16. bysort year: egen max=max(number)
复制代码

10
阅兵蓝2015 发表于 2016-4-24 21:20:39
谢谢回复

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

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