#Taller Uno Rstudio

##Punto Uno

n=40
set.seed(1234)
edades=data.frame(id=1:n,
                edad=round(runif(n=n,min=18,max=70),0)
                )
str(edades)
## 'data.frame':    40 obs. of  2 variables:
##  $ id  : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ edad: num  24 50 50 50 63 51 18 30 53 45 ...
summary(edades)
##        id             edad      
##  Min.   : 1.00   Min.   :18.00  
##  1st Qu.:10.75   1st Qu.:30.00  
##  Median :20.50   Median :38.00  
##  Mean   :20.50   Mean   :41.80  
##  3rd Qu.:30.25   3rd Qu.:53.25  
##  Max.   :40.00   Max.   :70.00
mean(edades$edad)
## [1] 41.8
median(edades$edad)
## [1] 38
max(edades$edad)
## [1] 70
min(edades$edad)
## [1] 18

##Punto Dos

productoUno = c(1200,1800,2100,3500)
productoDos = c(2200,1800,2300,3300)
productoTres = c(1500,1400,2200,2800)
productoCuatro = c(2500,2100,2700,4000)
productoCinco = c(1900,2200,1800,3000)

ecom=(c(productoUno,productoDos,productoTres,productoCuatro,productoCinco))

matrizv=matrix(ecom,
               nrow=5,
               ncol=4,
               byrow=TRUE)

rownames(matrizv)=c("Producto 1","Producto 2","Producto 3","Producto 4","Producto 5")
colnames(matrizv)=c("Q1","Q2","Q3","Q4")

rowSums(matrizv)
## Producto 1 Producto 2 Producto 3 Producto 4 Producto 5 
##       8600       9600       7900      11300       8900
colSums(matrizv)
##    Q1    Q2    Q3    Q4 
##  9300  9300 11100 16600

##Punto Tres

crear_cliente=function(id,nombre,edad,ingmen,saldoact){
  
categoria_riesgo=ifelse(saldoact>=0,"Estable","Riesgo Alto")
  
  cliente_lista=list(
    id=id,
    nombre=nombre,
    edad=edad,
    ingmen=ingmen,
    saldoact=saldoact,
    riesgo=categoria_riesgo
  )
  
return(cliente_lista)
  
}

nuevo_cliente=crear_cliente(id="CLiente 1",
                            nombre="Victor Torres",
                            edad=34,
                            ingmen=1800,
                            saldoact=1200
                            )
print(nuevo_cliente)
## $id
## [1] "CLiente 1"
## 
## $nombre
## [1] "Victor Torres"
## 
## $edad
## [1] 34
## 
## $ingmen
## [1] 1800
## 
## $saldoact
## [1] 1200
## 
## $riesgo
## [1] "Estable"

##Punto Cuatro

cl=50
set.seed(1234)
nomb=c("Victor","Diego","Susana","Hernán","Manuel")
no=sample(nomb,size=cl,replace=TRUE)
anos=round(runif(n=cl,min=16,max=70))
ing=round(rnorm(cl,mean=3000,sd=500))
estciv=c("Soltero","Casado","Divorciado","Viudo")
ec=sample(estciv,size=cl,replace=TRUE)

Tienda=data.frame(ID=1:cl,
                  Nombre=as.factor(no),
                  Edadd=anos,
                  Ingresoss=ing,
                  Estado_civ=as.factor(ec))

str(Tienda)
## 'data.frame':    50 obs. of  5 variables:
##  $ ID        : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Nombre    : Factor w/ 5 levels "Diego","Hernán",..: 2 1 3 2 5 3 2 1 1 2 ...
##  $ Edadd     : num  23 22 44 32 17 33 56 18 47 31 ...
##  $ Ingresoss : num  2977 3163 3083 3097 2628 ...
##  $ Estado_civ: Factor w/ 4 levels "Casado","Divorciado",..: 2 4 2 1 2 4 4 2 3 2 ...
summary(Tienda)  
##        ID           Nombre       Edadd         Ingresoss         Estado_civ
##  Min.   : 1.00   Diego :10   Min.   :17.00   Min.   :1995   Casado    :10  
##  1st Qu.:13.25   Hernán:11   1st Qu.:27.25   1st Qu.:2788   Divorciado:16  
##  Median :25.50   Manuel: 8   Median :40.50   Median :3090   Soltero   :10  
##  Mean   :25.50   Susana:11   Mean   :41.78   Mean   :3125   Viudo     :14  
##  3rd Qu.:37.75   Victor:10   3rd Qu.:56.00   3rd Qu.:3352                  
##  Max.   :50.00               Max.   :70.00   Max.   :4511

###Es importante convertir los caracteres en Factor, ya qu Rstudio para realizar algoritmos o cálculos matemáticos con palabras, el Factor nos permite tener un orden lógico de las palabras, además, para el contexto nos permite calcular la cantidad de x palabra que hay en el dataframe, esto para analisis estadístico es muy importante, asimismo, como Rstudio guarda el factor como una categoria numérica, se optimiza el uso de memoria

###El resumen estadístico nos inca que hay 10 Diego, 11 Hernan, 8 Manuel, 11 Susanda y 10 Victor. Asimismo, que la edad mínima son 17 años y la edad máxima son 70 y que la media son 41,78. Para el apartado de ingreso, la persona que menos gana es 1995$ y la que mas gana es 4511, teniendo un ingreso promedio de 3125$. Además 10 personas están casadas, 16 divorciados, 10 solteros y 14 viudos.

Filtro_clientes=Tienda[Tienda$Ingresoss>3000 & Tienda$Estado_civ=="Soltero",]
clasing=c()
for(Ingresoss in Tienda$Ingresoss){
  if(Ingresoss<2000){
    clasing=c(clasing,"Bajo")
  }else if(Ingresoss>=2000 & Ingresoss<4000){
    clasing=c(clasing,"Medio")
  }else{
    clasing=c(clasing,"Alto")
  }
  
}

Tienda$CategoriaIngresos=as.factor(clasing)

str(Tienda)
## 'data.frame':    50 obs. of  6 variables:
##  $ ID               : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Nombre           : Factor w/ 5 levels "Diego","Hernán",..: 2 1 3 2 5 3 2 1 1 2 ...
##  $ Edadd            : num  23 22 44 32 17 33 56 18 47 31 ...
##  $ Ingresoss        : num  2977 3163 3083 3097 2628 ...
##  $ Estado_civ       : Factor w/ 4 levels "Casado","Divorciado",..: 2 4 2 1 2 4 4 2 3 2 ...
##  $ CategoriaIngresos: Factor w/ 3 levels "Alto","Bajo",..: 3 3 3 3 3 3 1 1 3 3 ...
View(Tienda)

##Punto Cinco

n=100
set.seed(1234)
temp=round(runif(n=n,min=25,max=35),1)
cont=1

repeat{
  lectura=temp[cont]
  print(paste("Muestra",cont,":",lectura))
  if(lectura>30){
    print("¡PELIGRO! la temperatura es mayor a 30°, DETENER SISTEMA")
    break
  }
  cont=cont+1
}
## [1] "Muestra 1 : 26.1"
## [1] "Muestra 2 : 31.2"
## [1] "¡PELIGRO! la temperatura es mayor a 30°, DETENER SISTEMA"