Mercurial > repos > guerler > charts
view histogram.r @ 8:a889861139bc draft
Uploaded
author | guerler |
---|---|
date | Thu, 17 Apr 2014 17:56:42 -0400 |
parents | 2e2d92b2ae38 |
children | 656efffe650e |
line wrap: on
line source
# utilities roundUp <- function(x) 10^ceiling(log10(x)) roundDown <- function(x) 10^floor(log10(x)) # wrapper wrapper <- function(table, columns, options) { # initialize output list l <- list() # loop through all columns m <- list() for (key in names(columns)) { # load column data column <- as.numeric(columns[key]) column_data <- sapply( table[column], as.numeric ) # collect vectors in list m <- append(m, list(column_data)) } # get min/max boundaries max_value <- max(unlist(m)) min_value <- min(unlist(m)) # round number to base 10 min_value <- roundUp(min_value) max_value <- roundUp(max_value) # identify increment increment <- (max_value - min_value) / 10 # fix range and bins bin_seq = seq(min_value, max_value, by=increment) # add as first column l <- append(l, list(bin_seq[2: length(bin_seq)])) # loop through all columns for (key in seq(m)) { # load column data column_data <- m[[key]] # create hist data hist_data <- hist(column_data, breaks=bin_seq, plot=FALSE) # normalize densities count_sum <- sum(hist_data$counts) if (count_sum > 0) { hist_data$counts = hist_data$counts / count_sum } # collect vectors in list l <- append(l, list(hist_data$counts)) } # return return (l) }