r数据处理

R 报错:Join columns must be present in data(连接键不存在)

left_join() / inner_join() 指定的 by 列在其中一张表里不存在。高频:两张表键名不一样(id vs ID)、键名带空格、或者前面某步把列改掉了。

报错原文

Error: Join columns must be present in data. x `id` and y `id` must be present.

为什么会报这个错

left_join() / inner_join() 指定的 by 列在其中一张表里不存在。高频:两张表键名不一样(id vs ID)、键名带空格、或者前面某步把列改掉了。

怎么解决

names(x) 和 names(y) 对照;键名不同就用 by = c("id" = "ID") 显式映射;确实没有就补一个。

代码示例

names(x); names(y)

# 键名不同
left_join(x, y, by = c("id" = "ID"))

# 多列键
left_join(x, y, by = c("id", "year"))

# 键类型也要一致
x$id <- as.character(x$id)

同工具的其他报错

报错解决了,但方法还没搞懂?

报错只是表象。因果推断、面板数据、稳健性检验这些方法背后的逻辑,知识库里按「原理 × 直觉 × 代码」讲清楚了。

进入知识库 →