Ejercicio de germinación

set.seed(123)
ger= round(runif(n = 100,min = 0,max = 1.49))
pg=(sum(ger)/100)*100;pg
## [1] 67
varias.ban=replicate(150,round(runif(n = 100,min = 0,max = 1.49)))
pg.50=(colSums(varias.ban)/100)*100
hist(pg.50, breaks=10)

#Prueba de normalidad
#Ho:pg.50~N
p.n1=shapiro.test(pg.50)
ifelse(p.n1$p.value<0.05,"Rechaza H0", "No rechazo H0")
## [1] "No rechazo H0"

Tamaño de muestra con intervalos de confianza

####Tamaño de muestra 
#Para estimar una proporcion de una poblacion finita N
#Usando la tecnica de muestreo irrestrico aleatorio
n.muestra.p <- function(N, p, e=0.05, conf.lev,x){
  z=qnorm(p = (1-conf.lev)/2,lower.tail = F)
  n=ceiling(N*p*(1-p)/((N-1)*(e/z)^2+p*(1-p)))
  fc=sqrt((N-n)/(N-1))
  li=(x/n)-z*(sqrt((x/n)*(1-(x/n))/n))
  ls=(x/n)+z*(sqrt((x/n)*(1-(x/n))/n))
  return(list(tamano.muestra=n, intervalo =c(li,ls),fc=fc))
}
# n.mia(800, 0.5, 0.01, 0.95, x = 60)#El error que se pide es tan pequeño 1% que el tamaño es muy grande
t.m1 = n.muestra.p(800, 0.5, 0.1, 0.95, 60)
t.m1 
## $tamano.muestra
## [1] 86
## 
## $intervalo
## [1] 0.6006094 0.7947394
## 
## $fc
## [1] 0.9453132
N = seq(1,800,1)

Tamaño de muestra sin intervalos de confianza

n.muestra <- function(N, p, e=0.05, z=1.96){
  n=ceiling(N*p*(1-p)/((N-1)*(e/z)^2+p*(1-p)))
  
  
}

v.e2 = seq(0, 0.1, 0.01)
t.m2 = n.muestra(800, 0.5, v.e2, 0.95)


plot(t.m2~v.e2, type="l", main = 'Tamaño de muestro en \n funcion del error de muestreo',
     ylab='Tamaño de muestra', xlab='Error de muestreo')

Funciones sin nombre y perezosas

##Funcion sin nombre 
(function(x)x**3)(-2)
## [1] -8
(rnorm(100))
##   [1] -0.456855638 -0.622156929  0.130613556 -0.482700178 -0.533934670
##   [6] -1.387372013  1.599223915  0.905379742 -1.268581313 -0.313621099
##  [11]  0.659389492 -0.563385904  0.044867265  0.117080937  1.630563696
##  [16] -0.784991867  0.766974275 -0.593421250 -0.276484610 -0.049791530
##  [21]  0.312162857  0.106990675 -0.481422183 -0.012709869  0.253134522
##  [26]  0.418049833 -1.341617394 -0.220873079  1.801593357 -0.568218360
##  [31]  0.052001235  0.995726287 -1.219920607 -1.319228472  1.170187522
##  [36]  0.628303270 -1.104889144  1.477724739  1.007954749  1.749528328
##  [41] -1.209616775  1.041710401  0.098161616 -1.912616646 -0.845393597
##  [46]  0.738740741  0.767169444 -1.474555542  0.012681825 -1.864052240
##  [51]  0.885298129  0.492430265  1.747074009 -0.261999286  0.499754579
##  [56] -0.688898769 -0.982579968  0.980700496  0.923316480  0.330687285
##  [61]  0.456662528  0.316941840  0.409146927  0.189341797 -1.319409387
##  [66] -2.001210010 -1.318152050  1.246548956 -1.119782914  0.600113097
##  [71]  0.798221759  0.183880788  0.323802973  0.650494425  1.582979542
##  [76] -0.001953124 -0.308821787 -0.623122685  0.938155892  0.102679059
##  [81]  1.087980075 -1.351199996 -0.455781034 -0.250835624  0.505347104
##  [86]  0.654022287 -0.215362310  0.226742328 -1.157339108  2.032800279
##  [91] -0.258620548 -0.098180123 -0.353161254 -0.993105435  0.868923150
##  [96] -1.816384259 -0.318847782  0.124840804 -1.468991956  1.068508602
#Evaluacion perezosa 
ff=function(a,b) a-a**2
ff(2, stop("Error si se evalua"))
## [1] -2
fh= function(a,b=log(a)) a+b^-1
fh(4)
## [1] 4.721348
fk= function(u) function(v) u^2+v
fk(3) (6)
## [1] 15
################# 
comparar<- function (x,y){
  if(x<y){
    -1
  }  else if(x>y){
    1
  } else {
    0
  }
  
}

comparar(1,2)
## [1] -1
set.seed(123)
pH= runif(40,4,7.2);pH
##  [1] 4.920248 6.522576 5.308726 6.825656 7.009495 4.145781 5.689938
##  [8] 6.855741 5.764592 5.461167 7.061867 5.450669 6.168226 5.832427
## [15] 4.329359 6.879440 4.787481 4.134591 5.049346 7.054412 6.846526
## [22] 6.216971 6.049622 7.181663 6.098259 6.267297 5.741011 5.901254
## [29] 4.925311 4.470764 7.081678 6.887357 6.210257 6.545496 4.078764
## [36] 5.528947 6.427071 4.692505 5.018179 4.741203
mic= function (datos) {
  salida= c()
  for (i in 1: length(datos))
    if( datos[i] < 7) salida[i]= "Ácido" 
    if( datos[i] > 7 ) salida[i]= "Alcalino"
    else if (datos[i]== 7) salida[i]= "Neutro"
    return(salida)
}

mic(pH)
##  [1] "Ácido" "Ácido" "Ácido" "Ácido" NA      "Ácido" "Ácido" "Ácido"
##  [9] "Ácido" "Ácido" NA      "Ácido" "Ácido" "Ácido" "Ácido" "Ácido"
## [17] "Ácido" "Ácido" "Ácido" NA      "Ácido" "Ácido" "Ácido" NA     
## [25] "Ácido" "Ácido" "Ácido" "Ácido" "Ácido" "Ácido" NA      "Ácido"
## [33] "Ácido" "Ácido" "Ácido" "Ácido" "Ácido" "Ácido" "Ácido" "Ácido"

Prueba de normalidad

set.seed(123)
d1=replicate(10, rnorm(50,10,1))
colnames(d1)=LETTERS[1:10]


v.p=c()
ads=apply(d1,2, shapiro.test)

for(i in 1:10){
  v.p[i]=ads [[i]]$p.value
}
names(v.p)= LETTERS[1:10]
v.p
##           A           B           C           D           E           F 
## 0.927856832 0.961773190 0.281396250 0.009421849 0.005686851 0.365241861 
##           G           H           I           J 
## 0.667517961 0.776441602 0.737835110 0.305362922
ifelse(v.p<0.05, "No normalidad", "Normalidad")
##               A               B               C               D 
##    "Normalidad"    "Normalidad"    "Normalidad" "No normalidad" 
##               E               F               G               H 
## "No normalidad"    "Normalidad"    "Normalidad"    "Normalidad" 
##               I               J 
##    "Normalidad"    "Normalidad"
set.seed(123)
d2=replicate(12, runif(30,4,6.5))
colnames(d2)=LETTERS[1:12]

## hallar el coeficiente de variacion de cada columna con for
med = des = cv = c()
for (i in 1:ncol(d2)) {
  med[i] = mean(d2[,i])
  des[i] = sd(d2[,i])
  cv[i] = (des[i]/med[i])*100
}
sal = data.frame(medias = med, desviacion = des, coef.var = cv,
                 HH = ifelse(cv<20, 'homo', ifelse(cv>20, 'heteto', NA)))
sal
##      medias desviacion coef.var   HH
## 1  5.431000  0.7284059 13.41200 homo
## 2  5.096602  0.7249060 14.22332 homo
## 3  5.281530  0.7011883 13.27624 homo
## 4  5.298138  0.7057547 13.32081 homo
## 5  5.194846  0.7333837 14.11753 homo
## 6  5.200895  0.5320166 10.22933 homo
## 7  5.319808  0.6627810 12.45874 homo
## 8  5.243719  0.6881637 13.12358 homo
## 9  5.367691  0.6659020 12.40574 homo
## 10 5.056067  0.8519794 16.85064 homo
## 11 5.167820  0.7865021 15.21922 homo
## 12 5.353767  0.6553045 12.24006 homo

Infijos

`+`(2,3)
## [1] 5
`-`(2,2)
## [1] 0
`*`(2,2)
## [1] 4
m2=matrix(rnorm(4),2)
`IM` <- `solve`
IM(m2)
##            [,1]       [,2]
## [1,] -0.6354740  0.2567192
## [2,] -0.9274517 -0.7807119