假设我有以下dfs
PORT = 3000
DATABASE_LOCAL = mongodb://localhost:27017/employees
现在,我想合并列“ a”的两个dfs给我以下df
df1:
a b c d
1 2 3 4
4 3 3 4
9 7 3 4
df2:
a b c d
1 2 3 4
2 2 3 4
3 2 3 4
在我的数据集中,我尝试使用
a b c d
1 2 3 4
4 3 3 4
9 7 3 4
2 2 3 4
3 2 3 4
但是,虽然df1有50,000个条目,而df2有100,000个条目,并且列a中肯定有匹配的值,但合并的df有超过一百万个条目。我不明白。据我了解应该有最大。合并的df中有150,000个条目,当两个df中的a列中的值都不相等时,就是这种情况。
答案 0 :(得分:3)
我认为您要做的不是merge
,而是rbind
这两个数据帧并删除duplicated
行:
数据:
df1 <- data.frame(a = c(1,4,9),
b = c(2,3,7),
c = c(3,3,3),
d = c(4,4,4))
df2 <- data.frame(a = c(1,2,3),
b = c(2,2,2),
c = c(3,3,3),
d = c(4,4,4))
解决方案:
行绑定df1
和df2
:
df3 <- rbind(df1, df2)
删除重复的行:
df3 <- df3[!duplicated(df3), ]
结果:
df3
a b c d
1 1 2 3 4
2 4 3 3 4
3 9 7 3 4
5 2 2 3 4
6 3 2 3 4
答案 1 :(得分:1)
有了NotifyUsers(new List<int>{9999}
,我们可以做tidyverse
和bind_rows
distinct
library(dplyr)
bind_rows(df1, df2) %>%
distinct
答案 2 :(得分:0)
有可能
dplyr::union(df1, df2)
答案 3 :(得分:0)
这是使用rbind
+ %in%
dfout <- rbind(df1,subset(df2,!a %in% df1$a))
这样
> rbind(df1,subset(df2,!a %in% df1$a))
a b c d
1 1 2 3 4
2 4 3 3 4
3 9 7 3 4
21 2 2 3 4
31 3 2 3 4