访问光盘和 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.
答案 0 :(得分:1)
不幸的是我不能告诉你为什么一个是性格而另一个不是。但我们应该能够通过将 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)