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

R语言merge合并数据框新增列全为NA问题及解决

数据框合并后df2数据全为NA?问题出在字段大小写不匹配

你用merge(df1, df2, by="scientific_name", all=T)合并后df2数据全变NA,核心原因是两个数据框的scientific_name字段大小写不匹配:df1里的学名全是小写,df2里的学名首字母大写,而R的merge函数是严格区分字符串大小写的,所以没有找到任何匹配项,最终df2的列只能填充NA。

解决步骤:

  • 先统一两个字段的大小写,比如全部转成小写:
# 统一为小写
df1$scientific_name <- tolower(df1$scientific_name)
df2$scientific_name <- tolower(df2$scientific_name)

或者全部转成大写:

# 统一为大写
df1$scientific_name <- toupper(df1$scientific_name)
df2$scientific_name <- toupper(df2$scientific_name)
  • 再执行合并操作:
combined <- merge(df1, df2, by="scientific_name", all=TRUE)

这样处理后,两个数据框会基于统一大小写后的学名正确合并:如果有匹配的学名,对应行的字段会关联;如果没有交集,两边的所有行都会保留,各自缺失的字段用NA填充,但df2的原始数据不会再全部变成NA。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 16:23:23