Sentencias de control en programación R

Las sentencias de control son expresiones utilizadas para controlar la ejecución y el flujo del programa en función de las condiciones proporcionadas en las sentencias. Estas estructuras se utilizan para tomar una decisión después de evaluar la variable. En este artículo, discutiremos todas las declaraciones de control con los ejemplos.

En la programación R , hay 8 tipos de declaraciones de control de la siguiente manera:

si condición

Esta estructura de control comprueba si la expresión proporcionada entre paréntesis es verdadera o no. Si es verdadero, continúa la ejecución de las sentencias entre llaves {}. 

Sintaxis:

if(expression){
    statements
    ....
    ....
}

Ejemplo:

x <- 100
  
if(x > 10){
print(paste(x, "is greater than 10"))
}

Producción:

[1] "100 is greater than 10"

condición if-else

Es similar a la condición if , pero cuando falla la expresión de prueba en la condición if, se ejecutan las declaraciones en la condición else .

Sintaxis:

if(expression){
    statements
    ....
    ....
}
else{
    statements
    ....
    ....
}

Ejemplo:

x <- 5
  
# Check value is less than or greater than 10
if(x > 10){
  print(paste(x, "is greater than 10"))
}else{
  print(paste(x, "is less than 10"))
}

Producción:

[1] "5 is less than 10"

en bucle

Es un tipo de bucle o secuencia de sentencias que se ejecutan repetidamente hasta que se alcanza la condición de salida.

Sintaxis:

for(value in vector){
    statements
    ....
    ....
}

Ejemplo:

x <- letters[4:10]
  
for(i in x){
  print(i)
}

Producción:

[1] "d"
[1] "e"
[1] "f"
[1] "g"
[1] "h"
[1] "i"
[1] "j"

Bucles anidados

Los bucles anidados son similares a los bucles simples. Bucles de medios anidados dentro del bucle. Además, los bucles anidados se utilizan para manipular la array.

Ejemplo:

# Defining matrix
m <- matrix(2:15, 2)
  
for (r in seq(nrow(m))) {
  for (c in seq(ncol(m))) {
    print(m[r, c])
  }
}

 
Producción:

[1] 2
[1] 4
[1] 6
[1] 8
[1] 10
[1] 12
[1] 14
[1] 3
[1] 5
[1] 7
[1] 9
[1] 11
[1] 13
[1] 15

mientras bucle

while loop es otro tipo de ciclo que se repite hasta que se cumple una condición. La expresión de prueba se comprueba primero antes de ejecutar el cuerpo del bucle.

Sintaxis:

while(expression){
    statement
    ....
    ....
}

Ejemplo:

x = 1
  
# Print 1 to 5
while(x <= 5){
  print(x)
  x = x + 1
}

Producción:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5

repetición de bucle y sentencia de interrupción

repetir es un ciclo que se puede iterar muchas veces, pero no hay una condición de salida para salir del ciclo. Entonces, la instrucción break se usa para salir del bucle. La instrucción break se puede usar en cualquier tipo de bucle para salir del bucle.

Sintaxis:

repeat { 
   statements
   ....
   .... 
   if(expression) {
      break
   }
}

Ejemplo:

x = 1
  
# Print 1 to 5
repeat{
  print(x)
  x = x + 1
  if(x > 5){
    break
   }
}

 
Producción:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5

declaración de devolución

declaración de retorno se utiliza para devolver el resultado de una función ejecutada y devuelve el control a la función de llamada.

Sintaxis:

return(expression)

Ejemplo:

# Checks value is either positive, negative or zero
func <- function(x){
  if(x > 0){
    return("Positive")
  }else if(x < 0){
    return("Negative")
  }else{
    return("Zero")
  }
}
  
func(1)
func(0)
func(-1)

Producción:

[1] "Positive"
[1] "Zero"
[1] "Negative"

próxima declaración

La siguiente declaración se usa para omitir la iteración actual sin ejecutar las declaraciones adicionales y continúa el siguiente ciclo de iteración sin terminar el ciclo.

Ejemplo:

# Defining vector
x <- 1:10
  
# Print even numbers
for(i in x){
  if(i%%2 != 0){
    next #Jumps to next loop
  }
  print(i)
}

Producción:

[1] 2
[1] 4
[1] 6
[1] 8
[1] 10

Publicación traducida automáticamente

Artículo escrito por utkarsh_kumar 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 *