如何使用bind_rows()并忽略列名

时间:2018-05-16 01:52:34

标签: r binding dplyr

这个问题可能以前得到了解答,但我似乎无法找到答案。如何使用bind_rows()union这两个表并忽略列名 bind_rows()上的文档包含以下示例:

#Columns don't need to match when row-binding
bind_rows(data.frame(x = 1:3), data.frame(y = 1:4))

这将返回列xy。如何在不更改列名的情况下返回单个列? 期望的输出,我真的不在乎列名最终是什么:

  x
1 1
2 2
3 3
4 1
5 2
6 3
7 4

2 个答案:

答案 0 :(得分:3)

您可以使用快速的2行功能执行此操作:

force_bind = function(df1, df2) {
    colnames(df2) = colnames(df1)
    bind_rows(df1, df2)
}
force_bind(df1, df2)

输出:

  x
1 1
2 2
3 3
4 1
5 2
6 3
7 4

答案 1 :(得分:1)

我认为我们仍然需要更改名称

bind_rows(data.frame(x = 1:3), setNames(rev(data.frame(y = 1:4)), names(data.frame(x = 1:3))))
  x
1 1
2 2
3 3
4 1
5 2
6 3
7 4