El redondeo de la temperatura diaria promedio entera más cercana (en ° F)
Registrado por cierta estación durante un mes cualquiera del 2010 para dos localidades diferentes (L1 y L2) se da en la tabla 1:
tempz <- function(L1,L2,f){
if(f == "Tm") {
Tm1= mean(L1)
Tm2 = mean(L2)
return(list("Temperatura media 1"=Tm1,"Temperatura media 2" =Tm2))}
if(f == "Tb"){
d1 = which(L1 < mean(L1))
d2 = which(L2 < mean(L2))
Tb1 = length(d1)
Tb2 = length(d2)
return(list("Dias de Temperatura baja 1 "=Tb1,"Dias de Temperatura baja 2" =Tb2))}
if(f=="Tv"){
d = L1 > L2
Tvs = which(d== TRUE)
Tvs2=length(Tvs)
return(list( "Numero de dias de Temperatura L1>L2"=Tvs2,"Dias de Temperatura L1>L2"=Tvs))}
if(f=="Tf"){
Tvs3 = L1 - L2
x= which.max(Tvs3)
y = Tvs3[x]
Td = which(Tvs3 == y)
z= length(Td)
return(list( "Numero de dias de mayor diferencia de Temperatura "=z,"dias de mayor diferencia de Temperatura "=Td,"mayor diferencia de Temperatura"=y))}
if(f == "Td"){
Td1 = L1 - L2
Td2 = L2-L1
tx= which(Td1 >=3)
tx2= which(Td2 >=3)
tX =sort( c(tx,tx2))
tz= length(tx)
tz2= length(tx2)
tZ = length(tX)
return(list( "Numero de dias de diferencia de Temperatura >=3 " = tZ,"dias de mayor diferencia de Temperatura "=tX,"Numero de dias diferencia de Temperatura >=3 por localidad"=c("localidad 1"=tz,"localidad 2"= tz2)))}
if(f== "TFaC"){
options(digits = 3)
c = (L1 - 32)* 5/9
c2 = (L2-32)* 5/9
return(list("localidad 1 T°C" = c,"localidad 2 T°C"=c2)) }
if(f == "Tg"){
library(lattice)
options(digits = 3)
c = (L1 - 32)* 5/9
c2 = (L2-32)* 5/9
Dias= rep(c(1:31),2)
local= data.frame("temperatura"=c(c,c2),"dias"=Dias,
"localidad"=c(rep("localidad1",31),
rep("localidad 2",31)))
xyplot(temperatura~dias|localidad,data=local, xlab= "Dias",
ylab = "Temperatura(°C)",pch= 20,cex=1,col="darkgreen",
main = "Temperatura en °C por localidad",grid=T) }
else{"Argumento funcion desconocido, usar :(Tm,Tb,Tv,Tf,Td,TFaC,Tg)"}}
L1 = c(62,50,46,44,43,41,43,45,41,36,41,42,48,51,60,68,71,61,56,55,66,72,65,70,69,59,56,54,59,67,61)
L2 = c(39,40,37,37,37,40,42,47,43,45,44,45,55,46,41,41,48,49,45,40,38,41,41,39,42,42,47,46,43,43,41)
tempz(L1,L2,f="Tm")
## $`Temperatura media 1`
## [1] 54.90323
##
## $`Temperatura media 2`
## [1] 42.70968
tempz(L1,L2,f="Tb")
## $`Dias de Temperatura baja 1 `
## [1] 14
##
## $`Dias de Temperatura baja 2`
## [1] 17
tempz(L1,L2,f="Tv")
## $`Numero de dias de Temperatura L1>L2`
## [1] 25
##
## $`Dias de Temperatura L1>L2`
## [1] 1 2 3 4 5 6 7 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
tempz(L1,L2,f="Tf")
## $`Numero de dias de mayor diferencia de Temperatura `
## [1] 2
##
## $`dias de mayor diferencia de Temperatura `
## [1] 22 24
##
## $`mayor diferencia de Temperatura`
## [1] 31
tempz(L1,L2,f="Td")
## $`Numero de dias de diferencia de Temperatura >=3 `
## [1] 27
##
## $`dias de mayor diferencia de Temperatura `
## [1] 1 2 3 4 5 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
## [26] 30 31
##
## $`Numero de dias diferencia de Temperatura >=3 por localidad`
## localidad 1 localidad 2
## 23 4
tempz(L1,L2,f="TFaC")
## $`localidad 1 T°C`
## [1] 16.67 10.00 7.78 6.67 6.11 5.00 6.11 7.22 5.00 2.22 5.00 5.56
## [13] 8.89 10.56 15.56 20.00 21.67 16.11 13.33 12.78 18.89 22.22 18.33 21.11
## [25] 20.56 15.00 13.33 12.22 15.00 19.44 16.11
##
## $`localidad 2 T°C`
## [1] 3.89 4.44 2.78 2.78 2.78 4.44 5.56 8.33 6.11 7.22 6.67 7.22
## [13] 12.78 7.78 5.00 5.00 8.89 9.44 7.22 4.44 3.33 5.00 5.00 3.89
## [25] 5.56 5.56 8.33 7.78 6.11 6.11 5.00
tempz(L1,L2,f="Tg")
conver = function(ft){
if(ft>= 0 & ft<=15000 ){
ft
t = 59-0.00356*ft
return(list("Altura"=ft,"Temperatura"=t))}
else{print(paste(warning("valor fuera de rango"),ft))}
}
convert<- Vectorize(conver, vectorize.args = "ft")
al = c(0,100,200,300,400,500,1000,1500,2000,3000,4000,5000,6000,10000,1500)
al2 = c(0,100,200,300,400,500,1000,1500,2000,3000,4000,5000,6000,10000,1500,15001)
tem = convert(al);tem
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
## Altura 0 100 200 300 400 500 1000 1500 2000 3000 4000 5000
## Temperatura 59 58.6 58.3 57.9 57.6 57.2 55.4 53.7 51.9 48.3 44.8 41.2
## [,13] [,14] [,15]
## Altura 6000 10000 1500
## Temperatura 37.6 23.4 53.7
tem1 = convert(50);tem1
## [,1]
## Altura 50
## Temperatura 58.8
tem2 = convert(-50);tem2
## Warning in paste(warning("valor fuera de rango"), ft): valor fuera de rango
## [1] "valor fuera de rango -50"
## [1] "valor fuera de rango -50"
tem3 = convert(al2);tem
## Warning in paste(warning("valor fuera de rango"), ft): valor fuera de rango
## [1] "valor fuera de rango 15001"
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
## Altura 0 100 200 300 400 500 1000 1500 2000 3000 4000 5000
## Temperatura 59 58.6 58.3 57.9 57.6 57.2 55.4 53.7 51.9 48.3 44.8 41.2
## [,13] [,14] [,15]
## Altura 6000 10000 1500
## Temperatura 37.6 23.4 53.7
Función que calcula el coeficiente de variación de un conjunto de datos (de tamaño 50) con distribución Normal
Argumentos de la funcion
x = datos
y = funciones :
cv:coeficiente de variacion,media,desviacion estandar
cvm :coeficiente de variacion,media,desviacion estandar sin el menor dato
cvM :coeficiente de variacion,media,desviacion estandar sin el mayor dato
cvmM :coeficiente de variacion,media,desviacion estandar sin el menor y mayor dato
cvv :coeficiente de variacion,media,desviacion estandar sin el 8% de los datos (4 % de cada estremo de la distribución de datos)
T = Presenta todos los resultados posibles en un data.frame
cn.v = function(x,y){
if(y=="cv"){
c = sd(x)
v = mean(x)
cv= (c/v)*100
return(list("Coeficiente de variacion (%) "=cv,"Media"=v,"Desciacion estandar"=c))}
if(y=="cvm"){
m= which.min(x)
xm = x[-m]
cm = sd(xm)
vm = mean(xm)
cvm= (cm/vm)*100
return(list("Coeficiente de variacion (%)" =cvm,
"Media"=vm,"Desciacion estandar"=cm))
}
if(y=="cvM"){
M= which.max(x)
xM = x[-M]
cM = sd(xM)
vM = mean(xM)
cvM= (cM/vM)*100
return(list("Coeficiente de variacion (%) "=cvM,
"Media"=vM,"Desciacion estandar"=cM))
}
if(y=="cvmM"){
M= which.max(x)
m= which.min(x)
xmM = x[-c(M,m)]
cmM = sd(xmM)
vmM = mean(xmM)
cvmM= (cmM/vmM)*100
return(list("Coeficiente de variacion (%) "=cvmM,
"Media"=vmM,"Desciacion estandar"=cmM))
}
if(y=="cv%"){
sort(x)
xx = x[-c(1,2,49,50)]
cc = sd(xx)
vv = mean(xx)
cvv= (cc/vv)*100
return(list("Coeficiente de variacion (%) "=cvv,
"Media"=vv,"Desciacion estandar"=cc))
}
if(y=="T"){
sort(x)
c = sd(x)
v = mean(x)
cv= (c/v)*100
xx = x[-c(1,2,49,50)]
cc = sd(xx)
vv = mean(xx)
cvv= (cc/vv)*100
m= which.min(x)
xm = x[-m]
cm = sd(xm)
vm = mean(xm)
cvm= (cm/vm)*100
M= which.max(x)
xM = x[-M]
cM = sd(xM)
vM = mean(xM)
cvM= (cM/vM)*100
M= which.max(x)
m= which.min(x)
xmM = x[-c(M,m)]
cmM = sd(xmM)
vmM = mean(xmM)
cvmM= (cmM/vmM)*100
return(data.frame("cv.n"=c("n","n-min","n-max","n-minmax",
"ntruncado8"),
"Media"=c(v,vm,vM,vmM,vv),"Desviacion"=c(c,cm,cM,cmM,cc),
"Coeficionte de variacion"=c(cv,cvm,cvM,cvmM,cvv)))
}
else{"Argumento funcion desconocido, usar :(cv,cvm,cvM,cvmM,T)"}
}
cn.v(x=rnorm(50,5.5,0.5),"cv")
## $`Coeficiente de variacion (%) `
## [1] 9.48
##
## $Media
## [1] 5.51
##
## $`Desciacion estandar`
## [1] 0.522
cn.v(x=rnorm(50,5.5,0.5),"cvm")
## $`Coeficiente de variacion (%)`
## [1] 8.58
##
## $Media
## [1] 5.46
##
## $`Desciacion estandar`
## [1] 0.468
cn.v(x=rnorm(50,5.5,0.5),"cvM")
## $`Coeficiente de variacion (%) `
## [1] 9.54
##
## $Media
## [1] 5.55
##
## $`Desciacion estandar`
## [1] 0.529
cn.v(x=rnorm(50,5.5,0.5),"cvmM")
## $`Coeficiente de variacion (%) `
## [1] 8.96
##
## $Media
## [1] 5.47
##
## $`Desciacion estandar`
## [1] 0.49
cn.v(x=rnorm(50,5.5,0.5),"cvv")
## [1] "Argumento funcion desconocido, usar :(cv,cvm,cvM,cvmM,T)"
cn.v(x=rnorm(50,5.5,0.5),"T")
cn.v(x=rnorm(50,5.5,0.5),"x")
## [1] "Argumento funcion desconocido, usar :(cv,cvm,cvM,cvmM,T)"
hl<- function(x={y<- 1;2},y=0){x+y^2}
hl()# La funcion cuando no tiene valores escritos x=2 y 2 y Y= 1 y estos valores seran remplazado dentro de la formula
## [1] 3
hl(1)# La funcion cuando tiene un valor escritos en la posicion X , Y= 0 y estos valores seran remplazado dentro de la formula
## [1] 1
hl(2)# La funcion cuando tiene un valor escritos en la posicion X , Y= 0 y estos valores seran remplazado dentro de la formula
## [1] 2
h2 = function(x=z){
z= 100
x
}
h2()#La funcion h2 retorna el valor de X en funcion del valor de Z el valor que tome z lo tomara X y como ya etsa definido z=100 , x sera igual a 100 siempr ey cuando no se introduscan argumentos a la funcion
## [1] 100
h2(x=2)#Si introdusco un valor a la funcion x tomara ese valor ya que la funcion retorna a X e ignora a Z
## [1] 2