楼主: 蓝精灵lsf
890 7

[统计软件与数据分析] if命令求助 [推广有奖]

  • 1关注
  • 0粉丝

本科生

61%

还不是VIP/贵宾

-

威望
0
论坛币
2947 个
通用积分
0.1145
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
585 点
帖子
38
精华
0
在线时间
144 小时
注册时间
2022-1-21
最后登录
2024-6-29

楼主
蓝精灵lsf 学生认证  发表于 2023-12-14 11:22:03 |AI写论文
2论坛币
请各位stata的老师帮忙看一下,如何实现下面的需求,谢谢了。
如果时间year在2013年的时候,对应的变量time等于1,则将year<=2013年的时候,变量policy =year -2013

关键词:Stata year 如何实现 tata time stata 命令

沙发
2229990 发表于 2023-12-14 11:43:16
if time == 1 & year <= 2013 {
    replace policy = year - 2013
}

藤椅
蓝精灵lsf 学生认证  发表于 2023-12-14 14:29:05
2229990 发表于 2023-12-14 11:43
if time == 1 & year
您好,我运行了以后,变量值没有任何变化

板凳
sldsb 发表于 2023-12-14 16:12:14
gen policy = .replace policy = year - 2013 if time == 1 & year <= 2013

报纸
newfei188 发表于 2023-12-15 04:41:17 来自手机

地板
newfei188 发表于 2023-12-15 20:43:21 来自手机

7
wrong3724 发表于 2023-12-16 20:24:16
题主应该是想先把13年时time=1的个体先筛选出来?我假设你代表个体的变量是id:
gen t1 = ( time == 1 & year == 2013 )
bys id: gen want = sum(t1)
gen policy = year - 2013 if ( want == 1 & year <= 2013)
drop t1 want

8
simplifies 发表于 2023-12-24 13:53:13 来自手机
gen time = 0
gen policy = .

foreach year in 2013/. {
    if `year\' == 2013 {
        gen time = 1
    } else {
        gen policy = `year\' - 2013
    }
}

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

本版微信群
扫码
拉您进交流群
GMT+8, 2026-2-16 06:46