我遇到了以下问题。我有两个数据框(df1
,df2
)我想left_join(df1, df, by=c("a", "b", "c"))
使用三个变量a
,b
和c
。然后,我注意到,连接数据框中的行数增加了。因此,我检查了是否有任何重复的条目:
duplicated(paste(df1$a, df1$b, df1$c)
duplicated(paste(df2$a, df2$b, df2$c)
在两个数据帧中,我发现了几个重复的条目。现在我的问题是:在加入两个数据帧之前,如何排除这些重复项?我的问题是duplicated()
只标记重复的值(即第二个外观)。我也想排除第一个外观。我希望你明白这一点。
谢谢你的帮助!
答案 0 :(得分:0)
在没有示例的情况下难以提供具体的答案,但一种方法可能是为每个组合创建一个计数变量(重复时为> 1),然后过滤这些观察结果。
library(tidyverse)
x <- LETTERS[c(1,1:5)]
y <- LETTERS[c(1,1:5)]
df <- data.frame(x,y)
df <- df %>%
group_by(x,y) %>%
mutate(freq=n()) %>%
filter(!freq>1)