set.seed(123)
ger <- round(runif(100, 0, 1.49))
pg = (sum(ger)/100)*100
varias.ban = replicate(150, round(runif(100, 0, 1.49)))
# View(varias.ban)
pg.50 = (colSums(varias.ban)/100)*100
hist(pg.50, breaks = 12, col = 'blue',
ylab = 'Frecuencia', xlab = 'Germinacion (%)',
main = 'Porcentaje de germinacion 150 bandejas',
ylim = c(0,40))
grid(10, col = 'gray10')

#Prueba de normalidad
#Ho: pg.50 ~ N
p.n1 = shapiro.test(pg.50)
ifelse(p.n1$p.value<0.05, 'Rechaza Ho', 'No Rechazo Ho')
## [1] "No Rechazo Ho"
#Tamano de muestra####
#Para estimar una proporcion de una poblacion finita (N)
#usando la tecnica de muestreo irrestricto aleatorio (MIA)
n.mia <-function(N, p, e, conf.lev, x){
Z = qnorm(p = (1-conf.lev)/2, lower.tail = FALSE)
n = ceiling((N*p*(1-p))/(((N-1)*(e/Z)^2)+(p*(1-p))))
fc = sqrt((N-n)/(N-1))
pe = x/n
li = ((pe)-Z*sqrt((pe)*(1-pe)/n))*fc
ls = ((pe)+Z*sqrt((pe)*(1-pe)/n))*fc
return(list(tam.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 pequeno 1% que el tamano es muy grande
t.m1 = n.mia(800, 0.5, 0.1, 0.95, 60)
t.m1
## $tam.muestra
## [1] 86
##
## $intervalo
## [1] 0.5677640 0.7512777
##
## $fc
## [1] 0.9453132
N = seq(1,800,1)
sample(x = N, size = t.m1$tam.muestra, replace = FALSE)
## [1] 260 597 214 524 440 620 250 591 235 499 66 48 745 317 643 404 81
## [18] 406 295 326 582 647 223 601 402 471 424 142 733 99 167 568 598 294
## [35] 212 744 299 508 366 331 474 688 412 239 757 482 374 593 452 232 497
## [52] 697 68 469 308 738 718 24 766 334 386 227 621 251 82 660 69 764
## [69] 644 747 537 611 98 743 676 2 729 164 694 571 736 132 612 202 740
## [86] 243
v.e = seq(0, 0.1, 0.01)
t.m = n.mia(800, 0.5, v.e, 0.95, 60)
plot(t.m$tam.muestra~v.e, type="l", main = 'Tamano de muestro en \n funcion del error de muestreo',
ylab='Tamano de muestra', xlab='Error de muestreo')
abline(h = 350, lty = 2)

df1 = data.frame(v.e, t.m)
# View(df1)
#Funcion sin nombre####
(function(x)x**3)(-2)
## [1] -8
(v1 = rnorm(100))
## [1] -1.912616646 -0.845393597 0.738740741 0.767169444 -1.474555542
## [6] 0.012681825 -1.864052240 0.885298129 0.492430265 1.747074009
## [11] -0.261999286 0.499754579 -0.688898769 -0.982579968 0.980700496
## [16] 0.923316480 0.330687285 0.456662528 0.316941840 0.409146927
## [21] 0.189341797 -1.319409387 -2.001210010 -1.318152050 1.246548956
## [26] -1.119782914 0.600113097 0.798221759 0.183880788 0.323802973
## [31] 0.650494425 1.582979542 -0.001953124 -0.308821787 -0.623122685
## [36] 0.938155892 0.102679059 1.087980075 -1.351199996 -0.455781034
## [41] -0.250835624 0.505347104 0.654022287 -0.215362310 0.226742328
## [46] -1.157339108 2.032800279 -0.258620548 -0.098180123 -0.353161254
## [51] -0.993105435 0.868923150 -1.816384259 -0.318847782 0.124840804
## [56] -1.468991956 1.068508602 -0.482179828 0.659615452 -1.817635788
## [61] -0.278583122 0.067735255 -1.350690770 0.919474362 0.272527744
## [66] -0.094616195 0.178303767 -0.053910448 0.670286243 0.182138332
## [71] 1.538611320 -0.416552562 0.874317166 0.140983640 2.161787266
## [76] 0.027619235 0.128342863 -0.352602254 -2.086877989 -1.973865512
## [81] -0.136036680 0.092192659 -0.690263563 0.615681633 1.361825953
## [86] 1.713136222 -2.179550769 0.809847801 0.946646649 0.692901377
## [91] 1.127856883 -0.147397247 -0.287952706 1.019327862 -0.676617134
## [96] 0.892826208 -0.801685930 -0.587178070 -0.699415253 0.882787587
#Evaluacion perezosa
ff <- function(a, b) a-a^2
ff(2, stop("Error si se evalua"))
## [1] -2
gg <- function(a) a-a^2
# gg(2, stop("Error si se evalua"))
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
comparar(2,1)
## [1] 1
comparar(1,1)
## [1] 0
x = 2
y = 1
ifelse(x<y, -1, ifelse(x>y, 1, 0))
## [1] 1
set.seed(123)
pH = round(runif(40, 4, 7.2),1)
mi.c <- function(datos){
salida = c()
for (i in 1:length(datos)) {
if(datos[i]<7) salida[i] = 'Acido'
if(datos[i]>7) salida[i] = 'Basico'
else if(datos[i] == 7) salida[i] = 'Neutro'
}
return(salida)
}
mi.c(pH)
## [1] "Acido" "Acido" "Acido" "Acido" "Neutro" "Acido" "Acido"
## [8] "Acido" "Acido" "Acido" "Basico" "Acido" "Acido" "Acido"
## [15] "Acido" "Acido" "Acido" "Acido" "Acido" "Basico" "Acido"
## [22] "Acido" "Acido" "Basico" "Acido" "Acido" "Acido" "Acido"
## [29] "Acido" "Acido" "Basico" "Acido" "Acido" "Acido" "Acido"
## [36] "Acido" "Acido" "Acido" "Acido" "Acido"
df3 = data.frame(pH, categoria = mi.c(pH))
# View(df3)
ifelse(pH<7, 'acido', ifelse(pH>7, 'basico', 'neutro'))
## [1] "acido" "acido" "acido" "acido" "neutro" "acido" "acido"
## [8] "acido" "acido" "acido" "basico" "acido" "acido" "acido"
## [15] "acido" "acido" "acido" "acido" "acido" "basico" "acido"
## [22] "acido" "acido" "basico" "acido" "acido" "acido" "acido"
## [29] "acido" "acido" "basico" "acido" "acido" "acido" "acido"
## [36] "acido" "acido" "acido" "acido" "acido"
#Prueba de normalidad varias variables
set.seed(123)
d1 = replicate(10, rnorm(50, 10, 1))
colnames(d1) = LETTERS[1:10]
# View(d1)
asd = apply(d1, 2, shapiro.test)
class(asd)
## [1] "list"
asd[[1]]
##
## Shapiro-Wilk normality test
##
## data: newX[, i]
## W = 0.98928, p-value = 0.9279
asd[[2]]$p.value
## [1] 0.9617732
mis.p = c()
for (i in 1:10) {
mis.p[i] = asd[[i]]$p.value
}
names(mis.p) = LETTERS[1:10]
mis.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(mis.p<0.05, 'No Normalidad', 'Normales')
## A B C D
## "Normales" "Normales" "Normales" "No Normalidad"
## E F G H
## "No Normalidad" "Normales" "Normales" "Normales"
## I J
## "Normales" "Normales"
set.seed(123)
#12 columnas, 30 datos ~ uniforme(li = 4, ls = 6.5)
#etiquetas en las columnas = letras de la 1 a la 12
#coeficiente de variacion por columna ???
#Utilizar for() para moverse de columna 1 a 12
#(sd()/mean())*100 : (desviacion / media)*100
#Presentar 10 medias, 10 desviasiones, 10 coeficientes de variacion
#coef.var < 20 Homogeneo, > 20 Heterogeneo, = 20 NA
datos = replicate(12, runif(30, 4, 6.5))
colnames(datos) = LETTERS[1:ncol(datos)]
med = des = cv = c()
for (i in 1:ncol(datos)) {
med[i] = mean(datos[,i])
des[i] = sd(datos[,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)))
rownames(sal) = LETTERS[1:ncol(datos)]
# View(sal)
des1 = apply(datos, 2, sd)
med1 = apply(datos, 2, mean)
cv1 = (des1/med1)*100
hh1 = ifelse(cv1<20, 'homo', ifelse(cv>20, 'hetero', NA))
##########
#Infijo#####
`+`(2,3)
## [1] 5
`-`(2,3)
## [1] -1
`*`(2,3)
## [1] 6
`if`(2>3, 'verdad', 'falso')
## [1] "falso"
`%M%` <- `*`
2%M%3
## [1] 6
m2 = matrix(rnorm(4), 2)
`IM` <- `solve`
IM(m2)
## [,1] [,2]
## [1,] -0.6354740 0.2567192
## [2,] -0.9274517 -0.7807119
##########
v1 = round(rnorm(10)); v1
## [1] 0 0 1 0 1 0 0 0 0 -1
class(v1)
## [1] "numeric"
m1 = matrix(1:9 , nrow = 3, ncol = 3); m1
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
class(m1)
## [1] "matrix"
l1 = list(v1, m1, LETTERS[1:5]); l1
## [[1]]
## [1] 0 0 1 0 1 0 0 0 0 -1
##
## [[2]]
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
##
## [[3]]
## [1] "A" "B" "C" "D" "E"
class(l1)
## [1] "list"
v1[5]
## [1] 1
m1[2,2]
## [1] 5
l1[[1]][5]
## [1] 1
l1[[2]]
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
l1[[2]][2,2]
## [1] 5
l1[[2]][,3]
## [1] 7 8 9
l1[[2]][2,]
## [1] 2 5 8
l1[[3]][4]
## [1] "D"