diff histogramdiscrete.r @ 34:f92f68399023 draft

Uploaded
author guerler
date Fri, 09 May 2014 00:58:44 -0400
parents
children bfd966f30073
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/histogramdiscrete.r	Fri May 09 00:58:44 2014 -0400
@@ -0,0 +1,54 @@
+# 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])
+        
+        # ensure string column
+        column_data <- sapply( table[column], as.character )
+        
+        # collect vectors in list
+        m <- append(m, list(column_data))
+    }
+    
+    # get alphabetically sorted bins
+    bins <- sort(unique(unlist(m)))
+    
+    # add first column
+    l <- append(l, list(bins))
+    
+    # loop through all columns
+    for (key in seq(m)) {
+        # reset bins
+        bins = sapply(bins, function(v) { 0 })
+        
+        # load column data
+        column_data <- m[[key]]
+        
+        # create hist data
+        table_data <- table(column_data)
+        
+        # transfer counts to bins
+        for (id in names(table_data)) {
+            bins[id] <- table_data[id]
+        }
+        
+        # normalize densities
+        total <- length(column_data)
+        if (total > 0) {
+            bins = bins / total
+        }
+        
+        # collect vectors in list
+        l <- append(l, list(bins))
+    }
+
+    # return
+    return (l)
+}