-3

cell.data <- cell.data%>%mutate(Overage.factor=ifelse(cell.data$OverageFee==0|cell.data$OverageFee<=5.0,"Overage<5", ifelse(cell.data$OverageFee>5.0|cell.data$OverageFee<=10.0,"ovearge<10", ifelse(cell.data$OverageFee>10.0|cell.data$OverageFee<=15.0,"overage>10","overage>15"))))

Getting output only for levels like Overage<5 & ovearge<10.

Jaap
  • 81,064
  • 34
  • 182
  • 193
  • 1
    If you want your new variable to have the value "overage<10" when `OverageFee` is between 5 and 10, and etc .. You will need to replace all your `|` (OR) by `&` (AND). – gdevaux Nov 20 '19 at 07:16

2 Answers2

0

There are several issues with your code. Without data, I cannot test it. You may want to try something like this:

cell.data <- cell.data%>%
  mutate(Overage.factor=case_when(
    (OverageFee>=0 & OverageFee<=5.0) ~ "Overage<5",
    (OverageFee>5.0 & OverageFee<=10.0) ~ "ovearge<10",
    (OverageFee>10.0 & OverageFee<=15.0) ~ "overage>10",
    TRUE ~"overage>15"))
Zhiqiang Wang
  • 6,206
  • 2
  • 13
  • 27
0

There is a special function which will make this work a lot easier! See dplyr::case_when

Here is a example:

library(tidyverse)

values <- sample(1:99,10)

case_when(values <= 59 ~ 10,
          values == 60 ~ 60,
          values >= 61 ~ 99)

Good luck

Magnus Nordmo
  • 923
  • 7
  • 10