0

So, I want to add a new column to my existing data. I have a condition column in my data of A,B, and C. I want to create a new column called Treated where e.g. condition A= treated, and condition B and C= non treated and add this to my data. I tried to do this with mutate function but I cannot do this. If you guys can recommend any function or argument I could use to do this would be very much appreciated. Thank you in advance

  • 1
    please provide some example data using `dput` function to see the class of each column – danlooo Apr 27 '22 at 12:27
  • 1
    Does this answer your question? [dplyr mutate with conditional values](https://stackoverflow.com/questions/22337394/dplyr-mutate-with-conditional-values), See also: https://stackoverflow.com/q/24459752/10264278 – Paul Apr 27 '22 at 12:28
  • 1
    Welcome to StackOverflow! Please read the info about [how to ask a good question](http://stackoverflow.com/help/how-to-ask) and how to give a [reproducible example](http://stackoverflow.com/questions/5963269). This will make it much easier for others to help you. – Sotos Apr 27 '22 at 12:28

1 Answers1

0

As you mention mutate in your question, here is an idea with tidyverse-based functions:

tibble::tibble(cond = c("A", "B", "A", "C", "C")) |> # creates a dummy data set
  dplyr::mutate(Treated = dplyr::case_when(cond %in% c("B", "C") ~ "non treated",
                                           cond == "A" ~ "treated"))
#> # A tibble: 5 x 2
#>   cond  Treated    
#>   <chr> <chr>      
#> 1 A     treated    
#> 2 B     non treated
#> 3 A     treated    
#> 4 C     non treated
#> 5 C     non treated

Created on 2022-04-27 by the reprex package (v2.0.1)

You can also get the same result using ifelse().

Paul
  • 2,850
  • 1
  • 12
  • 37