You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stata生成虚拟变量问题:如何按规则设置experience_abroad变量

Stata生成experience_abroad虚拟变量的正确方法

你遇到的问题是误用了Stata不支持的三元运算符语法,导致逻辑未正确执行。以下是两种正确实现方式:

方法一:嵌套使用cond()函数

Stata仅支持cond(条件, 满足时取值, 不满足时取值)格式,不支持(条件 ? 值1 : 值2)这类其他语言的三元写法。正确的嵌套写法如下:

gen experience_abroad = cond(missing(country_birthplace), ., cond(country == "US" & country_birthplace == "US", 0, 1))

方法二:分步赋值(更易读)

如果觉得嵌套函数不够直观,可以分步生成和替换变量:

// 先初始化为缺失值
gen experience_abroad = .
// 满足双US的情况赋值0
replace experience_abroad = 0 if country == "US" & country_birthplace == "US"
// 非缺失且不满足双US的情况赋值1
replace experience_abroad = 1 if !missing(country_birthplace) & !(country == "US" & country_birthplace == "US")

两种方法都能严格实现你要求的规则:

  • 当country和country_birthplace均为"US"时取值0
  • country_birthplace非缺失的其他情况取值1
  • country_birthplace缺失时取缺失值(.)

内容的提问来源于stack exchange,提问作者Tabea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:12:12