@@ -598,6 +598,12 @@ function mapcols!(f::Union{Function,Type}, df::DataFrame; cols=All())
598
598
return df
599
599
end
600
600
601
+ # #############################################################################
602
+ # #
603
+ # # Reduction
604
+ # #
605
+ # #############################################################################
606
+
601
607
"""
602
608
reduce(::typeof(vcat),
603
609
dfs::Union{AbstractVector{<:AbstractDataFrame},
@@ -686,7 +692,10 @@ julia> reduce(vcat, [df1, df2, df3], cols=:union, source=:source)
686
692
```
687
693
"""
688
694
function Base. reduce (:: typeof (vcat),
689
- dfs:: Union {AbstractVector{<: AbstractDataFrame },
695
+ dfs:: Union {AbstractVector{AbstractDataFrame},
696
+ AbstractVector{DataFrame},
697
+ AbstractVector{SubDataFrame},
698
+ AbstractVector{Union{DataFrame,SubDataFrame}},
690
699
Tuple{AbstractDataFrame,Vararg{AbstractDataFrame}}};
691
700
cols:: Union {Symbol,AbstractVector{Symbol},
692
701
AbstractVector{<: AbstractString }}= :setequal ,
741
750
742
751
# definition needed to avoid dispatch ambiguity
743
752
Base. reduce (:: typeof (vcat),
744
- dfs:: SentinelArrays.ChainedVector{T,A} where {T<: AbstractDataFrame ,
745
- A<: AbstractVector{T} };
753
+ dfs:: Union {SentinelArrays. ChainedVector{AbstractDataFrame,<: AbstractVector{AbstractDataFrame} },
754
+ SentinelArrays. ChainedVector{DataFrame,<: AbstractVector{DataFrame} },
755
+ SentinelArrays. ChainedVector{SubDataFrame,<: AbstractVector{SubDataFrame} },
756
+ SentinelArrays. ChainedVector{Union{DataFrame,SubDataFrame},<: AbstractVector{Union{DataFrame,SubDataFrame}} }};
746
757
cols:: Union {Symbol,AbstractVector{Symbol},
747
758
AbstractVector{<: AbstractString }}= :setequal ,
748
759
source:: Union {Nothing,SymbolOrString,
0 commit comments