Skip to content

Commit 08aec90

Browse files
committed
sort groups without temporary data frame creation
1 parent 4d93e3f commit 08aec90

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/groupeddataframe/grouping.jl

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,14 @@ df |> groupby([:a, :b]) |> [sum, length]
8181
```
8282
8383
"""
84-
function groupby{T}(d::AbstractDataFrame, cols::Vector{T})
85-
d_groups = _group_rows(d[cols])
84+
function groupby{T}(df::AbstractDataFrame, cols::Vector{T})
85+
sdf = df[cols]
86+
df_groups = _group_rows(sdf)
8687
# sort the groups
87-
d_group_perm = sortperm(d[d_groups.rperm[d_groups.starts], cols])
88-
GroupedDataFrame(d, cols, d_groups.rperm,
89-
d_groups.starts[d_group_perm],
90-
d_groups.stops[d_group_perm])
88+
group_perm = sortperm(sub(sdf, df_groups.rperm[df_groups.starts]))
89+
GroupedDataFrame(df, cols, df_groups.rperm,
90+
df_groups.starts[group_perm],
91+
df_groups.stops[group_perm])
9192
end
9293
groupby(d::AbstractDataFrame, cols) = groupby(d, [cols])
9394

0 commit comments

Comments
 (0)