R语言条件语句实现:仅当AB与MN均为有效值时保留XY有效值
解决XY列的条件设置问题
你的现有代码已经通过将无效的AB、MN值设为NA完成了前置处理,所以针对XY列的逻辑可以直接基于AB和MN是否为有效值(即非NA)来判断:
只需要在现有代码后添加以下适配data.table语法的逻辑:
# 先检查XY列是否存在于数据集中,避免列不存在时报错 if ("XY" %in% colnames(x)) { # 当AB或MN任意一个为NA(即无效)时,将XY设为NA x[is.na(AB) | is.na(MN), XY := NA] }
逻辑说明
- 先判断数据集是否包含XY列,避免因列不存在触发报错
- 利用
is.na()检查AB和MN的有效性:你之前的代码已经把所有不符合规则的AB、MN转为NA,因此非NA就代表该列是有效值 - 只要AB或MN其中一个无效(为NA),就将对应行的XY设为NA;反之(AB和MN都非NA),XY保留原有值
内容的提问来源于stack exchange,提问作者Alexia k Boston
相关产品推荐
相关产品推荐

