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)
也许朱莉娅vcat和hcat函数会满足您的要求。
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\nRun Code Online (Sandbox Code Playgroud)\njulia> 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 |\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1721 次 |
| 最近记录: |