#####################################################################################
##Estructura de Datos################################################################
#####################################################################################

#Vectores############################################################################

#NumƩricos###########################################################################

a<-1.7  #asignando al objeto a el valor de 1.7
a=1.7   #asignando al objeto a el valor de 1.7
assign("a", 1.7)  #asignando al objeto a el valor de 1.7
b<-c(10,11,15,19) #asignando al objeto b los valores 10, 11, 15, 19
print(b) #mostrar valores del objeto b
## [1] 10 11 15 19
##Secuencias y Repeticiones##

x<-1:20  #secuencia de nĆŗmeros del 1 al 20
seq(1:20)  #otra forma secuencia de nĆŗmeros del 1 al 20
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
seq(0, 10, by=0.5) #secuencia de nĆŗmeros del 1 al 10 con un incremento de 0.5
##  [1]  0.0  0.5  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0
## [16]  7.5  8.0  8.5  9.0  9.5 10.0
seq(from=0, to=10, by=0.5) #secuencia de nĆŗmeros del 1 al 10 con un incremento de 0.5
##  [1]  0.0  0.5  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0
## [16]  7.5  8.0  8.5  9.0  9.5 10.0
seq(5,10,length=30) #30 nĆŗmeros del 5 al 10 sin importar el incremento
##  [1]  5.000000  5.172414  5.344828  5.517241  5.689655  5.862069  6.034483
##  [8]  6.206897  6.379310  6.551724  6.724138  6.896552  7.068966  7.241379
## [15]  7.413793  7.586207  7.758621  7.931034  8.103448  8.275862  8.448276
## [22]  8.620690  8.793103  8.965517  9.137931  9.310345  9.482759  9.655172
## [29]  9.827586 10.000000
my_seq<-seq(5,10,length=30) #asignando a my_seq el vector de secuencia
rep(0, times=40) #función para crear un vector que contiene 40 elementos y todos son ceros 
##  [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [39] 0 0
rep(c(0,1,2), times=10)  #si se quiere crear un vector que repita 10 veces el vector (0,1,2)
##  [1] 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2
rep(c(0, 1, 2), each = 10)  #Ahora lo que queremos que contenga 10 ceros, 10 unos y 10 dos.
##  [1] 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2
##Posiciones en el vector##

x[3]  #queremos conocer que elemento estÔ en la posición 3 del vector x
## [1] 3
x[c(3,4)]  # posiciones 3 y 4 del vector x
## [1] 3 4
x[1:10]  #posiciones de la 1 a la 10
##  [1]  1  2  3  4  5  6  7  8  9 10
##Operaciones##

y<-c(2,7,9,10) #generamos un vector "y" con los valores 2, 7, 9 y 10
y*y  #multiplicando cada valor 
## [1]   4  49  81 100
1/y  #el inverso de "y"
## [1] 0.5000000 0.1428571 0.1111111 0.1000000
y-1 #restando 1 a cada elemento del vector
## [1] 1 6 8 9
min(y) #valor minimo del vector
## [1] 2
max(y) #valor mƔximo
## [1] 10
sum(y)
## [1] 28
#Lógicos###########################################################################

num_vect<-c(0.5,55,-10,6)  #se genera un vector con estos valores y se asigna a num_vect
tf<-num_vect<1  # se quiere identificar cuƔles elementos del vector num_vect son menores a 1 y se guarda el resultado en tf
num_vect>=6    # se quiere identificar cuƔles elementos del vector num_vect son mayores o iguales a 6
## [1] FALSE  TRUE FALSE  TRUE
#<, >=` son operadores lógicos. Otros son: >`, `<=`, `==` para igualdad exacta, y `!=` para diferencia

A<-c(0,1,12)
B<-c(3,4,5)

condicion1<-A>10 & B >10
condicion2<-A >10 | B >10
condicion3<-A!=0

##Ejercicios##

#1.Construya un objeto llamado Z que contenga el valor de 11.5.

#2.Construya un vector llamado A que contenga los valores 2,3,6,7,8.5 y 10.

#3.Imprima el  objeto A en la consola para consultar los valores del vector.

#4.SĆŗmele 20 a cada elemento del vector A e imprima los resultados en la consola.

#5.Súmele 10 y divida por 2 el vector A, el resultado guÔrdelo en un objeto llamado K.

#6.Obtenga el tercer valor del objeto K e imprima el resultado en la consola.


######Tablas de frecuencia###########

#lanzamiento de una moneda 10 veces

tabla=sample(0:1, 10, replace=TRUE)
print(tabla)
##  [1] 0 1 1 1 1 0 1 0 0 0
prop.table(table(tabla))
## tabla
##   0   1 
## 0.5 0.5
######Estadisticos de Tendencia Central########

#promedio
a=c(1,2,3,4)
mean(a)
## [1] 2.5
b=seq(1:10)
mean(b)
## [1] 5.5
#Mediana
median(a)
## [1] 2.5
median(b)
## [1] 5.5
#Moda
c=c(1,1,2,3,5,6)
mode(c)
## [1] "numeric"
#Cuartiles
c=c(1,1,2,3,5,6)
quantile(c,0.25)
##  25% 
## 1.25
quantile(c,0.75)
## 75% 
## 4.5
summary(c)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    1.25    2.50    3.00    4.50    6.00
######Medidas de dispersion###########

var(c)  #no se interpreta
## [1] 4.4
sd(c)
## [1] 2.097618
rango=max(c)-min(c)

promedio=mean(c)
desviacion=sd(c)
cv=desviacion/promedio


#####MƩtodos grƔficos#################

d=seq(5,100,length=60)
hist(d)  #Histograma

hist(d,col="blue",main="Histograma")

hist(d,col="blue",main="Histograma",xlim=c(0,200), ylim = c(0,10))

boxplot(d)  #diagrama de cajas

boxplot(d,col="green",main="Diagrama de Cajas")

boxplot(d,col="green",main="Diagrama de Cajas",ylim=c(0,120))

y=prop.table(table(tabla))
barplot(y)  #diagrama de barras

x=seq(5,20,length=10)
z=seq(10,30,length=10)

plot(x,z)

### Ejercicio Situación 2 ################

#importar datos desde excel
datos1=read.table("clipboard",header=TRUE,dec=".")  #leer los datos que se han copiado
class(datos1)
## [1] "data.frame"
summary(datos1)
##  Intervencion            Peso      
##  Length:90          Min.   :26.92  
##  Class :character   1st Qu.:28.49  
##  Mode  :character   Median :29.36  
##                     Mean   :29.25  
##                     3rd Qu.:29.94  
##                     Max.   :31.18
datos1[1:50,2] #opc1
##  [1] 29.61 27.99 30.17 30.97 28.93 27.27 28.24 29.50 27.89 30.23 27.68 28.48
## [13] 28.89 29.28 29.84 27.86 27.51 29.16 29.16 28.23 28.55 29.28 28.74 28.24
## [25] 26.92 28.17 27.81 28.31 29.87 28.66 29.24 28.27 29.14 27.26 29.68 28.51
## [37] 29.56 29.37 27.07 28.91 28.24 29.66 27.82 27.72 28.74 28.80 28.47 29.50
## [49] 27.97 28.46
datos1$Peso[1:50] #opc2
##  [1] 29.61 27.99 30.17 30.97 28.93 27.27 28.24 29.50 27.89 30.23 27.68 28.48
## [13] 28.89 29.28 29.84 27.86 27.51 29.16 29.16 28.23 28.55 29.28 28.74 28.24
## [25] 26.92 28.17 27.81 28.31 29.87 28.66 29.24 28.27 29.14 27.26 29.68 28.51
## [37] 29.56 29.37 27.07 28.91 28.24 29.66 27.82 27.72 28.74 28.80 28.47 29.50
## [49] 27.97 28.46
pre=which(datos1$Intervencion=="Antes")
peso_antes=datos1[pre,2] #opc3

#Indicadores
mean(peso_antes)
## [1] 28.6766
median(peso_antes)
## [1] 28.605
sd(peso_antes)  
## [1] 0.8831821
summary(peso_antes)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   26.92   28.04   28.61   28.68   29.28   30.97
#Graficos
hist(peso_antes,col="gray",main="Peso del Chocolate",xlim=c(26,32))
abline(v=c(28.5,31.5),col="red",lwd=3)

boxplot(peso_antes,col="gray",main="Peso del Chocolate",ylim=c(26,32))
abline(h=c(28.5,31.5),col="red",lwd=3)