statsample 1.4.0 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,102 +1,132 @@
1
1
  # Statsample
2
2
 
3
- Homepage :: https://github.com/clbustos/statsample
3
+ [![Build Status](https://travis-ci.org/SciRuby/statsample.svg?branch=master)](https://travis-ci.org/SciRuby/statsample)
4
+ [![Code Climate](https://codeclimate.com/github/SciRuby/statsample/badges/gpa.svg)](https://codeclimate.com/github/SciRuby/statsample)
5
+ [![Gem Version](https://badge.fury.io/rb/statsample.svg)](http://badge.fury.io/rb/statsample)
4
6
 
5
- [![Build Status](https://travis-ci.org/clbustos/statsample.svg?branch=master)](https://travis-ci.org/clbustos/statsample)
7
+ Homepage :: https://github.com/sciruby/statsample
6
8
 
7
- ## DESCRIPTION
9
+ # Installation
10
+
11
+ You should have a recent version of GSL and R (with the `irr` and `Rserve` libraries) installed. In Ubuntu:
12
+
13
+ ```bash
14
+ $ sudo apt-get install libgs10-dev r-base r-base-dev
15
+ $ sudo Rscript -e "install.packages(c('Rserve', 'irr'))"
16
+ ```
17
+
18
+ With these libraries in place, just install from rubygems:
8
19
 
9
- A suite for basic and advanced statistics on Ruby. Tested on Ruby 2.1.1p76 (June 2014), 1.8.7, 1.9.1, 1.9.2 (April, 2010), ruby-head(June, 2011) and JRuby 1.4 (Ruby 1.8.7 compatible).
20
+ ```bash
21
+ $ [sudo] gem install statsample
22
+ ```
23
+
24
+ On *nix, you should install statsample-optimization to retrieve gems gsl, statistics2 and a C extension to speed some methods.
25
+
26
+ ```bash
27
+ $ [sudo] gem install statsample-optimization
28
+ ```
29
+
30
+ If you need to work on Structural Equation Modeling, you could see +statsample-sem+. You need R with +sem+ or +OpenMx+ [http://openmx.psyc.virginia.edu/] libraries installed
31
+
32
+ ```bash
33
+ $ [sudo] gem install statsample-sem
34
+ ```
35
+
36
+ # Description
37
+
38
+ A suite for basic and advanced statistics on Ruby. Tested on CRuby 1.9.3, 2.0.0 and 2.1.1. See `.travis.yml` for more information.
10
39
 
11
40
  Include:
12
- * Descriptive statistics: frequencies, median, mean, standard error, skew, kurtosis (and many others).
13
- * Imports and exports datasets from and to Excel, CSV and plain text files.
14
- * Correlations: Pearson's r, Spearman's rank correlation (rho), point biserial, tau a, tau b and gamma. Tetrachoric and Polychoric correlation provides by +statsample-bivariate-extension+ gem.
15
- * Intra-class correlation
16
- * Anova: generic and vector-based One-way ANOVA and Two-way ANOVA, with contrasts for One-way ANOVA.
17
- * Tests: F, T, Levene, U-Mannwhitney.
18
- * Regression: Simple, Multiple (OLS), Probit and Logit
19
- * Factorial Analysis: Extraction (PCA and Principal Axis), Rotation (Varimax, Equimax, Quartimax) and Parallel Analysis and Velicer's MAP test, for estimation of number of factors.
20
- * Reliability analysis for simple scale and a DSL to easily analyze multiple scales using factor analysis and correlations, if you want it.
21
- * Basic time series support
22
- * Dominance Analysis, with multivariate dependent and bootstrap (Azen & Budescu)
23
- * Sample calculation related formulas
24
- * Structural Equation Modeling (SEM), using R libraries +sem+ and +OpenMx+
25
- * Creates reports on text, html and rtf, using ReportBuilder gem
26
- * Graphics: Histogram, Boxplot and Scatterplot
41
+ - Descriptive statistics: frequencies, median, mean, standard error, skew, kurtosis (and many others).
42
+ - Imports and exports datasets from and to Excel, CSV and plain text files.
43
+ - Correlations: Pearson's r, Spearman's rank correlation (rho), point biserial, tau a, tau b and gamma. Tetrachoric and Polychoric correlation provides by +statsample-bivariate-extension+ gem.
44
+ - Intra-class correlation
45
+ - Anova: generic and vector-based One-way ANOVA and Two-way ANOVA, with contrasts for One-way ANOVA.
46
+ - Tests: F, T, Levene, U-Mannwhitney.
47
+ - Regression: Simple, Multiple (OLS), Probit and Logit
48
+ - Factorial Analysis: Extraction (PCA and Principal Axis), Rotation (Varimax, Equimax, Quartimax) and Parallel Analysis and Velicer's MAP test, for estimation of number of factors.
49
+ - Reliability analysis for simple scale and a DSL to easily analyze multiple scales using factor analysis and correlations, if you want it.
50
+ - Basic time series support
51
+ - Dominance Analysis, with multivariate dependent and bootstrap (Azen & Budescu)
52
+ - Sample calculation related formulas
53
+ - Structural Equation Modeling (SEM), using R libraries +sem+ and +OpenMx+
54
+ - Creates reports on text, html and rtf, using ReportBuilder gem
55
+ - Graphics: Histogram, Boxplot and Scatterplot
27
56
 
28
57
  ## Principles
29
58
 
30
- * Software Design:
31
- * One module/class for each type of analysis
32
- * Options can be set as hash on initialize() or as setters methods
33
- * Clean API for interactive sessions
34
- * summary() returns all necessary informacion for interactive sessions
35
- * All statistical data available though methods on objects
36
- * All (important) methods should be tested. Better with random data.
37
- * Statistical Design
38
- * Results are tested against text results, SPSS and R outputs.
39
- * Go beyond Null Hiphotesis Testing, using confidence intervals and effect sizes when possible
40
- * (When possible) All references for methods are documented, providing sensible information on documentation
41
-
42
- ## Features
43
-
44
- * Classes for manipulation and storage of data:
45
- * Statsample::Vector: An extension of an array, with statistical methods like sum, mean and standard deviation
46
- * Statsample::Dataset: a group of Statsample::Vector, analog to a excel spreadsheet or a dataframe on R. The base of almost all operations on statsample.
47
- * Statsample::Multiset: multiple datasets with same fields and type of vectors
48
- * Anova module provides generic Statsample::Anova::OneWay and vector based Statsample::Anova::OneWayWithVectors. Also you can create contrast using Statsample::Anova::Contrast
49
- * Module Statsample::Bivariate provides covariance and pearson, spearman, point biserial, tau a, tau b, gamma, tetrachoric (see Bivariate::Tetrachoric) and polychoric (see Bivariate::Polychoric) correlations. Include methods to create correlation and covariance matrices
50
- * Multiple types of regression.
51
- * Simple Regression : Statsample::Regression::Simple
52
- * Multiple Regression: Statsample::Regression::Multiple
53
- * Logit Regression: Statsample::Regression::Binomial::Logit
54
- * Probit Regression: Statsample::Regression::Binomial::Probit
55
- * Factorial Analysis algorithms on Statsample::Factor module.
56
- * Classes for Extraction of factors:
57
- * Statsample::Factor::PCA
58
- * Statsample::Factor::PrincipalAxis
59
- * Classes for Rotation of factors:
60
- * Statsample::Factor::Varimax
61
- * Statsample::Factor::Equimax
62
- * Statsample::Factor::Quartimax
63
- * Classes for calculation of factors to retain
64
- * Statsample::Factor::ParallelAnalysis performs Horn's 'parallel analysis' to a principal components analysis to adjust for sample bias in the retention of components.
65
- * Statsample::Factor::MAP performs Velicer's Minimum Average Partial (MAP) test, which retain components as long as the variance in the correlation matrix represents systematic variance.
66
- * Dominance Analysis. Based on Budescu and Azen papers, dominance analysis is a method to analyze the relative importance of one predictor relative to another on multiple regression
67
- * Statsample::DominanceAnalysis class can report dominance analysis for a sample, using uni or multivariate dependent variables
68
- * Statsample::DominanceAnalysis::Bootstrap can execute bootstrap analysis to determine dominance stability, as recomended by Azen & Budescu (2003) link[http://psycnet.apa.org/journals/met/8/2/129/].
69
- * Module Statsample::Codification, to help to codify open questions
70
- * Converters to import and export data:
71
- * Statsample::Database : Can create sql to create tables, read and insert data
72
- * Statsample::CSV : Read and write CSV files
73
- * Statsample::Excel : Read and write Excel files
74
- * Statsample::Mx : Write Mx Files
75
- * Statsample::GGobi : Write Ggobi files
76
- * Module Statsample::Crosstab provides function to create crosstab for categorical data
77
- * Module Statsample::Reliability provides functions to analyze scales with psychometric methods.
78
- * Class Statsample::Reliability::ScaleAnalysis provides statistics like mean, standard deviation for a scale, Cronbach's alpha and standarized Cronbach's alpha, and for each item: mean, correlation with total scale, mean if deleted, Cronbach's alpha is deleted.
79
- * Class Statsample::Reliability::MultiScaleAnalysis provides a DSL to easily analyze reliability of multiple scales and retrieve correlation matrix and factor analysis of them.
80
- * Class Statsample::Reliability::ICC provides intra-class correlation, using Shrout & Fleiss(1979) and McGraw & Wong (1996) formulations.
81
- * Module Statsample::SRS (Simple Random Sampling) provides a lot of functions to estimate standard error for several type of samples
82
- * Module Statsample::Test provides several methods and classes to perform inferencial statistics
83
- * Statsample::Test::BartlettSphericity
84
- * Statsample::Test::ChiSquare
85
- * Statsample::Test::F
86
- * Statsample::Test::KolmogorovSmirnov (only D value)
87
- * Statsample::Test::Levene
88
- * Statsample::Test::UMannWhitney
89
- * Statsample::Test::T
90
- * Statsample::Test::WilcoxonSignedRank
91
- * Module Graph provides several classes to create beautiful graphs using rubyvis
92
- * Statsample::Graph::Boxplot
93
- * Statsample::Graph::Histogram
94
- * Statsample::Graph::Scatterplot
95
- * Gem +bio-statsample-timeseries- provides module Statsample::TimeSeries with support for time series, including ARIMA estimation using Kalman-Filter.
96
- * Gem +statsample-sem+ provides a DSL to R libraries +sem+ and +OpenMx+
97
- * Close integration with gem <tt>reportbuilder</tt>, to easily create reports on text, html and rtf formats.
98
-
99
- # Examples of use:
59
+ - Software Design:
60
+ - One module/class for each type of analysis
61
+ - Options can be set as hash on initialize() or as setters methods
62
+ - Clean API for interactive sessions
63
+ - summary() returns all necessary informacion for interactive sessions
64
+ - All statistical data available though methods on objects
65
+ - All (important) methods should be tested. Better with random data.
66
+ - Statistical Design
67
+ - Results are tested against text results, SPSS and R outputs.
68
+ - Go beyond Null Hiphotesis Testing, using confidence intervals and effect sizes when possible
69
+ - (When possible) All references for methods are documented, providing sensible information on documentation
70
+
71
+ # Features
72
+
73
+ - Classes for manipulation and storage of data:
74
+ - Statsample::Vector: An extension of an array, with statistical methods like sum, mean and standard deviation
75
+ - Statsample::Dataset: a group of Statsample::Vector, analog to a excel spreadsheet or a dataframe on R. The base of almost all operations on statsample.
76
+ - Statsample::Multiset: multiple datasets with same fields and type of vectors
77
+ - Anova module provides generic Statsample::Anova::OneWay and vector based Statsample::Anova::OneWayWithVectors. Also you can create contrast using Statsample::Anova::Contrast
78
+ - Module Statsample::Bivariate provides covariance and pearson, spearman, point biserial, tau a, tau b, gamma, tetrachoric (see Bivariate::Tetrachoric) and polychoric (see Bivariate::Polychoric) correlations. Include methods to create correlation and covariance matrices
79
+ - Multiple types of regression.
80
+ - Simple Regression : Statsample::Regression::Simple
81
+ - Multiple Regression: Statsample::Regression::Multiple
82
+ - Logit Regression: Statsample::Regression::Binomial::Logit
83
+ - Probit Regression: Statsample::Regression::Binomial::Probit
84
+ - Factorial Analysis algorithms on Statsample::Factor module.
85
+ - Classes for Extraction of factors:
86
+ - Statsample::Factor::PCA
87
+ - Statsample::Factor::PrincipalAxis
88
+ - Classes for Rotation of factors:
89
+ - Statsample::Factor::Varimax
90
+ - Statsample::Factor::Equimax
91
+ - Statsample::Factor::Quartimax
92
+ - Classes for calculation of factors to retain
93
+ - Statsample::Factor::ParallelAnalysis performs Horn's 'parallel analysis' to a principal components analysis to adjust for sample bias in the retention of components.
94
+ - Statsample::Factor::MAP performs Velicer's Minimum Average Partial (MAP) test, which retain components as long as the variance in the correlation matrix represents systematic variance.
95
+ - Dominance Analysis. Based on Budescu and Azen papers, dominance analysis is a method to analyze the relative importance of one predictor relative to another on multiple regression
96
+ - Statsample::DominanceAnalysis class can report dominance analysis for a sample, using uni or multivariate dependent variables
97
+ - Statsample::DominanceAnalysis::Bootstrap can execute bootstrap analysis to determine dominance stability, as recomended by Azen & Budescu (2003) link[http://psycnet.apa.org/journals/met/8/2/129/].
98
+ - Module Statsample::Codification, to help to codify open questions
99
+ - Converters to import and export data:
100
+ - Statsample::Database : Can create sql to create tables, read and insert data
101
+ - Statsample::CSV : Read and write CSV files
102
+ - Statsample::Excel : Read and write Excel files
103
+ - Statsample::Mx : Write Mx Files
104
+ - Statsample::GGobi : Write Ggobi files
105
+ - Module Statsample::Crosstab provides function to create crosstab for categorical data
106
+ - Module Statsample::Reliability provides functions to analyze scales with psychometric methods.
107
+ - Class Statsample::Reliability::ScaleAnalysis provides statistics like mean, standard deviation for a scale, Cronbach's alpha and standarized Cronbach's alpha, and for each item: mean, correlation with total scale, mean if deleted, Cronbach's alpha is deleted.
108
+ - Class Statsample::Reliability::MultiScaleAnalysis provides a DSL to easily analyze reliability of multiple scales and retrieve correlation matrix and factor analysis of them.
109
+ - Class Statsample::Reliability::ICC provides intra-class correlation, using Shrout & Fleiss(1979) and McGraw & Wong (1996) formulations.
110
+ - Module Statsample::SRS (Simple Random Sampling) provides a lot of functions to estimate standard error for several type of samples
111
+ - Module Statsample::Test provides several methods and classes to perform inferencial statistics
112
+ - Statsample::Test::BartlettSphericity
113
+ - Statsample::Test::ChiSquare
114
+ - Statsample::Test::F
115
+ - Statsample::Test::KolmogorovSmirnov (only D value)
116
+ - Statsample::Test::Levene
117
+ - Statsample::Test::UMannWhitney
118
+ - Statsample::Test::T
119
+ - Statsample::Test::WilcoxonSignedRank
120
+ - Module Graph provides several classes to create beautiful graphs using rubyvis
121
+ - Statsample::Graph::Boxplot
122
+ - Statsample::Graph::Histogram
123
+ - Statsample::Graph::Scatterplot
124
+ - Gem <tt>bio-statsample-timeseries</tt> provides module Statsample::TimeSeries with support for time series, including ARIMA estimation using Kalman-Filter.
125
+ - Gem <tt>statsample-sem</tt> provides a DSL to R libraries +sem+ and +OpenMx+
126
+ - Gem <tt>statsample-glm</tt> provides you with GML method, to work with Logistic, Poisson and Gaussian regression ,using ML or IRWLS.
127
+ - Close integration with gem <tt>reportbuilder</tt>, to easily create reports on text, html and rtf formats.
128
+
129
+ # Usage
100
130
 
101
131
  See the [examples folder](https://github.com/clbustos/statsample/tree/master/examples/) too.
102
132
 
@@ -105,18 +135,23 @@ See the [examples folder](https://github.com/clbustos/statsample/tree/master/exa
105
135
  ```ruby
106
136
  require 'statsample'
107
137
 
108
- ss_analysis(Statsample::Graph::Boxplot) do
109
- n=30
110
- a=rnorm(n-1,50,10)
111
- b=rnorm(n, 30,5)
112
- c=rnorm(n,5,1)
138
+ ss_analysis(Statsample::Graph::Boxplot) do
139
+ n = 30
140
+ a = rnorm(n-1, 50, 10)
141
+ b = rnorm(n, 30, 5)
142
+ c = rnorm(n, 5, 1)
113
143
  a.push(2)
114
- boxplot(:vectors=>[a,b,c], :width=>300, :height=>300, :groups=>%w{first first second}, :minimum=>0)
144
+ boxplot(vectors: [a, b, c],
145
+ width: 300,
146
+ height: 300,
147
+ groups: %w{first first second},
148
+ minimum: 0)
115
149
  end
150
+
116
151
  Statsample::Analysis.run # Open svg file on *nix application defined
117
152
  ```
118
153
 
119
- ### Correlation matrix
154
+ ## Correlation matrix
120
155
 
121
156
  ```ruby
122
157
  require 'statsample'
@@ -124,67 +159,27 @@ require 'statsample'
124
159
  # and correlation matrix
125
160
 
126
161
  ss_analysis("Statsample::Bivariate.correlation_matrix") do
127
- samples=1000
128
- ds=data_frame(
129
- 'a'=>rnorm(samples),
130
- 'b'=>rnorm(samples),
131
- 'c'=>rnorm(samples),
132
- 'd'=>rnorm(samples))
133
- cm=cor(ds)
162
+ samples = 1000
163
+ ds = data_frame(
164
+ 'a' => rnorm(samples),
165
+ 'b' => rnorm(samples),
166
+ 'c' => rnorm(samples),
167
+ 'd' => rnorm(samples))
168
+ cm = cor(ds)
134
169
  summary(cm)
135
170
  end
136
171
 
137
172
  Statsample::Analysis.run_batch # Echo output to console
138
173
  ```
139
174
 
140
- ## Requirements
141
-
142
- Optional:
143
-
144
- * Plotting: gnuplot and rbgnuplot, SVG::Graph
145
- * Factorial analysis and polychorical correlation(joint estimate and polychoric series): gsl library and rb-gsl (https://rubygems.org/gems/rb-gsl/). You should install it using <tt>gem install rb-gsl</tt>.
146
-
147
- *Note*: Use gsl 1.12.109 or later.
148
-
149
- ## Resources
150
-
151
- * Source code on github :: http://github.com/clbustos/statsample
152
- * Docs :: http://rubydoc.info/gems/statsample/
153
- * Bug report and feature request :: http://github.com/clbustos/statsample/issues
154
- * E-mailing list :: http://groups.google.com/group/statsample
155
-
156
- # Installation
157
-
158
- ```bash
159
- $ sudo gem install statsample
160
- ```
161
-
162
- On *nix, you should install statsample-optimization to retrieve gems gsl, statistics2 and a C extension to speed some methods.
163
-
164
- There are available precompiled version for Ruby 1.9 on x86, x86_64 and mingw32 archs.
165
-
166
- ```bash
167
- $ sudo gem install statsample-optimization
168
- ```
175
+ # Resources
169
176
 
170
- If you use Ruby 1.8, you should compile statsample-optimization, usign parameter <tt>--platform ruby</tt>
177
+ - Source code on github :: http://github.com/sciruby/statsample
178
+ - Bug report and feature request :: http://github.com/sciruby/statsample/issues
179
+ - E-mailing list :: https://groups.google.com/forum/#!forum/sciruby-dev
171
180
 
172
- ```bash
173
- $ sudo gem install statsample-optimization --platform ruby
174
- ```
175
-
176
- If you need to work on Structural Equation Modeling, you could see +statsample-sem+. You need R with +sem+ or +OpenMx+ [http://openmx.psyc.virginia.edu/] libraries installed
177
-
178
- ```bash
179
- $ sudo gem install statsample-sem
180
- ```
181
-
182
- Available setup.rb file
183
-
184
- ```bash
185
- sudo gem ruby setup.rb
186
- ```
181
+ # License
187
182
 
188
- ## License
183
+ BSD-3 (See LICENSE.txt)
189
184
 
190
- GPL-2 (See LICENSE.txt)
185
+ Could change between version, without previous warning. If you want a specific license, just choose the version that you need.
data/Rakefile CHANGED
@@ -1,32 +1,30 @@
1
- #!/usr/bin/ruby
2
- # -*- ruby -*-
3
- # -*- coding: utf-8 -*-
4
- $:.unshift(File.dirname(__FILE__)+'/lib/')
1
+ $:.unshift File.expand_path("../lib/", __FILE__)
5
2
 
6
- require 'rubygems'
7
- require 'statsample'
8
- require 'hoe'
9
- require 'rdoc'
3
+ require 'statsample/version'
4
+ require 'rake'
5
+ require 'rake/testtask'
6
+ require 'rdoc/task'
7
+ require 'bundler/gem_tasks'
10
8
 
11
- Hoe.plugin :git
12
- Hoe.plugin :doofus
13
- desc "Ruby Lint"
14
- task :lint do
15
- executable=Config::CONFIG['RUBY_INSTALL_NAME']
16
- Dir.glob("lib/**/*.rb") {|f|
17
- if !system %{#{executable} -w -c "#{f}"}
18
- puts "Error on: #{f}"
19
- end
20
- }
9
+ # Setup the necessary gems, specified in the gemspec.
10
+ require 'bundler'
11
+ begin
12
+ Bundler.setup(:default, :development)
13
+ rescue Bundler::BundlerError => e
14
+ $stderr.puts e.message
15
+ $stderr.puts "Run `bundle install` to install missing gems"
16
+ exit e.status_code
21
17
  end
22
18
 
23
- task :release do
24
- system %{git push origin master}
19
+ Rake::TestTask.new do |t|
20
+ t.pattern = "test/test_*.rb"
25
21
  end
26
22
 
27
- task "clobber_docs" do
28
- # Only to omit warnings
23
+ RDoc::Task.new do |rdoc|
24
+ rdoc.main = "README.md"
25
+ rdoc.rdoc_files.include("README.md", "lib", "History.txt", "LICENSE.txt", "references.txt")
29
26
  end
27
+
30
28
  desc "Update pot/po files."
31
29
  task "gettext:updatepo" do
32
30
  require 'gettext/tools'
@@ -37,84 +35,4 @@ desc "Create mo-files"
37
35
  task "gettext:makemo" do
38
36
  require 'gettext/tools'
39
37
  GetText.create_mofiles()
40
- # GetText.create_mofiles(true, "po", "locale") # This is for "Ruby on Rails".
41
- end
42
-
43
- h=Hoe.spec('statsample') do
44
- self.version=Statsample::VERSION
45
- self.urls=["https://github.com/clbustos/statsample"]
46
- #self.testlib=:minitest
47
- self.readme_file = 'README.md'
48
- self.urls = ['https://github.com/clbustos/statsample']
49
- self.developer('Claudio Bustos', 'clbustos@gmail.com')
50
- self.extra_deps << ["spreadsheet","~>0.6"] << ["reportbuilder", "~>1.4"] << ["minimization", "~>0.2.0"] << ["fastercsv", ">0"] << ["dirty-memoize", "~>0.0"] << ["extendmatrix","~>0.3.1"] << ["statsample-bivariate-extension", ">0"] << ["rserve-client"] << ["rubyvis"] << ["distribution"]
51
-
52
- self.extra_dev_deps << ["hoe","~>0"] << ["shoulda","~>3"] << ["minitest", "~>2"] << ["gettext", "~>0"] << ["mocha", "~>0"] << ["hoe-git", "~>0"]
53
-
54
- self.clean_globs << "test/images/*" << "demo/item_analysis/*" << "demo/Regression"
55
- self.post_install_message = <<-EOF
56
- ***************************************************
57
- Thanks for installing statsample.
58
-
59
- On *nix, you could install statsample-optimization
60
- to retrieve gems gsl, statistics2 and a C extension
61
- to speed some methods.
62
-
63
- $ sudo gem install statsample-optimization
64
-
65
- On Ubuntu, install build-essential and libgsl0-dev
66
- using apt-get. Compile ruby 1.8 or 1.9 from
67
- source code first.
68
-
69
- $ sudo apt-get install build-essential libgsl0-dev
70
-
71
-
72
- *****************************************************
73
- EOF
74
- self.need_rdoc=false
75
- end
76
-
77
- if Rake.const_defined?(:RDocTask)
78
- Rake::RDocTask.new(:docs) do |rd|
79
- rd.main = h.readme_file
80
- rd.options << '-d' if (`which dot` =~ /\/dot/) unless
81
- ENV['NODOT'] || Hoe::WINDOZE
82
- rd.rdoc_dir = 'doc'
83
-
84
- rd.rdoc_files.include("lib/**/*.rb")
85
- rd.rdoc_files += h.spec.extra_rdoc_files
86
- rd.rdoc_files.reject! {|f| f=="Manifest.txt"}
87
- title = h.spec.rdoc_options.grep(/^(-t|--title)=?$/).first
88
- if title then
89
- rd.options << title
90
-
91
- unless title =~ /\=/ then # for ['-t', 'title here']
92
- title_index = spec.rdoc_options.index(title)
93
- rd.options << spec.rdoc_options[title_index + 1]
94
- end
95
- else
96
- title = "#{h.name}-#{h.version} Documentation"
97
- title = "#{h.rubyforge_name}'s " + title if h.rubyforge_name != h.name
98
- rd.options << '--title' << title
99
- end
100
- end
101
-
102
- end
103
-
104
- desc 'Publish rdocs with analytics support'
105
- task :publicar_docs => [:clean, :docs] do
106
- ruby %{agregar_adsense_a_doc.rb}
107
- path = File.expand_path("~/.rubyforge/user-config.yml")
108
- config = YAML.load(File.read(path))
109
- host = "#{config["username"]}@rubyforge.org"
110
-
111
- remote_dir = "/var/www/gforge-projects/#{h.rubyforge_name}/#{h.remote_rdoc_dir
112
- }"
113
- local_dir = h.local_rdoc_dir
114
- Dir.glob(local_dir+"/**/*") {|file|
115
- sh %{chmod 755 #{file}}
116
- }
117
- sh %{rsync #{h.rsync_args} #{local_dir}/ #{host}:#{remote_dir}}
118
38
  end
119
-
120
- # vim: syntax=Ruby
data/lib/spss.rb CHANGED
@@ -1,4 +1,4 @@
1
- # = spss.rb -
1
+ # = spss.rb -
2
2
  #
3
3
  # Provides utilites for working with spss files
4
4
  #
@@ -12,40 +12,43 @@ module SPSS # :nodoc: all
12
12
  def add(a)
13
13
  @elements.push(a)
14
14
  end
15
- def parse_elements(func=:to_s)
16
- @elements.collect{|e| " "+e.send(func)}.join("\n")
15
+
16
+ def parse_elements(func = :to_s)
17
+ @elements.collect{ |e| " "+e.send(func) }.join("\n")
17
18
  end
19
+
18
20
  def init_with config
19
- config.each {|key,value|
20
- self.send(key.to_s+"=",value) if methods.include? key.to_s
21
- }
21
+ config.each do |key, value|
22
+ self.send(key.to_s + "=", value) if methods.include? key.to_s
23
+ end
22
24
  end
23
- def initialize(config={})
24
- @config=config
25
- @elements=[]
25
+
26
+ def initialize(config = {})
27
+ @config = config
28
+ @elements = []
26
29
  end
27
30
  end
28
31
  class Dictionary < Element
29
32
  attr_accessor :locale, :date_time, :row_count
30
- def initialize(config={})
33
+ def initialize(config = {})
31
34
  super
32
35
  init_with ({
33
- :locale=>"en_US",
36
+ :locale=>"en_US",
34
37
  :date_time=>Time.new().strftime("%Y-%m-%dT%H:%M:%S"),
35
38
  :row_count=>1
36
39
  })
37
40
  init_with config
38
41
  end
39
-
42
+
40
43
  def to_xml
41
44
  "<dictionary locale='#{@locale}' creationDateTime='#{@date_time}' rowCount='#{@row_count}' xmlns='http://xml.spss.com/spss/data'>\n"+parse_elements(:to_xml)+"\n</dictionary>"
42
-
45
+
43
46
  end
44
47
  def to_spss
45
48
  parse_elements(:to_spss)
46
49
  end
47
50
  end
48
-
51
+
49
52
  class MissingValue < Element
50
53
  attr_accessor :data, :type, :from, :to
51
54
  def initialize(data,type=nil)
@@ -8,9 +8,9 @@ module Statsample
8
8
  attr_reader :v_rows, :v_cols
9
9
  attr_accessor :row_label, :column_label, :name, :percentage_row, :percentage_column, :percentage_total
10
10
  def initialize(v1, v2, opts=Hash.new)
11
- raise ArgumentError, "Both arguments should be Vectors" unless v1.is_a? Statsample::Vector and v2.is_a? Statsample::Vector
11
+ #raise ArgumentError, "Both arguments should be Vectors" unless v1.is_a? Statsample::Vector and v2.is_a? Statsample::Vector
12
12
  raise ArgumentError, "Vectors should be the same size" unless v1.size==v2.size
13
- @v_rows, @v_cols=Statsample.only_valid_clone(v1,v2)
13
+ @v_rows, @v_cols=Statsample.only_valid_clone(v1.to_vector,v2.to_vector)
14
14
  @cases=@v_rows.size
15
15
  @row_label=v1.name
16
16
  @column_label=v2.name