# Rationale for dropmissing vs skipmissing

**URL:** <https://discourse.julialang.org/t/rationale-for-dropmissing-vs-skipmissing/118560>\
**Category:** General Usage\
**Tags:** question, dataframes\
**Created:** [August 24, 2024, 1:34pm UTC](https://discourse.julialang.org/t/rationale-for-dropmissing-vs-skipmissing/118560 "2024-08-24T13:34:56Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![DoktorMike](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/doktormike/32/2736_2.png) [@DoktorMike](https://discourse.julialang.org/u/DoktorMike)\
**Post date:** [August 24, 2024, 1:34pm UTC](https://discourse.julialang.org/t/rationale-for-dropmissing-vs-skipmissing/118560/1 "2024-08-24T13:34:56Z")

</div>

As outlined in [How to remove rows containing missing from DataFrame?](https://discourse.julialang.org/t/how-to-remove-rows-containing-missing-from-dataframe/12234) the way to get rid of missings in a DataFrame is to use `dropmissing`. This works really well and I use it all the time, but it bugs me that I cannot use what would to me be more natural, i.e., `skipmissing`. Is there a logical reason I’m missing for why `dropmissing` had to be introduced instead of a specialized implementation for `skipmissing` for a DataFrame?

---

<div class="post-metadata">

**Author:** ![bkamins](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bkamins/32/208538_2.png) [@bkamins](https://discourse.julialang.org/u/bkamins)\
**Post date:** [August 24, 2024, 3:18pm UTC](https://discourse.julialang.org/t/rationale-for-dropmissing-vs-skipmissing/118560/2 "2024-08-24T15:18:19Z")

</div>

`skipmissing` has a different indexing rule:

```julia
julia> x = [1, 2, missing, 4, 5]
5-element Vector{Union{Missing, Int64}}:
 1
 2
  missing
 4
 5

julia> y = skipmissing(x)
skipmissing(Union{Missing, Int64}[1, 2, missing, 4, 5])

julia> y[2]
2

julia> y[3]
ERROR: MissingException: the value at index (3,) is missing

julia> y[4]
4

```

---

<div class="post-metadata">

**Author:** ![DoktorMike](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/doktormike/32/2736_2.png) [@DoktorMike](https://discourse.julialang.org/u/DoktorMike)\
**Post date:** [August 24, 2024, 6:52pm UTC](https://discourse.julialang.org/t/rationale-for-dropmissing-vs-skipmissing/118560/3 "2024-08-24T18:52:55Z")

</div>

Thanks for the explanation. 🙏🏻
