Julia 相当于 dplyr 的 bind_cols 和 bind_rows

bra*_*ayl 6 r julia dplyr

Julia 是否有相当于 dplyr 的 bind_cols 和 bind_rows 的功能?具体来说,我正在寻找一个 bind_rows 函数,它将匹配列名称,无论顺序如何,并为不匹配的列填写 NA

编辑:R 两者的示例:

library(dplyr)
df1 = data.frame(a = 1, b = 1)
df2 = data.frame(b = 1, c = 1)
df3 = data.frame(c = 1, d = 1)

bind_rows(df1, df2)

   a b  c
1  1 1 NA
2 NA 1  1

bind_cols(df1, df3)

  a b c d
1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)

ric*_*2hs 6

也许朱莉娅vcathcat函数会满足您的要求。

\n

DataFrames.jl 1.4.4 的代码

\n
julia> using DataFrames\n\njulia> df1 = DataFrame(a = 1, b = 1)\n1\xc3\x972 DataFrame\n Row \xe2\x94\x82 a      b\n     \xe2\x94\x82 Int64  Int64\n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n   1 \xe2\x94\x82     1      1\n\njulia> df2 = DataFrame(b = 1, c = 1)\n1\xc3\x972 DataFrame\n Row \xe2\x94\x82 b      c\n     \xe2\x94\x82 Int64  Int64\n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n   1 \xe2\x94\x82     1      1\n\njulia> df3 = DataFrame(c = 1, d = 1)\n1\xc3\x972 DataFrame\n Row \xe2\x94\x82 c      d\n     \xe2\x94\x82 Int64  Int64\n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n   1 \xe2\x94\x82     1      1\n\njulia> vcat(df1, df2, cols=:union)\n2\xc3\x973 DataFrame\n Row \xe2\x94\x82 a        b      c\n     \xe2\x94\x82 Int64?   Int64  Int64?\n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n   1 \xe2\x94\x82       1      1  missing\n   2 \xe2\x94\x82 missing      1        1\n\njulia> hcat(df1, df3)\n1\xc3\x974 DataFrame\n Row \xe2\x94\x82 a      b      c      d\n     \xe2\x94\x82 Int64  Int64  Int64  Int64\n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n   1 \xe2\x94\x82     1      1      1      1\n
Run Code Online (Sandbox Code Playgroud)\n

旧答案

\n
julia> using DataFrames\n\njulia> df1 = DataFrame(a = 1, b = 1)\n1x2 DataFrames.DataFrame\n| Row | a | b |\n|-----|---|---|\n| 1   | 1 | 1 |\n\njulia> df2 = DataFrame(b = 1, c = 1)\n1x2 DataFrames.DataFrame\n| Row | b | c |\n|-----|---|---|\n| 1   | 1 | 1 |\n\njulia> df3 = DataFrame(c = 1, d = 1)\n1x2 DataFrames.DataFrame\n| Row | c | d |\n|-----|---|---|\n| 1   | 1 | 1 |\n\njulia> vcat(df1, df2)\n2x3 DataFrames.DataFrame\n| Row | a  | b | c  |\n|-----|----|---|----|\n| 1   | 1  | 1 | NA |\n| 2   | NA | 1 | 1  |\n\njulia> hcat(df1, df3)\n1x4 DataFrames.DataFrame\n| Row | a | b | c | d |\n|-----|---|---|---|---|\n| 1   | 1 | 1 | 1 | 1 |\n
Run Code Online (Sandbox Code Playgroud)\n