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