Instrucción if-else anidada en R

En este artículo, analizaremos la instrucción if-else anidada en el lenguaje de programación R.

Las declaraciones if-else se pueden anidar juntas para formar un grupo de declaraciones y evaluar expresiones basadas en las condiciones una por una, comenzando desde la condición externa hasta la interna, una por una, respectivamente. Una sentencia if-else dentro de otra sentencia if-else justifica mejor la definición.

Sintaxis:

if(condition1){
# execute only if condition 1 satisfies
if(condition 2){ 
# execute if both condition 1 and 2 satisfy
}
}else{
}

Ejemplo: instrucción if-else anidada

R

# creating values
var1 <- 6
var2 <- 5
var3 <- -4
  
# checking if-else if ladder
if(var1 > 10 || var2 < 5){
  print("condition1")
}else{
  if(var1 <4 ){
    print("condition2")
  }else{
    if(var2>10){
      print("condition3")
    }
    else{
      print("condition4")
    }
  }
}

Producción:

[1] "condition4"

Usando la declaración ifelse

El primer argumento del método ifelse() contiene la condición a evaluar. Los argumentos segundo y tercero contienen el valor de la evaluación verdadera y falsa de la condición, respectivamente. En el caso de evaluación con marco de datos u otros objetos R, las columnas se tipifican utilizando el nombre del marco de datos. 

Sintaxis:

ifelse(cond, value-on-true, value-on-false)

Ejemplo: if-else anidado usando ifelse

R

# creating a dataframe 
data_frame <- data.frame(col1 = c(1:9),
                         col2 = LETTERS[1:3])
  
print("Original DataFrame")
print(data_frame)
  
data_frame$col3 = ifelse(data_frame$col1>4,"cond1 satisfied",
                         ifelse(data_frame$col2 %in% c("A","C"),
                                "cond2 satisfied",
                         "both failed"))
  
print("Modified DataFrame")
print(data_frame)

Producción:

[1] "Original DataFrame" 
col1 col2 
1    1    A 
2    2    B 
3    3    C 
4    4    A 
5    5    B 
6    6    C 
7    7    A 
8    8    B 
9    9    C 
[1] "Modified DataFrame"
col1 col2            col3 
1    1    A cond2 satisfied 
2    2    B     both failed 
3    3    C cond2 satisfied 
4    4    A cond2 satisfied 
5    5    B cond1 satisfied 
6    6    C cond1 satisfied 
7    7    A cond1 satisfied 
8    8    B cond1 satisfied 
9    9    C cond1 satisfied

En el caso del marco de datos anidado, las condiciones anidadas contienen el nombre del marco de datos una y otra vez. Para evitar esta complejidad y aumentar la eficiencia, el nombre del marco de datos se especifica en el primer argumento del método with().

Sintaxis: 

with(data-frame , ifelse())

Ejemplo: usar with() con ifelse()

R

# creating a dataframe 
data_frame <- data.frame(col1 = c(1:9),
                         col2 = LETTERS[1:3])
  
print("Original DataFrame")
print(data_frame)
  
data_frame$col3 = with(data_frame, 
                       ifelse(col1>4,"cond1 satisfied",
                        ifelse(col2 %in% c("A","C"),
                               "cond2 satisifed",
                           "both failed")))
    
print("Modified DataFrame")
print(data_frame)

Producción

[1] "Original DataFrame" 
col1 col2 
1    1    A 
2    2    B 
3    3    C 
4    4    A 
5    5    B 
6    6    C 
7    7    A 
8    8    B 
9    9    C 
[1] "Modified DataFrame"
col1 col2            col3 
1    1    A cond2 satisfied 
2    2    B     both failed 
3    3    C cond2 satisfied 
4    4    A cond2 satisfied 
5    5    B cond1 satisfied 
6    6    C cond1 satisfied 
7    7    A cond1 satisfied 
8    8    B cond1 satisfied 
9    9    C cond1 satisfied

Publicación traducida automáticamente

Artículo escrito por yashchuahan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *