lib/easystats.rb in easystats-0.3.1 vs lib/easystats.rb in easystats-0.3.2
- old
+ new
@@ -1,18 +1,18 @@
class Array
# take in an array of numbers and calculate the mean (average)
def mean
- return unless self.any?
+ return if self.empty?
self.sum / self.count.to_f
- end unless Array.method_defined? :mean
+ end unless method_defined? :mean
- alias_method :average, :mean unless Array.method_defined? :average
+ alias_method :average, :mean unless method_defined? :average
# take in the array of numbers and calculate the median
def median
- return unless self.any?
+ return if self.empty?
data = self
halfway = data.count / 2
@@ -28,15 +28,15 @@
else
median = data[halfway]
end
median
- end unless Array.method_defined? :median
+ end unless method_defined? :median
# take in an array of numbers and return the mode
def mode
- return unless self.any?
+ return if self.empty?
# Sort the array
data = self.sort
# create a flag to tell the user if all the numbers only appear once
@@ -90,37 +90,37 @@
nil
else
highest_value
end
end
- end unless Array.method_defined? :mode
+ end unless method_defined? :mode
# take in an array of numbers and calculate the range
def range
- return unless self.any?
+ return if self.empty?
data = self.sort
data.last - data.first
- end unless Array.method_defined? :range
+ end unless method_defined? :range
# take in an array of numbers and calculate the standard deviation
def standard_deviation
- return unless self.any?
+ return if self.empty?
return 0 if self.one?
Math::sqrt(self.sum_of_deviations_squared / (self.count-1))
- end unless Array.method_defined? :standard_deviation
+ end unless method_defined? :standard_deviation
# take in an array of numbers and calculate the sum
def sum
self.reduce { |total, number| total + number }
- end unless Array.method_defined? :sum
+ end unless method_defined? :sum
def variance
- return unless self.any?
+ return if self.empty?
self.sum_of_deviations_squared / self.count.to_f
- end unless Array.method_defined? :variance
+ end unless method_defined? :variance
protected
# this function returns the sum of each squared difference of mean
def sum_of_deviations_squared