left_join - 由于类型不兼容而无法加入

left_join - can't join because of incompatible types

访问光盘和 f06 =“48”。每个条目都是48,我仔细检查了一下。我不知道为什么它读作一个角色而另一个读作双重角色。

left_join(disc,f06, by=NULL, copy = TRUE, suffix = c(".x", ".y"), na_matches)
Joining, by = c("WIHSID", "VISIT", "ESTAT", "VERSION")

Error: Can't join on `x$VISIT` x `y$VISIT` because of incompatible types.
ℹ `x$VISIT` is of type <double>>.
ℹ `y$VISIT` is of type <character>>.
Run `rlang::last_error()` to see where the error occurred.

遗憾的是我不能告诉你为什么一个是性格而另一个不是。但我们应该能够通过将 x$VISIT 设为一个字符来解决这个问题:

library(dplyr)

disc %>% 
  mutate(VISIT = as.character(VISIT)) %>% 
  left_join(f06, by=NULL, copy = TRUE, suffix = c(".x", ".y"), na_matches)

让我知道这是否有效?!

我建议您用所需的列填写“by=”部分,因为这样可以更好地防止错误,因为您的数据最终可能会得到额外的列,因此自动检测可能会出错。此外,您还必须确定要真正加入所有这 4 列

disc %>% 
  mutate(VISIT = as.character(VISIT)) %>% 
  left_join(f06, by=c("WIHSID", "VISIT", "ESTAT", "VERSION"), copy = TRUE, suffix = c(".x", ".y"), na_matches)