summaryrefslogtreecommitdiff
path: root/lib/overwrite.rb
diff options
context:
space:
mode:
authorgebele <gebele@in-silico.ch>2016-12-12 09:15:48 +0000
committergebele <gebele@in-silico.ch>2016-12-12 09:15:48 +0000
commitda086fad5b45c0d7b59feb40d0108ac620613933 (patch)
tree7e9cf8c9332e30552ab255ee9b30e04e904977b4 /lib/overwrite.rb
parent32a16d99b51642cac8e75f90c43753d8d05ab770 (diff)
parent4570f11444bc10da88d849e9a2812e95a8933c8a (diff)
merged development
Diffstat (limited to 'lib/overwrite.rb')
-rw-r--r--lib/overwrite.rb27
1 files changed, 24 insertions, 3 deletions
diff --git a/lib/overwrite.rb b/lib/overwrite.rb
index cef5758..31d30c9 100644
--- a/lib/overwrite.rb
+++ b/lib/overwrite.rb
@@ -28,6 +28,11 @@ class Float
def signif(n)
Float("%.#{n}g" % self)
end
+
+ # converts -10 logarithmized values back
+ def delog10
+ 10**(-1*self)
+ end
end
module Enumerable
@@ -101,19 +106,35 @@ class Array
end
def mean
- self.inject{ |sum, el| sum + el }.to_f / self.size
+ self.compact.inject{ |sum, el| sum + el }.to_f / self.compact.size
end
def sample_variance
m = self.mean
- sum = self.inject(0){|accum, i| accum +(i-m)**2 }
- sum/(self.length - 1).to_f
+ sum = self.compact.inject(0){|accum, i| accum +(i-m)**2 }
+ sum/(self.compact.length - 1).to_f
end
def standard_deviation
Math.sqrt(self.sample_variance)
end
+ def for_R
+ if self.first.is_a?(String)
+ #"\"#{self.collect{|v| v.sub('[','').sub(']','')}.join(" ")}\"" # quote and remove square brackets
+ "NA"
+ else
+ self.median
+ end
+ end
+
+ def collect_with_index
+ result = []
+ self.each_with_index do |elt, idx|
+ result << yield(elt, idx)
+ end
+ result
+ end
end
module URI