【发布时间】:2019-02-07 09:04:21
【问题描述】:
我想通过列名绑定两个 df 的行,如果第二个 df 中不存在列,首先应该有 NA。不幸的是dplyr::bind_rows 有重复列名的问题。你能帮我解决这个问题吗?
到目前为止我做了什么?
首先是一些可重现的数据:
df1 <- data.frame(replicate(6,sample(0:1,10,rep=TRUE)))
df2 <- data.frame(replicate(3,sample(0:1,10,rep=TRUE)))
colnames(df1) <- c('A','A','A','B','C','E')
colnames(df2) <- c('A','B','C')
df1
A A A B C E
1 0 1 0 1 1 1
2 1 1 1 0 0 0
3 0 0 1 1 0 1
4 0 0 1 0 1 1
5 0 1 0 1 1 0
6 1 0 1 1 1 1
7 0 0 1 1 1 0
8 0 1 0 1 1 0
9 0 1 0 0 1 0
10 1 1 0 1 1 0
df2
A B C
1 1 1 0
2 0 1 1
3 1 1 0
4 1 0 0
5 0 0 1
6 0 0 1
7 0 1 1
8 0 0 0
9 0 0 1
10 0 1 1
我想要什么?
A A A B C E
1 0 1 0 1 1 1
2 1 1 1 0 0 0
3 0 0 1 1 0 1
4 0 0 1 0 1 1
5 0 1 0 1 1 0
6 1 0 1 1 1 1
7 0 0 1 1 1 0
8 0 1 0 1 1 0
9 0 1 0 0 1 0
10 1 1 0 1 1 0
11 1 1 1 1 0 NA
12 0 0 0 1 1 NA
13 1 1 1 1 0 NA
14 1 1 1 0 0 NA
15 0 0 0 0 1 NA
16 0 0 0 0 1 NA
17 0 0 0 1 1 NA
18 0 0 0 0 0 NA
19 0 0 0 0 1 NA
20 0 0 0 1 1 NA
我决定从dplyr 使用bind_rows,但是:
result <- bind_rows(mutate_all(df1, as.character), mutate_all(df2, as.character))
Error: Columns `A`, `A` must have unique names
Call `rlang::last_error()` to see a backtrace
提前感谢您的帮助!
【问题讨论】: