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

在R语言中基于两列匹配结果添加新列(优先使用dplyr)

基于dplyr的解决方案

首先需要明确:Au列是数值类型,Au_ppb列是字符类型(包含">3"这类特殊格式值),直接比较会因类型不匹配出错,所以先将Au转为字符型再做匹配。

方法1:使用ifelse

library(dplyr)

df <- df %>%
  mutate(newcol = ifelse(as.character(Au) == Au_ppb, "EQUAL", "NOT EQUAL"))

方法2:使用case_when(逻辑更清晰,适合扩展多条件场景)

library(dplyr)

df <- df %>%
  mutate(newcol = case_when(
    as.character(Au) == Au_ppb ~ "EQUAL",
    TRUE ~ "NOT EQUAL"
  ))

运行结果

执行代码后得到的数据集如下:

# A tibble: 5 × 4
  Sample    Au Au_ppb newcol    
   <dbl> <dbl> <chr>  <chr>     
1   3000   0.2 0.2    EQUAL     
2   3001   0.2 >3     NOT EQUAL 
3   3002   0.2 0.2    EQUAL     
4   3003   0.2 0.2    EQUAL     
5   3004   0.3 1      NOT EQUAL

说明

通过as.character(Au)将数值型的Au转为字符型,和Au_ppb做字符串精确匹配,完全符合要求的判断逻辑:两列值一致时标记EQUAL,不一致时标记NOT EQUAL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 11:32:34