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

如何在R语言中验证两列之和是否等于第三列?

解决方法:验证casual+registered是否等于cnt

错误原因分析

你的代码存在三个关键问题:

  • mutate()中不需要重复传入数据集名称dcbikeshare,管道符%>%已经自动将左侧数据集传递给mutate()
  • 相等判断需要用双等号==,单等号=是赋值操作,这是第一个报错的直接原因
  • if_else()的返回值如果是逻辑值,不需要加引号,加引号会变成字符向量,不符合if_else()对返回值类型的要求(第二个报错的原因)

修正后的if_else()代码

dcbikeshare <- dcbikeshare %>%
  mutate(check_sum = if_else(casual + registered == cnt, TRUE, FALSE))

甚至可以更简洁——因为逻辑判断本身就会返回TRUE/FALSE,无需嵌套if_else():

dcbikeshare <- dcbikeshare %>%
  mutate(check_sum = (casual + registered == cnt))

其他验证方法

  • 快速检查所有行是否符合条件
    如果不需要生成新列,只是想验证整体是否符合预期,直接用all():
all(dcbikeshare$casual + dcbikeshare$registered == dcbikeshare$cnt)

返回TRUE表示所有行都满足,FALSE则存在不匹配的行。

  • 定位不匹配的具体行
    如果想找出哪些行不符合条件,用筛选语句:
dcbikeshare %>%
  filter(casual + registered != cnt)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:24:22