Conditional statements (else, if) in R

Base solution:

X <- c(-1.58, 2.7, -0.9)
Y <- c(2.61, -5.3, -0.51)

temporary_function <- function(p, q)
{
  if ((p > 1) & (q > 1))
  {
    (p + q)
  } else if ((p > 1) & (q < 1))
  {
    280
  } else if ((p < 1) & (q > 1))
  {
    (p - q)
  } else
  {
    0
  }
}

mapply(FUN = temporary_function, X, Y)
#> [1]  -4.19 280.00   0.00

purrr amd dplyr solution

X <- c(-1.58, 2.7, -0.9)
Y <- c(2.61, -5.3, -0.51)

purrr::map2_dbl(.x = X,
                .y = Y,
                .f = ~ dplyr::case_when(((.x > 1) & (.y > 1)) ~ (.x + .y),
                                        ((.x > 1) & (.y < 1)) ~ 280,
                                        ((.x < 1) & (.y > 1)) ~ (.x - .y),
                                        ((.x < 1) & (.y < 1)) ~ 0))
#> [1]  -4.19 280.00   0.00
4 Likes