Primer documento RMarkdown - Publicacion en RPubs.com
Elevar al cubo
cubos <- function(x) x**3
cubos(1:5)
## [1] 1 8 27 64 125
v1 = seq(from = 0, to = 20, by = 2) #Seq: secuencias desde-hasta-paso
v1; cubos(v1)
## [1] 0 2 4 6 8 10 12 14 16 18 20
## [1] 0 8 64 216 512 1000 1728 2744 4096 5832 8000
No la conierte en una distribucion normal, solo hace su media = 0 y desv = 1
estandarizar <- function(x){
med = mean(x)
dv = x - med #Desvios
z = dv/sd(x)
par(mfrow=c(2,2)) #Parametro para varias graficas en una ventana
hist(x)
hist(dv)
hist(z)
return(list(med.dat = med, med.des = mean(dv),
var.dat = var(x), var.des = var(dv),
med.z = mean(z), var.z = var(z),
z = z))
}
set.seed(123) #se fija una semilla
estandarizar(rnorm(100, 5, 1))
## $med.dat
## [1] 5.090406
##
## $med.des
## [1] -1.865435e-16
##
## $var.dat
## [1] 0.8332328
##
## $var.des
## [1] 0.8332328
##
## $med.z
## [1] -2.043797e-16
##
## $var.z
## [1] 1
##
## $z
## [1] -0.71304802 -0.35120270 1.60854170 -0.02179795 0.04259548
## [6] 1.77983218 0.40589817 -1.48492941 -0.85149566 -0.58726835
## [11] 1.24195461 0.29513939 0.34000892 0.02221347 -0.70797086
## [16] 1.85854263 0.44636008 -2.25349176 0.66930255 -0.61698896
## [21] -1.26885349 -0.33783464 -1.22304003 -0.89754917 -0.78377819
## [26] -1.94683206 0.81876439 0.06898128 -1.34588242 1.27452758
## [31] 0.36815564 -0.42229479 0.88157948 0.86296437 0.80101058
## [36] 0.65537241 0.50778230 -0.16686565 -0.43422620 -0.51585092
## [41] -0.86009994 -0.32681639 -1.48529653 2.27707482 1.22429519
## [46] -1.32941869 -0.54040552 -0.61026684 0.75541982 -0.19037243
## [51] 0.17847258 -0.13031397 -0.14600575 1.40027842 -0.34637532
## [56] 1.56226982 -1.79571669 0.54141021 0.03664303 0.13752572
## [61] 0.31685861 -0.64934164 -0.46407310 -1.21490140 -1.27319995
## [66] 0.23347834 0.39197814 -0.04097396 0.91131364 2.14685001
## [71] -0.63697081 -2.62876100 1.00275711 -0.87597805 -0.85276181
## [76] 1.02448422 -0.41101270 -1.43635058 0.09957931 -0.25119772
## [81] -0.09272595 0.32303830 -0.50510289 0.60688103 -0.34058618
## [86] 0.26443017 1.10255872 0.37770550 -0.45610238 1.15949090
## [91] 0.98935390 0.50173432 0.16249260 -0.78691881 1.39156928
## [96] -0.75663177 2.29720706 1.57995139 -0.35725306 -1.22349625
estandarizar(runif(100,2,6))
## $med.dat
## [1] 3.944207
##
## $med.des
## [1] -7.103042e-17
##
## $var.dat
## [1] 1.386103
##
## $var.des
## [1] 1.386103
##
## $med.z
## [1] -5.748874e-17
##
## $var.z
## [1] 1
##
## $z
## [1] -0.84029420 1.61826399 0.39178189 0.09845350 -0.28361946
## [6] 1.33928538 -0.41436110 -0.67207186 -1.07160013 -1.06641378
## [11] -0.01362095 -0.79191722 -0.91664070 0.63983716 -1.48943276
## [16] 0.72979231 -0.45582182 -0.26197502 1.13782862 1.47046642
## [21] -0.69147494 1.61400301 0.82336460 0.68060298 -1.47183253
## [26] -0.30860214 -0.02788111 0.25210142 0.72098766 1.45968333
## [31] 0.44949049 -0.19579977 0.19035862 -1.45268904 -0.76510423
## [36] -0.30203874 -0.97952900 1.17512063 -1.13193336 1.07826062
## [41] 0.20648254 0.59886732 -1.06802166 0.49944809 -0.59178685
## [46] 0.81031784 -0.29596441 1.64203806 1.63538557 0.81761637
## [51] -0.77747158 -0.89784172 0.36351426 -0.74246119 0.15295202
## [56] 1.01667419 -1.08038077 -0.27741613 -0.04918052 1.29804038
## [61] 1.49374150 1.34516655 0.63919318 1.57684155 0.10326156
## [66] 0.30736468 -0.50867853 -0.47132813 -1.58333796 0.05694706
## [71] 1.30801756 -1.62996390 -1.40655533 -1.09345982 0.96585544
## [76] 0.84643335 1.65059718 -0.06652113 -1.39864798 0.55300242
## [81] 0.92596547 -1.18555012 -0.30396636 -0.88697851 -1.45445550
## [86] -0.30631712 -1.43077566 -0.88391699 -1.46576738 0.62592653
## [91] -0.63978691 -1.30916723 -1.40707525 1.33994459 0.91120063
## [96] 1.12306491 1.68547184 -1.29938895 -1.31487422 1.06267643
##Regresion Se crean variables de N y P para ver la importancia de la escala de grafica ademas de el valor de estandarizar
set.seed(123)
N = sort(rnorm(50, 4, 0.5))
P = sort(rnorm(50, 0.5, 0.01))
plot(N,P, pch = 19, col = 'blue', cex= 1.5,
ylim= c(0, 5), xlim = c(0,5))
grid(10)
#Regresion lineal simple####
mod1 = lm(P~N)
mod1
##
## Call:
## lm(formula = P ~ N)
##
## Coefficients:
## (Intercept) N
## 0.42369 0.01936
summary(mod1)
##
## Call:
## lm(formula = P ~ N)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.0051859 -0.0008680 0.0003719 0.0008153 0.0021135
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.4236910 0.0016234 260.99 <2e-16 ***
## N 0.0193600 0.0004015 48.22 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.001301 on 48 degrees of freedom
## Multiple R-squared: 0.9798, Adjusted R-squared: 0.9794
## F-statistic: 2325 on 1 and 48 DF, p-value: < 2.2e-16
abline(a = 0.423, b = 0.0193, col ='red')
abline(h = 0.423, lty = 2)
abline(v = 0, lty = 2)
text(1,0.423, expression(theta), pos=3)
angulo = atan(0.0193)*180/pi
angulo
## [1] 1.105671
text(1.6,0.423, paste('= ', round(angulo,2)), pos=3)
#Estandarizando valores N y P
N2 = estandarizar(N)$z
mean(N2); sd(N2)
## [1] 1.251386e-16
## [1] 1
P2 = estandarizar(P)$z
mean(P2); sd(P2)
## [1] -5.273074e-15
## [1] 1
plot(P2~N2, col = 'blue', pch = 19)
mod2 = lm(P2~N2)
summary(mod2)
##
## Call:
## lm(formula = P2 ~ N2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.57274 -0.09587 0.04108 0.09004 0.23342
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.381e-15 2.032e-02 0.00 1
## N2 9.898e-01 2.053e-02 48.22 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1437 on 48 degrees of freedom
## Multiple R-squared: 0.9798, Adjusted R-squared: 0.9794
## F-statistic: 2325 on 1 and 48 DF, p-value: < 2.2e-16
angulo2 = atan(9.898e-1)*180/pi
angulo2
## [1] 44.7063
#Calculo de correlaciones
cor(P,N)
## [1] 0.9898341
cor(P2,N2)
## [1] 0.9898341
fert = gl(2, 25, 50, labels = c('control','quimico'))
tbl1 = data.frame(P,N,P2,N2,fert)
#View(tbl1)
Prueba de Hipotesis t-student
Ho: mu(control(N)) == mu(quimico(N))
Ha: mu(control(N)) != mu(quimico(N))
mi.pt <- function(x1,x2, conf.lev){
n1 = length(x1)
n2 = length(x2)
s1 = sd(x1)
s2 = sd(x2)
tc = abs((mean(x1)-mean(x2))/
sqrt(((((n1-1)*s1^2)+((n2-1)*s2^2))/
(n1+n2-2))*((1/n1)+(1/n2))))
p_v = pt(q = tc, df = (n1+n2-2), lower.tail = FALSE)
desi = ifelse(p_v < (1-conf.lev)/2, 'Rechazo Ho', 'NO rechazo Ho')
return(desi)
}
mi.pt(tbl1$P[1:25],tbl1$P[26:50], 0.95)
## [1] "Rechazo Ho"
mi.pt(tbl1$P2[1:25],tbl1$P2[26:50], 0.95)
## [1] "Rechazo Ho"
t.test(tbl1$P[1:25],tbl1$P[26:50])
##
## Welch Two Sample t-test
##
## data: tbl1$P[1:25] and tbl1$P[26:50]
## t = -8.6607, df = 47.974, p-value = 2.262e-11
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.01724883 -0.01074889
## sample estimates:
## mean of x mean of y
## 0.4944647 0.5084635
tbl2 = split(tbl1$P, tbl1$fert)
PC = tbl2$control
PQ = tbl2$quimico
mi.pt(PC,PQ, 0.95)
## [1] "Rechazo Ho"
(x = 1:10)
## [1] 1 2 3 4 5 6 7 8 9 10
y = 1:10
ley.gases <- function(n, R = 0.082, Tp, v, gra = F){ #Argumentos fijos: logicos, numericos, caracteres
p = n*R*Tp/v
if(gra) plot3d(Tp, v, p, col = rainbow(100))
return(p)
}
p1 = ley.gases(n = 1, Tp = 273, v = seq(1,20))
plot(seq(1,20), p1, type = 'l')
require(rgl)
## Loading required package: rgl
p2 = ley.gases(n = 1,
Tp = rep(seq(273,303,5), each = 20),
v = rep(seq(1,20), 7), gra = )
#TamaƱo de muestra####
set.seed(123)
var = replicate(200, sample(c(0,1),
size = 100,
replace = T,
prob = c(0.2,0.8)))
colSums(var)
## [1] 82 81 81 81 81 73 78 79 87 79 85 82 78 84 75 85 78 72 77 87 81 79 77
## [24] 82 84 80 82 78 79 81 77 80 75 77 82 78 80 72 80 74 80 82 84 80 85 85
## [47] 81 79 89 82 73 79 83 83 79 79 86 83 78 71 82 78 87 85 79 80 79 81 86
## [70] 78 77 80 77 81 81 85 86 84 75 76 78 81 82 90 88 80 78 82 84 86 82 81
## [93] 83 80 77 81 87 79 77 74 80 83 86 70 84 84 78 87 76 77 79 81 80 76 78
## [116] 80 77 78 81 81 77 76 84 74 76 81 85 76 77 80 76 77 79 79 79 88 77 73
## [139] 78 82 73 80 83 80 79 83 80 81 80 77 83 81 83 79 85 82 80 78 83 80 84
## [162] 80 76 84 76 79 73 79 80 74 86 76 75 89 79 80 83 77 77 83 80 82 82 82
## [185] 82 84 86 87 74 84 77 85 82 81 84 84 82 79 86 82
hist(colSums(var))
hist(round(runif(200,0,1)))
var2 = replicate(2000,round(runif(200,0,1)))
pg2 = (colSums(var2)/200)*100
hist(pg2)
Otra funcion
TM <- function(N,p,e,Z){
(N*p*(1-p))/(((N-1)*(e/Z))^2+(p*(1-p)))
}
sal = 'Hola Carlos.'
n1 = 2
n2 = 3
str(sal)
## 'Hola Carlos.'
print('Suma = ', n1+n2)
## Suma = 5
Nota: dentro del documento el parametro echo = FALSE puede ocultar el codigo R, auqneu si muestra las salidas