Skip to content

Commit

Permalink
Update wheredataframe.jl
Browse files Browse the repository at this point in the history
  • Loading branch information
matthieugomez committed Oct 4, 2020
1 parent 2797e77 commit 473a9c8
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions src/wheredataframe/wheredataframe.jl
Expand Up @@ -134,7 +134,15 @@ Base.filter(wdf::WhereDataFrame) = parent(wdf)[rows(wdf), :]
Base.filter!(wdf::WhereDataFrame) = delete!(parent(wdf), setdiff(1:nrow(parent(wdf)), rows(wdf)))
Base.delete!(wdf::WhereDataFrame) = delete!(parent(wdf), rows(wdf))
Base.view(wdf::WhereDataFrame) = view(parent(wdf), rows(wdf), :)
Base.unique!(wdf::WhereDataFrame, args...) = delete!(parent(wdf), rows(wdf)[nonunique(view(wdf), args...)])
function nonunique(wdf::WhereDataFrame, args...)
x = falses(size(parent(wdf), 1))
idx = rows(wdf)[findall(nonunique(view(wdf), args...))]
x[idx] .= true
return x
end
Base.unique!(wdf::WhereDataFrame, args...) = delete!(parent(wdf), findall(nonunique(wdf, args...)))
Base.unique(wdf::WhereDataFrame, args...) = parent(wdf)[(!).(nonunique(wdf, args...)), :]

# TODO:
# Base.select
# Base.select!
Expand All @@ -146,5 +154,3 @@ Base.first(df::WhereDataFrame, args...) = first(view(df), args...)
Base.last(df::WhereDataFrame, args...) = last(view(df), args...)
DataAPI.describe(wdf::WhereDataFrame, args...; kwargs...) = describe(view(wdf), args...; kwargs...)
combine(wdf::WhereDataFrame, args...; kwargs...) = combine(view(wdf), args...; kwargs...)
Base.unique(wdf::WhereDataFrame, args...) = unique(view(wdf), args...)
Base.similar(wdf::WhereDataFrame) = similar(view(wdf))

0 comments on commit 473a9c8

Please sign in to comment.