R语言中ifelse()函数else分支保留原AMT值的实现方法咨询
解决方案
1. 补全ifelse的else分支
直接在else位置填入原列名df_dose_DT$AMT即可,当AMT不等于-99时会保留原有值:
df_dose_DT$AMT <- ifelse(df_dose_DT$AMT==-99, doseIV2 * df_dose_DT$WTKG * df_dose_DT$DT, df_dose_DT$AMT)
2. 更符合data.table风格的写法
既然你用到了data.table包,推荐使用它的原地修改语法,只对符合条件的行赋值,代码更简洁高效:
df_dose_DT[AMT == -99, AMT := doseIV2 * WTKG * DT]
这种写法无需处理else分支,只会修改AMT == -99的行,其余行的AMT值自动保持不变。
内容的提问来源于stack exchange,提问作者yipper8
相关产品推荐
相关产品推荐

