Ejemplo 1
R0 = function(a,b,c) b/(a+c)
#Pruebas
R0(2,2,1)
## [1] 0.6666667
Ejemplo2
TMB<-function(Sexo,Altura,Peso,Edad){
if(Sexo=="mujer"){ 655 + (9.6 * Peso) + (1.8 * Altura) - (4.7 * Edad)
}else{ 66 + (13.7 * Peso) + (5 * Altura) - (6.8 * Edad) }
}
TMB("hombre",170,57,32)
## [1] 1479.3
Supongase que se tiene una ventana de tiempo de longitud 20 años y queremos analizar una variable cada dos años
particion = seq(1,20, by =2)
particion
## [1] 1 3 5 7 9 11 13 15 17 19
particion[2]#acceder a la entrada 2
## [1] 3
También lo podemos utilizar para generar muestras seudoaleatorias o aleatorias
set.seed(1) # "semilla"
x = sample(1:10, 5) # muestra seudoaleatoria de 5 números enteros de 1 a 10
x
## [1] 3 4 5 7 2
edades_F=c(23,34,32,26,43,21,36,26)
mean(edades_F)
## [1] 30.125
sd(edades_F)
## [1] 7.434235
Supongamos que tenemos un vector x de datos (una muestra) ordenados de menor a mayor, x = (x1,x2,…,xn).
la media de los datos que quedan al descartar los primeros y los últimos k datos.
mediaP = function(x,k){
n = length(x)
xs = sort(x)
xp = xs[(k+1):(n-k)] #eliminar k primeros y los k últimos datos
mean(xp)
}
#probarla
x=c( 0.82, 0.514, 0.3902, 0.90, 0.4469, 0.836)
k=2
cat(mean(x)," ", mediaP(x,k))
## 0.6511833 0.667
B = matrix(c(1,2,3,
5,6,7), nrow = 2, byrow=T)
B
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 5 6 7
#1e-9 = 0.000000001
puntofijo =function(g, x0, tol=1e-9, maxIter=100){
k = 1
# iteración hasta que abs(x1 - x0) <= tol o se alcance maxIteraciones
repeat{
x1 = g(x0)
dx = abs(x1 - x0)
x0 = x1
#Imprimir estado
cat("x_", k, "= ", x1, "\n")
k = k+1
#until
if(dx< tol|| k > maxIter) break;
}
# Mensaje de salida
if( dx > tol ){
cat("No hubo convergencia ")
#return(NULL)
} else{
cat("x* es aproximadamente ", x1, " con error menor que ", tol)
}
}
Probar con una funcion conocida
phi = function(x) 3*x^2/(1+(x/1)^2)# r=3, K=1
curve(phi, 0, 4); abline(h=0, v=0, lty=3)
curve(1*x, 0,4, col="red", add=TRUE)
puntofijo(phi, 2.5, 1e-7, 15)
## x_ 1 = 2.586207
## x_ 2 = 2.609805
## x_ 3 = 2.61593
## x_ 4 = 2.617498
## x_ 5 = 2.617897
## x_ 6 = 2.617999
## x_ 7 = 2.618025
## x_ 8 = 2.618032
## x_ 9 = 2.618033
## x_ 10 = 2.618034
## x_ 11 = 2.618034
## x_ 12 = 2.618034
## x* es aproximadamente 2.618034 con error menor que 1e-07