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

R语言匹配另一数据集为主数据集新增success标识列的实现方法

问题原因

原有代码的逻辑错误点:==运算符实现的是两个向量按对应位置逐一比对,当两个向量长度不一致时,R会自动循环重复较短的向量匹配长向量,完全不满足「判断某个值是否存在于另一列所有值中」的需求。

修正代码

直接使用R的存在性匹配运算符%in%实现需求,逻辑值转整数即可直接得到1/0的结果:

data_a$success <- as.integer(data_a$name %in% data_b$name_b)

%in%会逐个判断左侧向量的每个值是否存在于右侧向量中,返回对应位置的布尔值TRUE/FALSE,用as.integer()转换后会自动对应为1/0,完全匹配你的规则要求。

结果验证

运行上述代码后打印data_a即可得到预期输出:

name success
1    A       1
2    B       1
3    c       1
4    D       0
5    E       0
6    A       1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:42:01