summaryrefslogtreecommitdiff
path: root/avg-weights
diff options
context:
space:
mode:
authorPatrick Simianer <p@simianer.de>2016-07-05 11:01:46 +0200
committerPatrick Simianer <p@simianer.de>2016-07-05 11:01:46 +0200
commit2b1d7f881c19c4d4b5afae194e02d3300c7675d0 (patch)
tree5a06ee7de98640a39244b57bb369697176b44ebf /avg-weights
parent69949dda35c3ea21d8e926e5f0a596a0a0f61c6a (diff)
mv
Diffstat (limited to 'avg-weights')
-rwxr-xr-xavg-weights33
1 files changed, 33 insertions, 0 deletions
diff --git a/avg-weights b/avg-weights
new file mode 100755
index 0000000..36b051a
--- /dev/null
+++ b/avg-weights
@@ -0,0 +1,33 @@
+#!/usr/bin/env ruby
+
+require 'zipf'
+require 'trollop'
+require 'zlib'
+
+conf = Trollop::options do
+ opt :weights_files, "a number of weights files: name value", :required => true
+ opt :filter, "Filter if key does not appear in every file.", :type => :bool, :default => false
+end
+
+h = {}
+ARGV.each { |fn|
+ f = ReadFile.new fn
+ 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,w|
+ next if conf[:filter] and w.size < n
+ puts "#{k} #{w.inject(:+)/n}"
+}
+