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

R语言如何实现允许±1年误差的两个年龄变量比对校验

R实现带±1年容差的年龄字段一致性校验

校验规则说明

涉及两个年龄字段:

  • age:调研机构提供的基准数据集年龄字段
  • agesurvey:自主调研问卷采集的年龄字段
    两个字段差值在±1年范围内属于合理偏差,判定为数据一致;差值绝对值大于1判定为数据异常。

代码调整思路

你原有代码的判断条件age == agesurvey仅能识别完全相等的记录,替换为计算两个字段差值的绝对值、判断绝对值是否≤1即可覆盖所有合规场景。

可运行代码

library(dplyr)

# 构造示例测试数据
df <- data.frame(
  age = c(18, 50, 41, 79),
  agesurvey = c(19, 50, 40, 79)
)

# 执行一致性校验
check <- df %>% 
  mutate(
    Agree = ifelse(abs(age - agesurvey) <= 1, "Correct", "Incorrect")
  )

# 输出校验结果统计
table(check$Agree)

结果说明

针对给出的4条测试数据:

  • 18 vs 19:差值为1,判定为Correct
  • 50 vs 50:差值为0,判定为Correct
  • 41 vs 40:差值为-1,判定为Correct
  • 79 vs 79:差值为0,判定为Correct
    最终统计结果Correct计数为4,符合业务预期。

可选扩展:如果数据中存在年龄缺失值,可按需补充缺失值逻辑,比如单独给缺失值标记为"Missing",避免被误判为Incorrect:

check <- df %>% 
  mutate(
    Agree = case_when(
      is.na(age) | is.na(agesurvey) ~ "Missing",
      abs(age - agesurvey) <= 1 ~ "Correct",
      TRUE ~ "Incorrect"
    )
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:36:20