Index Array without Elements

This use case is a common one and is covered by the InvertedIndices.jl package. If you install it then you can run:

julia> using InvertedIndices

julia> a = 1:4
1:4

julia> a[Not(3)]
3-element Array{Int64,1}:
 1
 2
 4

Also some packages (like DataFrames.jl) automatically load this package (so if you e.g. use DataFrames.jl you do not have to install and load InvertedIndices.jl separately).


The Julia syntax will be unfortunately more verbose than those of R:

julia> a[1:end .!== 3]
3-element Array{Int64,1}:
 1
 2
 4

Another option is to mutate a:

julia> deleteat!(a,3)
3-element Array{Int64,1}:
 1
 2
 4

If your data is within a DataFrame than you can get a nicer syntax:

julia> df = DataFrame(a=1:4);

julia> df[Not(3),:]
3×1 DataFrame
│ Row │ a     │
│     │ Int64 │
├─────┼───────┤
│ 1   │ 1     │
│ 2   │ 2     │
│ 3   │ 4     │

and when DataFrames is imported Not will also work with a Vector:

julia> a[Not(3)]
3-element Array{Int64,1}:
 1
 2
 4

Tags:

Julia