martes, 19 de junio de 2012

R:memoria recortada

Ejercicio para memoria de prácticas: media recortada
La memoria de prácticas debe contener todo el código trabajado en este tema. Además, y de forma
especial, ha de contener el ejercicio que se expone a continuación.

Escribe una función que implemente el cálculo de la media recortada al 20 %:
La media recortada es una variante de la media truncada.

Se diferencia de esta en que en lugar de simplemente eliminar los primeros elementos del vector (ordenado), se reemplazan por el menor de los datos restantes; y de forma análoga los últimos elementos del vector se remplazan por el mayor de los restantes.


X<-1:11#tiene que ser un vector
media_recortada <-function(x,p=0.2) {
n <- length(x)
k <- round(p*n)
if ((k<0)|(k>=(n/2))) stop('valor d p')
x <- sort(x)
max<-max(x)#busca el número más grande
min<-min(x)#busca el número más pequeño
z1<-min:k
y1 <-replace(z1,z1==min:k,min) #reemplazar
z2<-x[(n-k):(n)]
y2<-replace(z2,z2== x[(n-k):(n)],max)
y3<-x[(k+1):(n-k)]
y<-c(y1,y3,y2)#concatenar
return(mean(y))
}

2 comentarios:

  1. Este código es completamente correcto para lo que el enunciado pide ?

    ResponderEliminar
  2. En principio parace que si, pero puedes compilarlo y ejecutarlo para ver cómo funciona y si realmente hace la media recortada al n%

    ResponderEliminar

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | GreenGeeks Review