easystats 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -1,6 +1,23 @@
1
1
  Gem Name: Easystats
2
2
  Gem Author: Matthew Grigajtis (http://www.matthewgrigajtis.com)
3
- Description: Provides easy to use statistical function
3
+ Description: Provides easy to use statistical functions
4
+
5
+ Functions Provided:
6
+ sum(x)
7
+ Parameters: Takes in an array of numbers
8
+ Returns: The sum of the numbers in the array
9
+
10
+ mean(x)
11
+ Parameters: Takes in an array of numbers
12
+ Returns: The mean (average) of the numbers in the array
13
+
14
+ standard_deviation(x)
15
+ Parameters: Takes in an array of numbers
16
+ Returns: The standard deviation of the numbers in the array
17
+
18
+ median(x)
19
+ Paramaters: Takes in an array of numbers
20
+ Returns: The median of the numbers in the array
4
21
 
5
22
  Example usage:
6
23
 
@@ -14,6 +31,7 @@ myNumbers = [4, 8, 15, 16, 23, 42]
14
31
  # Create a new Easystats Object
15
32
  m = Easystats.new
16
33
 
34
+ puts "Sum: " + m.sum(myNumbers).to_s
17
35
  puts "Average: " + m.mean(myNumbers).to_s
18
36
  puts "Standard Deviation: " + m.standard_deviation(myNumbers).to_s
19
-
37
+ puts "Median: " + m.median(myNumbers).to_s
@@ -1,3 +1,3 @@
1
1
  module Easystats
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/easystats.rb CHANGED
@@ -3,15 +3,20 @@ class Easystats
3
3
 
4
4
  end
5
5
 
6
- # take in an array of numbers and calculate the mean (average)
7
- def mean(data)
6
+ # take in an array of numbers and calculate the sum
7
+ def sum(data)
8
8
  sum_of_numbers = 0
9
9
 
10
10
  data.each do |num|
11
11
  sum_of_numbers += num
12
12
  end
13
13
 
14
- sum_of_numbers / data.count
14
+ sum_of_numbers
15
+ end
16
+
17
+ # take in an array of numbers and calculate the mean (average)
18
+ def mean(data)
19
+ self.sum(data) / data.count
15
20
  end
16
21
 
17
22
  # take in an array of numbers and calculate the standard deviation
@@ -30,5 +35,32 @@ class Easystats
30
35
 
31
36
  Math::sqrt(sum_of_deviations / (data.count-1))
32
37
  end
38
+
39
+ # take in the array of numbers and calculate the median
40
+ def median(data)
41
+ halfway = data.count / 2
42
+
43
+ # Sort the array
44
+ data = data.sort
45
+
46
+ # The median will be different based on the number of numbers in the array
47
+ # If there is an even number in the array
48
+ if(data.count % 2) == 0
49
+ median = (data[halfway] + data[halfway-1]) / 2.0
50
+
51
+ # Else, there is an odd number in the array
52
+ else
53
+ median = data[halfway]
54
+ end
55
+
56
+ median
57
+ end
58
+
59
+ # take in an array of numbers and calculate the range
60
+ def range(data)
61
+ # Sort the array
62
+ data = data.sort
63
+ data[data.count-1] - data[0]
64
+ end
33
65
  end
34
66
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 1
9
- version: 0.0.1
8
+ - 2
9
+ version: 0.0.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Matthew Grigajtis