Nombre: Manejo de ciclos y condicionales en R
Objetivo: Realizar operaciones de recorrido de vectores por medio de ciclos en R y realizar algunas operaciones haciendo uso de condicionales en R
Descripción.A través del uso de mecanismos de flujos de control, mediante ciclos y condiocionales en R, ejecutar operaciones.
Generar una secuencia de 20 números de 5 en 5 comenzando en 10 y recorrer e imprimir la variable por medio de ciclo for, while y repeat
For
var1 <- 10
for (var1 in seq(5,100,5))
{
print(var1+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
var1 <-5
while (var1<=105) {
var1 <- var1 + 5
if (var1 >=10 & var1 <= 105)
print(var1)}
## [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
var1 <-10
repeat
{
print (var1)
var1 <- var1 + 5
if (var1 >= 110)
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 una semilla de set.seed(50) para generar números aleatorios
set.seed(50)
var1 <- sample(1:10,50 ,replace = TRUE)
print(var1)
## [1] 8 5 3 8 6 1 7 7 1 2 4 3 7 1 3 7 9 4 1 2 7 2 8
## [24] 9 4 7 6 3 4 4 4 5 5 7 3 7 2 8 4 5 4 9 3 1 1 8
## [47] 10 5 8 9
Generar 30 números aleatorios de entre 80 y 100 con valores repetidos y recorrer por medio de ciclos for, while y repeat
For
set.seed(50)
var1 <- sample(80:100,30 ,replace = TRUE)
for (i in var1)
{
print(i)
}
## [1] 94
## [1] 89
## [1] 84
## [1] 96
## [1] 90
## [1] 80
## [1] 94
## [1] 93
## [1] 80
## [1] 82
## [1] 88
## [1] 85
## [1] 93
## [1] 81
## [1] 85
## [1] 94
## [1] 97
## [1] 87
## [1] 81
## [1] 83
## [1] 92
## [1] 84
## [1] 94
## [1] 97
## [1] 86
## [1] 93
## [1] 92
## [1] 85
## [1] 86
## [1] 87
While
set.seed(50)
var1 <- sample(80:100,30 ,replace = TRUE)
ejemp1<-1
while(ejemp1<=length(var1))
{
print(var1[ejemp1])
ejemp1<-ejemp1+1
}
## [1] 94
## [1] 89
## [1] 84
## [1] 96
## [1] 90
## [1] 80
## [1] 94
## [1] 93
## [1] 80
## [1] 82
## [1] 88
## [1] 85
## [1] 93
## [1] 81
## [1] 85
## [1] 94
## [1] 97
## [1] 87
## [1] 81
## [1] 83
## [1] 92
## [1] 84
## [1] 94
## [1] 97
## [1] 86
## [1] 93
## [1] 92
## [1] 85
## [1] 86
## [1] 87
Repeat
set.seed(50)
var1 <- sample(80:100,30 ,replace = TRUE)
ejemp1<-1
repeat
{
print(var1[ejemp1])
ejemp1<-ejemp1+1
if (ejemp1>length(var1))
break()
}
## [1] 94
## [1] 89
## [1] 84
## [1] 96
## [1] 90
## [1] 80
## [1] 94
## [1] 93
## [1] 80
## [1] 82
## [1] 88
## [1] 85
## [1] 93
## [1] 81
## [1] 85
## [1] 94
## [1] 97
## [1] 87
## [1] 81
## [1] 83
## [1] 92
## [1] 84
## [1] 94
## [1] 97
## [1] 86
## [1] 93
## [1] 92
## [1] 85
## [1] 86
## [1] 87
La misma opción anterior pero mediante una condición if salir y romper (break) el ciclo para cuando el valor generado aleatoriamente esté entre 85 y 95
For
set.seed(50)
numale <- sample(85:95, 30, replace = TRUE)
numale
## [1] 92 89 87 93 90 85 92 92 85 86 89 87 92 85 88 92 94 89 85 86 91 87 92
## [24] 94 88 92 91 87 88 89
for (i in numale) {
print (i)
if (i>=80 & i<=95)
break
}
## [1] 92
print ("salimos del ciclo")
## [1] "salimos del ciclo"
While
set.seed(50)
numale <- sample(85:95, 30, replace = TRUE)
numale
## [1] 92 89 87 93 90 85 92 92 85 86 89 87 92 85 88 92 94 89 85 86 91 87 92
## [24] 94 88 92 91 87 88 89
i <- 1
while (TRUE) {
print (numale[i])
if (numale[i]>=85 & numale[i]<=95)
break
i <- i + 1
}
## [1] 92
print ("salimos del ciclo")
## [1] "salimos del ciclo"
Repeat
set.seed(50)
numale <- sample(85:95, 30, replace = TRUE)
numale
## [1] 92 89 87 93 90 85 92 92 85 86 89 87 92 85 88 92 94 89 85 86 91 87 92
## [24] 94 88 92 91 87 88 89
i <- 1
repeat {
print (numale[i])
if (numale[i]>=85 & numale[i] <= 95)
break
i <- i +1
}
## [1] 92
print ("salimos del ciclo")
## [1] "salimos del ciclo"