class Rust::Correlation::Spearman
Public Class Methods
estimate(d1, d2)
click to toggle source
# File lib/rust-basics.rb, line 53 def self.estimate(d1, d2) self.test(d1, d2).correlation end
test(d1, d2)
click to toggle source
# File lib/rust-basics.rb, line 32 def self.test(d1, d2) raise TypeError, "Expecting Array of numerics" if !d1.is_a?(Array) || !d1.all? { |e| e.is_a?(Numeric) } raise TypeError, "Expecting Array of numerics" if !d2.is_a?(Array) || !d2.all? { |e| e.is_a?(Numeric) } Rust.exclusive do Rust['correlation.a'] = d1 Rust['correlation.b'] = d2 _, warnings = Rust._eval("correlation.result <- cor.test(correlation.a, correlation.b, method='s')", true) result = Result.new result.name = "Spearman's rank correlation rho" result.statistics['S'] = Rust._pull('correlation.result$statistic') result.pvalue = Rust._pull('correlation.result$p.value') result.correlation = Rust._pull('correlation.result$estimate') result.exact = !warnings.include?("Cannot compute exact p-value with ties") return result end end