我正在使用
dplyr
的 left_join()
函数合并两个数据框对象,但它会在新创建的列中生成 NA
。有时它确实会生成具有实际值的合并数据,但合并的列会重复,除非我使用 merge
而不指定 type
参数。
我已经引用了 this 和 this 线程,但我确信我的比赛 id 变量属于相同的字符类,并且全部为大写字母。我想知道出了什么问题。
以下是我的数据源和代码示例:
# data
country_dyad <- readRDS(url("https://www.dropbox.com/scl/fi/q0ivr9d3lgjpdlxq88a4u/country_dyad.rds?rlkey=vc4i6j7bgbd3xaftkdk4yqhny&dl=1"))
trade <- readRDS(url("https://www.dropbox.com/scl/fi/wxism5ytikswdhyy27rle/trade.rds?rlkey=aonsyj1q2uied1t8y9necsuk0&dl=1"))
merge <- left_join(country_dyad, trade, by = c("REPORTER", "PARTNER"))
merge
REPORTER PARTNER Chapter_ID Chapter_sum
1 afg afg NA NA
2 alb afg NA NA
3 ago afg NA NA
4 atg afg NA NA
5 arg afg NA NA
6 arm afg NA NA
7 aus afg NA NA
8 aut afg NA NA
9 bhr afg NA NA
10 bgd afg NA NA
# left_join(country_dyad, trade, by = c("REPORTER", "PARTNER"))
# This will produce duplicated columns
您随时可以点击数据并进行检查。
它们是微小的数据框,因此不难看出两个数据集上的
"REPORTER"
列和 "PARTNER"
列没有常见的组合。结果中的前两列基本上是整个 country_dyad
。 PARTNER
的 trade
列中的值是除 "afg"
之外的所有值。