R语言中如何基于共有Area字段合并多个tibble数据表
错误原因
- 基础R的
merge()函数单次仅支持合并2个数据对象,且你写的by "Area"缺少等号赋值,属于语法错误 - dplyr包的
full_join()函数单次同样仅支持两个表的关联操作,不能直接传入3个表作为参数
修正方案
方案1:逐次关联(易理解)
用dplyr的管道操作逐次拼接三个表,全连接会保留所有非关联列、以及所有表中出现过的Area对应的行:
library(dplyr) Testertable <- A %>% full_join(B, by = "Area") %>% full_join(C, by = "Area")
如果只需要保留三个表共有的Area对应的行,把full_join替换为inner_join即可。
方案2:批量关联(适合表数量多的场景)
借助purrr的reduce()函数批量完成多表合并:
library(dplyr) library(purrr) Testertable <- list(A, B, C) %>% reduce(full_join, by = "Area")
内容的提问来源于stack exchange,提问作者JeffWithpetersen
相关产品推荐
相关产品推荐

