Foro de debate

fechas de nuevo y oz.windrose

fechas de nuevo y oz.windrose

de Lucía S C -
Número de respuestas: 2

¿me podríais ayudar de nuevo en un par de cosilla?
1. Lo de las fechas lo he conseguido solucionar con "substr" y luego lo he unido con data.frame. Ahora necesito seleccionar de la columna 3 "día"  en la tabla,por ejemplo, el valor 12 y que cuando esto sea cierto me haga la media de la columna 5"b"
año           mes            día          hora          b
1998         06               12          0000          4
1999         04               03          0100          0
1999         06               12          0200          3
1999         06               02          0500          8
1999         06               02          1000          10
1997         06               12          2300          0
2000         06               02          0000          6
2000         06               12          1500          9
...             ...                ...           ...             ...
Es decir quiero que me haga la media de 4,3,0,9.
Creo que es sencillo pero no lo consigo, con "if" no me deja.
2.  Estoy utilizando el paquete plotrix, más especificamente la función oz.windrose y necesito el lugar de que me represente 8 barras me represente 16.
 
Si pudierais ayudarme te lo agradecería.
Muchas gracias las molestias tomadas.
Un saludo,

LUCIA

En respuesta a Lucía S C

Re: fechas de nuevo y oz.windrose

de Antonio Jesús Arriaza Gómez -

Hola Lucía,

Si la tabla que tienes es un data.frame, en caso de que no lo fuese sólo habría que aplicar la órden:

> datos<- data.frame(tabla)

y quieres hacer la media de los elementos de la columna b que tengan como correspondiente día el 12 sólo tienes que escribir:

mean(datos$b[datos$dia=="12"])

#las commillas son necesarias si la variable día está en forma character.

Para tu segunda cuestión, en la ayuda de la función oz.windrose dice que la matriz que le pasas es una matriz de porcentajes (esto es que la suma de todos sus elementos tiene que ser 100) y que cada fila corresponde a un rango de velocidad y cada columna a una dirección geográfica. Por lo tanto lo único que tienes que hacer es pasarle a la función una matriz de dimensión n x 16.

Un saludo.
En respuesta a Antonio Jesús Arriaza Gómez

Re: fechas de nuevo y oz.windrose

de Manuel Muñoz Márquez -
Si lo que quieres hacer es la media para un único valor de día, ya te han dado la solución.

Si lo que quieres es calcular las media para todos los valores de día existe otra solución:
tapply(datos$b, datos$dia, mean)

Esto calcula la media de la variable b del data frame llamado "datos" agrupando según la variable dia del data frame "datos".

Saludos.