From db6a6ecfa350cae29739c59df1210d8f76a479c9 Mon Sep 17 00:00:00 2001 From: Patrick Simianer Date: Thu, 5 Dec 2013 07:56:38 +0100 Subject: init --- avg_weights | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 avg_weights (limited to 'avg_weights') diff --git a/avg_weights b/avg_weights new file mode 100755 index 0000000..2b72747 --- /dev/null +++ b/avg_weights @@ -0,0 +1,46 @@ +#!/usr/bin/env ruby + +require 'trollop' +require 'zlib' + + +STDIN.set_encoding 'utf-8' +STDOUT.set_encoding 'utf-8' + +opts = Trollop::options do + opt :filter, "Filter if key does not appear in every file.", :type => :bool, :default => false +end + +def usage + puts "avg_weights_filter [--filter] +" + exit 1 +end +usage if ARGV.size==0 + + +h = {} +ARGV.each { |fn| +if File.extname(fn)=='.gz' + f = Zlib::GzipReader.new(File.new(fn, 'rb')) +else + f = File.new fn, 'r' +end +while line = f.gets + k, v = line.split + v = v.to_f + if h.has_key? k + h[k] << v + else + h[k] = [v] + end +end +f.close +} + +n = ARGV.size.to_f + +h.each_pair { |k,a| + next if opts[:filter] and a.size < n + puts "#{k} #{a.inject(:+)/n}" +} + -- cgit v1.2.3