楼主: fine9527
3730 7

[数据管理求助] 悬赏50:如何将数据自动加1 [推广有奖]

  • 5关注
  • 0粉丝

本科生

84%

还不是VIP/贵宾

-

威望
0
论坛币
1827 个
通用积分
1.2505
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
4460 点
帖子
41
精华
0
在线时间
186 小时
注册时间
2015-6-8
最后登录
2025-4-8

楼主
fine9527 发表于 2019-11-30 19:56:19 |AI写论文
50论坛币
比如以下数据:
id  year   age
1   2016  30
1   2017  30
1   2018  30
2   2016  26
2   2017  26
2   2018  26
3   2016  45
3   2017  45
3   2018  45

以上数据在搜集过程中年龄age出现问题,年龄应该是每年加1岁才对。。现在怎么能把2017和2018年的年龄变成正常,比如id=1的2017年的年龄变成31,2018变成32.。因为数据上万个,手工太费时间,请高手能给说个命令,希望问题表达清楚了。。

最佳答案

塞纳留斯的梦境 查看完整内容

gen newage=age+year-2016
关键词:year Age ear

回帖推荐

我的书籍0616 发表于3楼  查看完整内容

Gen newvarible=age+1

沙发
塞纳留斯的梦境 发表于 2019-11-30 19:56:20
gen newage=age+year-2016
已有 1 人评分热心指数 收起 理由
小丁丁tu + 1 精彩帖子

总评分: 热心指数 + 1   查看全部评分

藤椅
我的书籍0616 发表于 2019-11-30 23:39:25 来自手机
fine9527 发表于 2019-11-30 19:56
比如以下数据:
id  year   age
1   2016  30
Gen newvarible=age+1

板凳
我的书籍0616 发表于 2019-11-30 23:40:04 来自手机
fine9527 发表于 2019-11-30 19:56
比如以下数据:
id  year   age
1   2016  30
Gen首字母小写

报纸
fine9527 发表于 2019-12-1 08:58:32
我的书籍0616 发表于 2019-11-30 23:39
Gen newvarible=age+1
您的答案虽然没有解决我的问题,还是深表感谢。。根据您的命令,三年的年龄还是一个数字。。

地板
fine9527 发表于 2019-12-1 08:59:05
塞纳留斯的梦境 发表于 2019-11-30 19:56
gen newage=age+year-2016
这个方法太聪明了,真是受教。。。非常感谢您解决了我的问题。

7
小丁丁tu 学生认证  发表于 2019-12-1 11:00:02
如果原始数据在excel中 且为平衡面板数据集,那么就直接在excel中修改age的值更为简便。
如果想在stata中修改,那就使用if语句
如果year==2017 那么age1=age+1
如果year==2018 那么age1=age+2

楼上的方法是最简单最简便的,很巧妙,我也眼前一亮

8
fine9527 发表于 2019-12-1 12:07:17
小丁丁tu 发表于 2019-12-1 11:00
如果原始数据在excel中 且为平衡面板数据集,那么就直接在excel中修改age的值更为简便。
如果想在stata中修 ...
对,确实很巧妙。。可以举一反三,只要有个合理的参照,想加几都可以。。

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

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