如何在R中使用dplyr合并列类型不兼容的数据框?
解决dplyr inner_join列类型不兼容报错的方案
当两个数据框用于连接的列类型不匹配(比如一个为字符型、一个为整数型),无需修改原数据即可完成inner_join,以下是两种实用方法:
直接在
by参数中临时转换类型
无需改动原数据框,在连接时指定其中一列临时转换类型即可。假设x的MAK_MOD是字符型,y的MAK_MOD是整数型,写法如下:inner_join(x, y, by = c("MAK_MOD" = ~ as.character(MAK_MOD)))若
x的列是整数型,y的是字符型,则调整为:inner_join(x, y, by = c(~ as.character(MAK_MOD), "MAK_MOD"))使用
join_by()语法灵活处理转换
新版dplyr提供的join_by()支持更直观的条件写法,同样通过临时转换类型实现连接,不会修改原数据:inner_join(x, y, join_by(as.character(MAK_MOD) == MAK_MOD))根据实际类型对应关系调整转换的列即可,比如需要转换
x的列就写join_by(MAK_MOD == as.character(MAK_MOD))。
内容的提问来源于stack exchange,提问作者Marcus Nartey
相关产品推荐
相关产品推荐

