Cómo escribir una instrucción If Else anidada en R (con ejemplos)

Puedes opinar sobre este contenido:
  • 0
  • 0
  • 0
  • 0

Actualizado el 17 de julio de 2024, por Luis Benites.

La función ifelse () en la base R se puede usar para escribir declaraciones rápidas if-else. Esta función utiliza la siguiente sintaxis:

ifelse (prueba, sí, no)

dónde:

  • prueba: una prueba lógica
  • sí: el valor que se devolverá si la prueba lógica es verdadera
  • no: el valor que se devolverá si la prueba lógica es falsa

Este tutorial explica cómo usar esta función para escribir declaraciones if else junto con declaraciones if else anidadas en R, usando el siguiente marco de datos:

#create marco de datos
df <- data.frame (equipo = c ('A', 'A', 'B', 'B', 'B', 'C', 'D'),
                 puntos = c (4, 7, 8, 8, 8, 9, 12),
                 rebotes = c (3, 3, 4, 4, 6, 7, 7))

#ver marco de datos
 df

  rebotes de puntos de equipo
1 A 4 3
2 A 7 3
3 B 8 4
4 B 8 4
5 B 8 6
6 C 9 7
7 D 12 7

Ejemplo 1: Cómo escribir una declaración If Else básica

El siguiente código muestra cómo crear una nueva columna en el marco de datos cuyo valor se basa en el valor de la columna ‘equipo’:

#crear una nueva columna en el marco de datos
 df $ rating <- ifelse (df ​​$ team == ' A ', ' great ', ' bad ')

#ver marco de datos
 df

  puntuación de rebotes de puntos de equipo
1 A 4 3 genial
2 A 7 3 genial
3 B 8 4 malo
4 B 8 4 malo
5 B 8 6 malo
6 C 9 7 malo
7 D 12 7 malo

Esta simple declaración ifelse le dice a R que haga lo siguiente:

  • Si el valor en la columna del equipo es ‘A’, entonces déle al jugador una calificación de ‘excelente’.
  • De lo contrario, dale al jugador una calificación de «malo».

Ejemplo 2: Cómo escribir una instrucción If Else anidada

El siguiente código muestra cómo crear una nueva columna en el marco de datos escribiendo una declaración if else anidada:

#crear una nueva columna en el marco de datos
 df $ rating <- ifelse (df ​​$ team == ' A ', ' great ',
                ifelse (df ​​$ team == ' B ', ' OK ', ' bad '))

#ver marco de datos
 df

  puntuación de rebotes de puntos de equipo
1 A 4 3 genial
2 A 7 3 genial
3 B 8 4 OK
4 B 8 4 OK
5 B 8 6 OK
6 C 9 7 malo
7 D 12 7 malo

Esta instrucción ifelse anidada le dice a R que haga lo siguiente:

  • Si el valor en la columna del equipo es ‘A’, entonces déle al jugador una calificación de ‘excelente’.
  • De lo contrario, si el valor en la columna del equipo es ‘B’, entonces déle al jugador una calificación de ‘OK’.
  • De lo contrario, dale al jugador una calificación de «malo».

Ejemplo 3: Cómo escribir declaraciones If más anidadas más largas

El siguiente código muestra cómo crear una nueva columna en el marco de datos escribiendo una declaración if else anidada aún más larga:

#crear una nueva columna en el marco de datos
 df $ rating <- ifelse (df ​​$ team == ' A ', ' great ',
                ifelse (df ​​$ team == ' B ', ' OK ',
                  ifelse (df ​​$ team == ' C ',' decente ',' malo ')))

#ver marco de datos
 df

  puntuación de rebotes de puntos de equipo
1 A 4 3 genial
2 A 7 3 genial
3 B 8 4 OK
4 B 8 4 OK
5 B 8 6 OK
6 C 9 7 decente
7 D 12 7 malo

Esta instrucción ifelse anidada le dice a R que haga lo siguiente:

  • Si el valor en la columna del equipo es ‘A’, entonces déle al jugador una calificación de ‘excelente’.
  • De lo contrario, si el valor en la columna del equipo es ‘B’, entonces déle al jugador una calificación de ‘OK’.
  • De lo contrario, si el valor en la columna del equipo es ‘C’, entonces déle al jugador una calificación de ‘decente’.
  • De lo contrario, dale al jugador una calificación de «malo».

Tenga en cuenta que puede usar este patrón exacto para escribir declaraciones ifelse anidadas todo el tiempo que desee.

Puede encontrar más tutoriales de R aquí .

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿Te hemos ayudado?

Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:

La ayuda no cuesta nada

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

Deja un comentario

A menudo, es posible que desee eliminar marcas de uno o más ejes en una gráfica de Matplotlib. Afortunadamente, esto…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!