   else
     number
 
+format4fi = (number) ->
+  if number
+    number.toFixed(4).replace(/\.0+$/, '')
+  else
+    number
+
 combineTables = (tables) ->
   leader = head tables
 

      origin: origin

  inspectRawArray_ = (name, origin, description, array) -> ->
    createDataframe name, [createList name, parseNulls array], (sequence array.length), null,
      description: description
      origin: origin

  inspectRawObject_ = (name, origin, description, obj) -> ->
    vectors = for k, v of obj
      createList k, [ if v is null then undefined else v ]

    createDataframe name, vectors, (sequence 1), null,
      description: description

    when 'byte', 'short', 'int', 'long'
      createVector column.name, TNumber, parseNumbers data
    when 'float', 'double'
      createVector column.name, TNumber, (parseNumbers data), format4f
    when 'string'
      createFactor column.name, TString, data
    when 'matrix'
