Practica 6 Manejo de ciclos
Objetivo: Realizar operaciones de recorrido de vectores por medio de ciclos en R y realizar algunas operaciones haciendo uso de condicionales en R
Descripcion: A traves del uso de mecanismos de flujos de control, mediante ciclos y condicionales en R, ejecutar operaciones.
Genera una secuencia de 20 numeros de 5 en 5 comenzando en 10 y recorrer e imprimir la variable por medio de ciclo for, while y repeat
# for
i <- 5
for (i in seq (i, 100, 5)){
print (i + 5)
}
## [1] 10
## [1] 15
## [1] 20
## [1] 25
## [1] 30
## [1] 35
## [1] 40
## [1] 45
## [1] 50
## [1] 55
## [1] 60
## [1] 65
## [1] 70
## [1] 75
## [1] 80
## [1] 85
## [1] 90
## [1] 95
## [1] 100
## [1] 105
# while
x <- 10
while (x>=10 && x<=105){
print (x)
x <- x + 5
}
## [1] 10
## [1] 15
## [1] 20
## [1] 25
## [1] 30
## [1] 35
## [1] 40
## [1] 45
## [1] 50
## [1] 55
## [1] 60
## [1] 65
## [1] 70
## [1] 75
## [1] 80
## [1] 85
## [1] 90
## [1] 95
## [1] 100
## [1] 105
# repeat
x <- 10
repeat {
print(x)
x = x + 5
if (x<10 || x>105){
break
}
}
## [1] 10
## [1] 15
## [1] 20
## [1] 25
## [1] 30
## [1] 35
## [1] 40
## [1] 45
## [1] 50
## [1] 55
## [1] 60
## [1] 65
## [1] 70
## [1] 75
## [1] 80
## [1] 85
## [1] 90
## [1] 95
## [1] 100
## [1] 105
Establecer una semilla de set.seed(50) para generar numeros aleatorios
set.seed(50)
misnumeros <- sample(80:100, 30, replace = TRUE)
misnumeros
## [1] 94 89 84 96 90 80 94 93 80 82 88 85 93 81 85 94 97 87 81 83 92 84 94
## [24] 97 86 93 92 85 86 87
Generar 30 numeros aleatorios de entre 80 y 100 con valores repetidos y recorrer por medio de ciclos for, while y repeat
# for
x <- sample(80:100,30 ,replace = TRUE)
for (i in x)
{
print(i)
}
## [1] 87
## [1] 88
## [1] 89
## [1] 92
## [1] 84
## [1] 93
## [1] 82
## [1] 94
## [1] 87
## [1] 89
## [1] 87
## [1] 97
## [1] 85
## [1] 81
## [1] 81
## [1] 94
## [1] 100
## [1] 89
## [1] 94
## [1] 96
## [1] 100
## [1] 96
## [1] 93
## [1] 86
## [1] 87
## [1] 88
## [1] 95
## [1] 91
## [1] 90
## [1] 85
# while
x <- sample(80:100,30 ,replace = TRUE)
res<-1
while(res<=length(x))
{
print(x[res])
res<-res+1
}
## [1] 92
## [1] 93
## [1] 84
## [1] 92
## [1] 82
## [1] 80
## [1] 95
## [1] 81
## [1] 82
## [1] 99
## [1] 90
## [1] 100
## [1] 93
## [1] 81
## [1] 100
## [1] 83
## [1] 93
## [1] 100
## [1] 93
## [1] 100
## [1] 91
## [1] 80
## [1] 87
## [1] 89
## [1] 91
## [1] 80
## [1] 80
## [1] 94
## [1] 91
## [1] 93
# repeat
x <- sample(80:100,30 ,replace = TRUE)
res<-1
repeat
{
print(x[res])
res<-res+1
if (res>length(x))
break()
}
## [1] 94
## [1] 94
## [1] 97
## [1] 95
## [1] 81
## [1] 86
## [1] 81
## [1] 96
## [1] 86
## [1] 94
## [1] 90
## [1] 100
## [1] 93
## [1] 80
## [1] 80
## [1] 98
## [1] 80
## [1] 92
## [1] 97
## [1] 87
## [1] 98
## [1] 81
## [1] 84
## [1] 82
## [1] 81
## [1] 86
## [1] 81
## [1] 96
## [1] 89
## [1] 100
La misma opcion anterior pero mediante una condicion if salir y romper (break) el ciclo para cuando el valor generado aleatoriamente este entre 85 y 95
# for
misnumeros <- sample(85:95, 30, replace = TRUE)
misnumeros
## [1] 91 85 90 91 90 90 87 85 85 87 88 87 93 90 86 88 90 88 86 90 90 86 87
## [24] 86 85 89 92 91 90 89
print("Si un valor se encuentra entre 85 y 95 salir del ciclo")
## [1] "Si un valor se encuentra entre 85 y 95 salir del ciclo"
for (i in misnumeros) {
print (i)
if (i>=85 & i<=95)
break
}
## [1] 91
print("El valor se encuentra entre 85 y 95, salimos del ciclo")
## [1] "El valor se encuentra entre 85 y 95, salimos del ciclo"
# while
misnumeros <- sample(85:95, 30, replace = TRUE)
misnumeros
## [1] 87 87 89 95 94 90 86 88 92 85 86 87 94 93 92 90 88 89 94 89 93 93 88
## [24] 87 90 85 85 94 90 95
print("Si un valor se encuentra entre 85 y 95 salir del ciclo")
## [1] "Si un valor se encuentra entre 85 y 95 salir del ciclo"
i <- 1
while (TRUE) {
print (misnumeros[i])
if (misnumeros[i]>=85 & misnumeros[i]<=95)
break
i <- i + 1
}
## [1] 87
print("El valor se encuentra entre 85 y 95, salimos del ciclo")
## [1] "El valor se encuentra entre 85 y 95, salimos del ciclo"
# repeat
misnumeros <- sample(85:95, 30, replace = TRUE)
misnumeros
## [1] 94 88 94 91 92 93 95 90 90 88 95 86 89 95 91 88 86 92 95 89 85 91 90
## [24] 89 90 87 92 88 94 89
print("Si un valor se encuentra entre 85 y 95 salir del ciclo")
## [1] "Si un valor se encuentra entre 85 y 95 salir del ciclo"
i <- 1
repeat {
print (misnumeros[i])
if (misnumeros[i]>=85 & misnumeros[i] <= 95)
break
i <- i +1
}
## [1] 94
print("El valor se encuentra entre 85 y 95, salimos del ciclo")
## [1] "El valor se encuentra entre 85 y 95, salimos del ciclo"