Inner_join()将行添加在一起,而不是唯一的行

时间:2019-05-01 23:57:14

标签: r dplyr inner-join

我担心我的R / Rstudio出了点问题。我正在尝试做一个inner_join(),以便从babynames包中获得男宝宝和女宝宝的名字的交集,但是我发现我的inner_join()大于我的男宝宝子集,其代码如下:

library(babynames)
library(dplyr)

malenames <- babynames %>%
  filter(sex=="M")
girlnames <- babynames %>%
  filter(sex=="F")

names <- inner_join(girlnames, malenames, by ="name")

为澄清起见,我看到男性姓名为786372行,女孩姓名为1138293行。可能出什么问题了?在此先感谢您的指导。

1 个答案:

答案 0 :(得分:2)

您需要同时输入名称和年份,否则girlnames中的每对(年份,名称)都将与行匹配,并且在malenames中具有匹配的名称:

names <- inner_join(girlnames, malenames, by = c("name", "year"))