Class: Rust::ANOVAModel
- Inherits:
-
RustDatatype
- Object
- RustDatatype
- Rust::ANOVAModel
- Defined in:
- lib/rust/models/anova.rb
Overview
Mirror for an ANOVA model type in R. To create a new ANOVA model (aov), call the #generate method.
Class Method Summary collapse
- .can_pull?(type, klass) ⇒ Boolean
-
.generate(formula, data, **options) ⇒ Object
Generates a new ANOVA model with a given
formula,data. - .pull_variable(variable, type, klass) ⇒ Object
Instance Method Summary collapse
-
#initialize(model) ⇒ ANOVAModel
constructor
Creates a new
model. - #load_in_r_as(variable_name) ⇒ Object
-
#model ⇒ Object
Returns the model.
-
#summary ⇒ Object
Returns a summary of the ANOVA model through the summary function in R.
Methods inherited from RustDatatype
pull_priority, #r_hash, #r_mirror, #r_mirror_to
Constructor Details
#initialize(model) ⇒ ANOVAModel
Creates a new model.
46 47 48 |
# File 'lib/rust/models/anova.rb', line 46 def initialize(model) @model = model end |
Class Method Details
.can_pull?(type, klass) ⇒ Boolean
9 10 11 |
# File 'lib/rust/models/anova.rb', line 9 def self.can_pull?(type, klass) return type == "list" && [klass].flatten.include?("aov") end |
.generate(formula, data, **options) ⇒ Object
Generates a new ANOVA model with a given formula, data. options can be specified and directly passed to the aov function in R.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/rust/models/anova.rb', line 27 def self.generate(formula, data, **) mapped = "" if .size > 0 mapped = .map { |k, v| "#{k}=#{v}" }.join(", ") mapped = ", " + mapped end Rust.exclusive do Rust["aov.data"] = data Rust._eval("aov.model.result <- aov(#{formula.to_R}, data=aov.data#{mapped})") result = ANOVAModel.new(Rust["aov.model.result"]) result.r_mirror_to("aov.model.result") return result end end |
.pull_variable(variable, type, klass) ⇒ Object
13 14 15 16 17 |
# File 'lib/rust/models/anova.rb', line 13 def self.pull_variable(variable, type, klass) model = RustDatatype.pull_variable(variable, Rust::List) return ANOVAModel.new(model) end |
Instance Method Details
#load_in_r_as(variable_name) ⇒ Object
19 20 21 |
# File 'lib/rust/models/anova.rb', line 19 def load_in_r_as(variable_name) @model.load_in_r_as(variable_name) end |
#model ⇒ Object
Returns the model.
53 54 55 |
# File 'lib/rust/models/anova.rb', line 53 def model @model end |
#summary ⇒ Object
Returns a summary of the ANOVA model through the summary function in R.
60 61 62 63 64 65 66 67 68 69 |
# File 'lib/rust/models/anova.rb', line 60 def summary unless @summary Rust.exclusive do Rust._eval("aov.smr <- summary(#{self.r_mirror})") @summary = Rust['aov.smr'] end end return @summary end |