# Implement case\_when in Queryverse

**URL:** <https://discourse.julialang.org/t/implement-case-when-in-queryverse/30986>\
**Category:** Data\
**Created:** [November 12, 2019, 1:56am UTC](https://discourse.julialang.org/t/implement-case-when-in-queryverse/30986 "2019-11-12T01:56:52Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![pradeip1](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pradeip1/32/11253_2.png) [@pradeip1](https://discourse.julialang.org/u/pradeip1)\
**Post date:** [November 12, 2019, 1:56am UTC](https://discourse.julialang.org/t/implement-case-when-in-queryverse/30986/1 "2019-11-12T01:56:52Z")

</div>

Can we implement case\_when in Julia?  
I am trying to achieve this R code using Queryverse in Julia

Example in R:  
mutate(TIME = case\_when(TIME == 0 ~ 95.9,  
TIME == 0.08 ~ 96.08,  
TIME == 0.25 ~ 96.25,  
TIME == 0.50 ~ 96.5,  
TIME == 1 ~ 97.0,  
TIME == 3 ~ 99.0,  
TIME == 8 ~ 104.0))  
Any suggestions please? Thanks.

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [November 12, 2019, 2:05am UTC](https://discourse.julialang.org/t/implement-case-when-in-queryverse/30986/2 "2019-11-12T02:05:02Z")

</div>

`Match.jl` should do what you want

---

<div class="post-metadata">

**Author:** ![pradeip1](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pradeip1/32/11253_2.png) [@pradeip1](https://discourse.julialang.org/u/pradeip1)\
**Post date:** [November 13, 2019, 1:29am UTC](https://discourse.julialang.org/t/implement-case-when-in-queryverse/30986/3 "2019-11-13T01:29:29Z")

</div>

Thanks. I was not successful implementing this! any pointers towards an example would be helpful.

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [November 13, 2019, 2:22am UTC](https://discourse.julialang.org/t/implement-case-when-in-queryverse/30986/4 "2019-11-13T02:22:29Z")

</div>

Share with us the code that you used to try and get it to work and we can give you pointers

---

<div class="post-metadata">

**Author:** ![pradeip1](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pradeip1/32/11253_2.png) [@pradeip1](https://discourse.julialang.org/u/pradeip1)\
**Post date:** [November 13, 2019, 2:40am UTC](https://discourse.julialang.org/t/implement-case-when-in-queryverse/30986/5 "2019-11-13T02:40:26Z")

</div>

I am trying to achieve TIME\_2 column.  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/7/5/75c0abb92e35ab062b9ccc291fbb139e88dd00b1.png)

tried this dv.TIME = match(:TIME==0, 95.9) to selectively change 0 to 95.9 and get this error  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/3/1/31fac573cf09933222041456bdd7a5e3d23075a4.png)

Thanks.

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [November 13, 2019, 2:47am UTC](https://discourse.julialang.org/t/implement-case-when-in-queryverse/30986/6 "2019-11-13T02:47:13Z")

</div>

Please see [PSA: Make it easier to help you](https://discourse.julialang.org/t/psa-make-it-easier-to-help-you/14757). It would be great if you could make a MWE.

Even without `Match.jl`, this is probably the syntax you are looking for:

```julia
df.TIME = map(df.TIME) do t 
t == 0 ? 95.9 :
t == 0.08 ? 96.08 :
t == 0.25 ? 96.25 :
t == 0.50 ? 96.5 :  
t == 1 ? 97.0 :
t == 3 ? 99.0 :
t == 8 ? 104.0 : missing
end

```

---

<div class="post-metadata">

**Author:** ![pradeip1](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pradeip1/32/11253_2.png) [@pradeip1](https://discourse.julialang.org/u/pradeip1)\
**Post date:** [November 13, 2019, 2:53am UTC](https://discourse.julialang.org/t/implement-case-when-in-queryverse/30986/7 "2019-11-13T02:53:18Z")

</div>

Great - this works. Thanks.

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [November 13, 2019, 1:11pm UTC](https://discourse.julialang.org/t/implement-case-when-in-queryverse/30986/8 "2019-11-13T13:11:27Z")

</div>

One final thing. Better to use `missing` instead of nothing at the end of the block. I put `nothing` by mistake and have edited my code.

`missing` is what is used for missing values for data applications, and `nothing` is used in a different way.

---

<div class="post-metadata">

**Author:** ![pradeip1](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pradeip1/32/11253_2.png) [@pradeip1](https://discourse.julialang.org/u/pradeip1)\
**Post date:** [November 13, 2019, 1:30pm UTC](https://discourse.julialang.org/t/implement-case-when-in-queryverse/30986/9 "2019-11-13T13:30:53Z")

</div>

great - thanks.
