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

Stata转R代码结果不一致,求问题排查与修正方案

问题原因分析

Stata和R对缺失值的判断逻辑写法完全相反,你把条件搞反了:

  • Stata里的var<.表示变量var不是缺失值(因为Stata用.代表缺失,且缺失值是数值型里的最大值,所以小于.就是非缺失状态)
  • 你写的R代码里is.na(var)是判断变量var是缺失值,正好和Stata的条件逻辑相反,这才导致本该计算出-9的情况被判定为不符合条件,返回了NA。
修改后的R代码
data <- data %>%
  mutate(tau = if_else((temp2 > temp3) & 
                         (!is.na(bod) | !is.na(do) | !is.na(lnfcoli)), 
                       year - temp2,
                       NA_integer_))
逻辑对应验证

修改后的条件(!is.na(bod) | !is.na(do) | !is.na(lnfcoli))完全匹配Stata的(bod<. | do<. | lnfcoli<.),意思是:当temp2 > temp3,且bod、do、lnfcoli至少有一个不是缺失值时,计算year - temp2赋值给tau,否则赋值为NA。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:18:07