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

R语言中如何判断两列字符值是否相等并生成永久新列?

问题修正方案

错误原因

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

  • 用单引号包裹列名'start_id'和'end_id',导致实际比较的是字符串字面量"start_id"和"end_id",而非数据框中对应列的内容。
  • 误用if_else函数:该函数仅需三个参数(判断条件、真值、假值),你传入了四个参数,且逻辑冗余。

修正代码

最简写法(推荐)

因为start_id == end_id本身就会返回布尔值(相等为TRUE,不等为FALSE),直接赋值即可:

df_new <- df %>% 
  mutate(new_column = start_id == end_id)

用if_else的正确写法

如果坚持用if_else,只需传入正确的三个参数:

df_new <- df %>% 
  mutate(new_column = if_else(start_id == end_id, TRUE, FALSE))

验证说明

运行修正后的代码后,new_column会正确根据start_id和end_id的实际值生成布尔结果,不会再全部返回TRUE。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:30:51