Alternatives to multiple ifelse in R

if-statement, r

Solution

`switch` isn't really meant for something like this, `cut` is better:

cut(Y,c(-Inf,5,10,Inf),labels=LETTERS[1:3],right=FALSE)
  [1] C C C C C B C C C C A B C A C C C C B C C C C C C C C C C C C A B C C C C
 [38] C C B C C C C C C A A A C C C C C C C C A C C C C C C C C C B C C C C C C
 [75] A C C C C B C C A A B C C C C A C C A C C C C C A C
Levels: A B C

Problem

I'm tired of multiple `ifelse` statements in R. I know there is a function with name `switch` but could not figured out how to use if the for following example. ``` set.seed(12345) Y <- runif(n=100, min=0, max=50) ifelse( test = Y < 5 , yes = "A" , no = ifelse( test = Y < 10 , yes = "B" , no = "C" ) ) ``` Output: ``` [1] "C" "C" "C" "C" "C" "B" "C" "C" "C" "C" "A" "B" "C" "A" "C" "C" "C" "C" [19] "B" "C" "C" "C" "C" "C" "C" "C" "C" "C" "C" "C" "C" "A" "B" "C" "C" "C" [37] "C" "C" "C" "B" "C" "C" "C" "C" "C" "C" "A" "A" "A" "C" "C" "C" "C" "C" [55] "C" "C" "C" "A" "C" "C" "C" "C" "C" "C" "C" "C" "C" "B" "C" "C" "C" "C" [73] "C" "C" "A" "C" "C" "C" "C" "B" "C" "C" "A" "A" "B" "C" "C" "C" "C" "A" [91] "C" "C" "A" "C" "C" "C" "C" "C" "A" "C" ``` Edited If I have the following code, then what would be the better alternative for `ifelse` statement? ``` set.seed(12345) Y <- runif(n=100, min=0, max=50) ifelse( test = Y < 5 , yes = -5 , no = ifelse( test = Y < 10 , yes = 0 , no = 5 ) ) ```

Original source