In R language, I want to use switch statement to replace the nest if else statement. I want to assign value to a new column, my idea is:
## Create a function to seperate the case
Range <- function(x)
if (CityData_Group_Copy$BadDebtNum[x] < 26)
{ CityData_Group_Copy$BadDebtRange[x] <- "1~25"}
else if(CityData_Group_Copy$BadDebtNum[x] > 25 && CityData_Group_Copy$BadDebtNum[x] < 51)
{CityData_Group_Copy$BadDebtRange[x] <- "26~50"}
else if(CityData_Group_Copy$BadDebtNum[x] > 51 && CityData_Group_Copy$BadDebtNum[x] < 76)
{CityData_Group_Copy$BadDebtRange[x] <- "51~75"}
else if(CityData_Group_Copy$BadDebtNum[x] > 75 && CityData_Group_Copy$BadDebtNum[x] < 101)
{CityData_Group_Copy$BadDebtRange[x] <- "76~100"}
else if(CityData_Group_Copy$BadDebtNum[x] > 100)
{ CityData_Group_Copy$BadDebtRange[x] <- "100+"}
## Assign the result to the new column "CityData_Group_Copy$BadDebtRange"
for(i in 1: nrow(CityData_Group_Copy) ){
Range(i)
}
I also tried this solution:
Range <- function(x)
switch (true) {
case (CityData_Group_Copy$BadDebtNum[x] < 26): CityData_Group_Copy$BadDebtRange[x] <- "1~25" break;
case (CityData_Group_Copy$BadDebtNum[x] > 25 && CityData_Group_Copy$BadDebtNum[x] < 51): CityData_Group_Copy$BadDebtRange[x] <- "26~50" break;
case (CityData_Group_Copy$BadDebtNum[x] > 51 && CityData_Group_Copy$BadDebtNum[x] < 76): CityData_Group_Copy$BadDebtRange[x] <- "51~75" break;
case (CityData_Group_Copy$BadDebtNum[x] > 75 && CityData_Group_Copy$BadDebtNum[x] < 101): CityData_Group_Copy$BadDebtRange[x] <- "76~100" break;
case (CityData_Group_Copy$BadDebtNum[x] > 100): CityData_Group_Copy$BadDebtRange[x] <- "100+" break;
}
But it seems there is no such syntax in R. I got a error:
Error: unexpected 'break' in " case (CityData_Group_Copy$BadDebtNum[x] > 101): CityData_Group_Copy$BadDebtRange[x] <- "100+" break"*
So are there any solution to implement my idea in a simple way?