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

jmi*_*738 3 binding r 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))
Run Code Online (Sandbox Code Playgroud)

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

  x
1 1
2 2
3 3
4 1
5 2
6 3
7 4
Run Code Online (Sandbox Code Playgroud)

Mar*_*ius 8

您可以使用快速的 2 行函数执行此操作:

force_bind = function(df1, df2) {
    colnames(df2) = colnames(df1)
    bind_rows(df1, df2)
}
force_bind(df1, df2)
Run Code Online (Sandbox Code Playgroud)

输出:

  x
1 1
2 2
3 3
4 1
5 2
6 3
7 4
Run Code Online (Sandbox Code Playgroud)


WeN*_*Ben 0

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

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
Run Code Online (Sandbox Code Playgroud)