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