dplyr::left_join() 在新列和/或重复列上生成缺失值

问题描述 投票:0回答:1

我正在使用

dplyr
left_join()
函数合并两个数据框对象,但它会在新创建的列中生成
NA
。有时它确实会生成具有实际值的合并数据,但合并的列会重复,除非我使用
merge
而不指定
type
参数。 我已经引用了 thisthis 线程,但我确信我的比赛 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
r dplyr merge left-join
1个回答
0
投票

您随时可以点击数据并进行检查。

它们是微小的数据框,因此不难看出两个数据集上的

"REPORTER"
列和
"PARTNER"
列没有常见的组合。结果中的前两列基本上是整个
country_dyad
PARTNER
trade
列中的值是除
"afg"
之外的所有值。

© www.soinside.com 2019 - 2024. All rights reserved.