楼主: peyzf
6814 5

[数据管理求助] 如何批量实现如下数据填充? [推广有奖]

  • 1关注
  • 63粉丝

警督

大师

59%

还不是VIP/贵宾

-

威望
2
论坛币
566735 个
通用积分
200.4746
学术水平
218 点
热心指数
240 点
信用等级
140 点
经验
132065 点
帖子
12769
精华
0
在线时间
2976 小时
注册时间
2007-9-8
最后登录
2025-10-10

楼主
peyzf 发表于 2016-2-15 17:05:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
原始数据为
idyeartreat

1

1995

1

1996

1

1997

1

1998

1

1999

1

2000

3

1

2001

1

2002

1

2003

2

1995

2

1996

2

1997

2

1998

2

1999

2

2000

2

2

2001

2

2002

2

2003



我想将第三列填充为

idyeartreat

1

1995

-2

1

1996

-1

1

1997

0

1

1998

1

1

1999

2

1

2000

3

1

2001

4

1

2002

5

1

2003

6

2

1995

-3

2

1996

-2

2

1997

-1

2

1998

0

2

1999

1

2

2000

2

2

2001

3

2

2002

4

2

2003

5



如何系统地填充?
二维码

扫码加我 拉你入群

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

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

关键词:treat year 原始数据 ART ear 如何

沙发
statax 发表于 2016-2-15 20:40:39
drop treat
bysort id: gen treat=year-1997
replace treat=treat-id+1





藤椅
peyzf 发表于 2016-2-16 17:16:09
感谢楼上的朋友,假如我不知道treat变量中2,3的位置,或者说其取值可能是7,8,我想在id=i的样本中,以未缺失的值,向两端填充~

板凳
peyzf 发表于 2016-2-16 17:18:26
楼上朋友给的是一种特例解法~

报纸
statax 发表于 2016-2-16 19:45:04
peyzf 发表于 2016-2-16 17:16
感谢楼上的朋友,假如我不知道treat变量中2,3的位置,或者说其取值可能是7,8,我想在id=i的样本中,以未缺 ...
如果是这种情况,感觉不太可能用几句简单的命令得到,因为没有固定的模式,可以试着编一个程序,根据id的编号来循环,每一个循环里面,找出你说的可能是7或8,与之相对应的year(往两端填是一个等差数列,与year相差一个常数),然后用命令gen treat_i=year-XXXX if 条件  来生成treat_i,最后把treat_i汇总起来吧。
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
hustchen2012 + 10 + 10 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 10  论坛币 + 10  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

地板
peyzf 发表于 2016-2-17 20:19:50
感谢楼上的朋友~

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

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