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

如何修正Stata代码,按指定双条件生成新变量?

修正后的Stata代码及说明

原代码存在两处问题:

  • Stata中逻辑与运算符为&(标量场景可用&&),而非英文单词and
  • 连续用多个if直接赋值的语法不符合Stata规范,会引发逻辑错误

以下是两种可行的修正方案:

方案1:分步生成与替换

逻辑清晰,便于理解和调试:

// 先将变量初始化为缺失值
gen treatmentBreakdown = .
// 满足第一个条件时赋值为1
replace treatmentBreakdown = 1 if treatment == 1 & category_assetprovision == "Accepted"
// 满足第二个条件时赋值为0
replace treatmentBreakdown = 0 if treatment == 0 & category_assetprovision == "Refused"

方案2:使用cond()函数一步生成

适合追求代码简洁的场景,通过嵌套条件判断完成赋值:

gen treatmentBreakdown = cond(
    treatment == 1 & category_assetprovision == "Accepted", 
    1, 
    cond(
        treatment == 0 & category_assetprovision == "Refused", 
        0, 
        .  // 不符合两个条件的观测值设为缺失,可按需修改
    )
)

两种方案都会让不满足指定两个条件的观测值保持缺失(.),如果需要给其他情况设置特定值,可自行调整对应位置的赋值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 00:42:06