Module: Statsample::Analysis
- Defined in:
- lib/statsample/analysis.rb,
lib/statsample/analysis/suite.rb,
lib/statsample/analysis/suitereportbuilder.rb
Overview
DSL to create analysis without hazzle.
-
Shortcuts methods to avoid use complete namescapes, many based on R
-
Attach/detach vectors to workspace, like R
Example
an1=Statsample::Analysis.store(:first) do
# Load excel file with x,y,z vectors
ds=excel('data.xls')
# See variables on ds dataset
names(ds)
# Attach the vectors to workspace, like R
attach(ds)
# vector 'x' is attached to workspace like a method,
# so you can use like any variable
mean,sd=x.mean, x.sd
# Shameless R robbery
a=c( 1:10)
b=c(21:30)
summary(cor(ds)) # Call summary method on correlation matrix
end
# You can run the analysis by its name
Statsample::Analysis.run(:first)
# or using the returned variables
an1.run
# You can also generate a report using ReportBuilder.
# .summary() method call 'report_building' on the object,
# instead of calling text summary
an1.generate("report.html")
Defined Under Namespace
Classes: Suite, SuiteReportBuilder
Constant Summary collapse
- @@stored_analysis =
{}
- @@last_analysis =
nil
Class Method Summary collapse
-
.add_to_reportbuilder(rb, *args) ⇒ Object
Add analysis *args to an reportbuilder object.
- .clear_analysis ⇒ Object
- .last ⇒ Object
-
.run(*args) ⇒ Object
Run analysis *args Without arguments, run all stored analysis Only ‘echo’ will be returned to screen.
-
.run_batch(*args) ⇒ Object
Run analysis and return to screen all echo and summary callings.
-
.save(filename, *args) ⇒ Object
Save the analysis on a file Without arguments, add all stored analysis.
- .store(name, opts = Hash.new, &block) ⇒ Object
- .stored_analysis ⇒ Object
-
.to_text(*args) ⇒ Object
Run analysis and return as string output of echo callings Without arguments, add all stored analysis.
Class Method Details
.add_to_reportbuilder(rb, *args) ⇒ Object
Add analysis *args to an reportbuilder object. Without arguments, add all stored analysis Each analysis is wrapped inside a ReportBuilder::Section object This is the method is used by save() and to_text()
66 67 68 69 70 71 72 73 74 75 |
# File 'lib/statsample/analysis.rb', line 66 def self.add_to_reportbuilder(rb, *args) args=stored_analysis.keys if args.size==0 raise "Analysis #{name} doesn't exists" if (args - stored_analysis.keys).size>0 args.each do |name| section=ReportBuilder::Section.new(:name=>stored_analysis[name].name) rb_an=stored_analysis[name].add_to_reportbuilder(section) rb.add(section) rb_an.run end end |
.clear_analysis ⇒ Object
35 36 37 |
# File 'lib/statsample/analysis.rb', line 35 def self.clear_analysis @@stored_analysis.clear end |
.last ⇒ Object
41 42 43 |
# File 'lib/statsample/analysis.rb', line 41 def self.last @@stored_analysis[@@last_analysis] end |
.run(*args) ⇒ Object
Run analysis *args Without arguments, run all stored analysis Only ‘echo’ will be returned to screen
53 54 55 56 57 58 59 |
# File 'lib/statsample/analysis.rb', line 53 def self.run(*args) args=stored_analysis.keys if args.size==0 raise "Analysis #{args} doesn't exists" if (args - stored_analysis.keys).size>0 args.each do |name| stored_analysis[name].run end end |
.run_batch(*args) ⇒ Object
Run analysis and return to screen all echo and summary callings
96 97 98 |
# File 'lib/statsample/analysis.rb', line 96 def self.run_batch(*args) puts to_text(*args) end |
.save(filename, *args) ⇒ Object
Save the analysis on a file Without arguments, add all stored analysis
79 80 81 82 83 |
# File 'lib/statsample/analysis.rb', line 79 def self.save(filename, *args) rb=ReportBuilder.new(:name=>filename) add_to_reportbuilder(rb, *args) rb.save(filename) end |
.store(name, opts = Hash.new, &block) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/statsample/analysis.rb', line 44 def self.store(name, opts=Hash.new,&block) raise "You should provide a block" if !block @@last_analysis=name opts={:name=>name}.merge(opts) @@stored_analysis[name]=Suite.new(opts,&block) end |
.stored_analysis ⇒ Object
38 39 40 |
# File 'lib/statsample/analysis.rb', line 38 def self.stored_analysis @@stored_analysis end |
.to_text(*args) ⇒ Object
Run analysis and return as string output of echo callings Without arguments, add all stored analysis
89 90 91 92 93 |
# File 'lib/statsample/analysis.rb', line 89 def self.to_text(*args) rb=ReportBuilder.new(:name=>"Analysis #{Time.now}") add_to_reportbuilder(rb, *args) rb.to_text end |