2010-09-24 19 views
10

Tengo una tabla de frecuencia preincorporada para un conjunto de datos bastante grande. Es decir, un vector de una sola columna de contenedores y un vector de columna única de recuentos asociados con esos contenedores. Me gustaría que R trace un histograma de estos datos haciendo más binning y sumando los conteos existentes. Por ejemplo, si en los datos pre-agrupados tengo algo como [(0.01, 5000), (0.02, 231), (0.03, 948)], donde el primer número es el contenedor y el segundo es el conteo, y elija 0.04 como el ancho del nuevo contenedor, esperaría obtener [(0.04, 6179)]. ¿Cuál es la forma más rápida y sencilla de hacer esto en R?Cómo trazar un histograma preintervenido En R

Respuesta

6

Parece que ggplot2 tiene la respuesta.


library(ggplot2) 
qplot(bin, data=cbind(bins,counts), weight=counts, geom="histogram") 
+0

eres rápido;) Solo estaba buscando cómo hice esto en el pasado. Vi dos maneras en las que pirateé este 1) ggplot2 y 2) el muestreo de los datos agrupados y luego el reinicio. Prefería mucho ggplot2 pero el rebinning era un truco que preparé antes de descubrir que ggplot podía hacer esto. –

1

El nuevo paquete en HistogramTools CRAN tiene una serie de funciones útiles para hacer exactamente esto. En su ejemplo, si desea combinar tres cubos adyacentes en cada punto del histograma para producir un nuevo histograma con 1/3 de tantos cubos, puede usar la función MergeBuckets.

install.packages("HistogramTools") 
library(HistogramTools) 
h <- hist(rexp(1000), breaks=60) 
plot(MergeBuckets(h, adj.buckets=3)) 

Alternativamente, también puede especificar una lista de los nuevos puntos de corte que desee de forma explícita, en lugar de decirle MergeBuckets() para combinar siempre el mismo número de cubos adyacentes. enter image description here

Cuestiones relacionadas