Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Array
- def sum
- inject(nil) {|sum,x|
- sum ? sum+x : x
- }
- end
- def mean
- sum/size
- end
- def stddev
- std = 0
- res = 0
- devs = []
- self.each { |x|
- devs.push(x - mean)
- }
- devs.each {|y|
- res = res + y**2
- }
- Math.sqrt(res/(size-1))
- end
- def median
- self.sort!
- res = (0.5*(self.size+1))
- if res.ceil != res.floor
- retr = ((self[res.ceil-1]+self[res.floor-1])/2.0)
- else
- retr = self[res]
- end
- retr
- end
- def q1
- self.sort!
- retr = 0
- res = (0.25*(self.size+1))
- if res.ceil != res.floor
- retr = ((self[res.ceil-1] + self[res.floor-1])/2.0)
- else
- retr = self[res]
- end
- retr
- end
- def q3
- self.sort!
- retr = 0
- res = (0.75*(self.size+1))
- if res.ceil != res.floor
- retr = ((self[res.ceil-1] + self[res.floor-1])/2.0)
- else
- retr = self[res]
- end
- retr
- end
- def iqr
- q3-q1
- end
- end
Add Comment
Please, Sign In to add comment