假设我有一个数据框
a
和一个向量 y
a = DataFrame(t = [0; 0], x = [1, 2])
y = [0.1, 0.2, 0.3]
如何将这两者结合起来以实现如下所示的效果,优先使用
DataFramesMeta.jl
?
Row │ t x
│ Float64 Int64
─────┼────────────────
1 │ 0.1 1
2 │ 0.2 1
3 │ 0.3 1
4 │ 0.1 2
5 │ 0.2 2
6 │ 0.3 2
你并不真的需要DataFramesMeta;一个简单的连接就可以了。通过创建两个仅包含一个不同元素的
t
列,连接就成为笛卡尔积。
julia> a = DataFrame(t = [0; 0], x = [1, 2])
2×2 DataFrame
Row │ t x
│ Int64 Int64
─────┼──────────────
1 │ 0 1
2 │ 0 2
julia> b = DataFrame(t = 0, y = y)
3×2 DataFrame
Row │ t y
│ Int64 Float64
─────┼────────────────
1 │ 0 0.1
2 │ 0 0.2
3 │ 0 0.3
julia> select(leftjoin(b, a, on=:t), :y => :t, :x)
6×2 DataFrame
Row │ t x
│ Float64 Int64?
─────┼─────────────────
1 │ 0.1 1
2 │ 0.2 1
3 │ 0.3 1
4 │ 0.1 2
5 │ 0.2 2
6 │ 0.3 2