statsample 1.5.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/.build.sh +15 -0
  3. data/.gitignore +1 -0
  4. data/.travis.yml +19 -7
  5. data/CONTRIBUTING.md +33 -0
  6. data/History.txt +5 -0
  7. data/README.md +41 -53
  8. data/benchmarks/correlation_matrix_15_variables.rb +6 -5
  9. data/benchmarks/correlation_matrix_5_variables.rb +6 -5
  10. data/benchmarks/correlation_matrix_methods/correlation_matrix.rb +23 -26
  11. data/examples/boxplot.rb +17 -5
  12. data/examples/correlation_matrix.rb +36 -7
  13. data/examples/dataset.rb +25 -5
  14. data/examples/dominance_analysis.rb +8 -7
  15. data/examples/dominance_analysis_bootstrap.rb +16 -11
  16. data/examples/histogram.rb +16 -2
  17. data/examples/icc.rb +5 -6
  18. data/examples/levene.rb +17 -3
  19. data/examples/multiple_regression.rb +6 -3
  20. data/examples/parallel_analysis.rb +11 -6
  21. data/examples/polychoric.rb +26 -13
  22. data/examples/principal_axis.rb +8 -4
  23. data/examples/reliability.rb +10 -10
  24. data/examples/scatterplot.rb +8 -0
  25. data/examples/t_test.rb +7 -0
  26. data/examples/u_test.rb +10 -2
  27. data/examples/vector.rb +9 -6
  28. data/examples/velicer_map_test.rb +12 -8
  29. data/lib/statsample.rb +13 -47
  30. data/lib/statsample/analysis/suite.rb +1 -1
  31. data/lib/statsample/anova/oneway.rb +6 -6
  32. data/lib/statsample/anova/twoway.rb +26 -24
  33. data/lib/statsample/bivariate.rb +78 -61
  34. data/lib/statsample/bivariate/pearson.rb +2 -2
  35. data/lib/statsample/codification.rb +45 -32
  36. data/lib/statsample/converter/csv.rb +15 -53
  37. data/lib/statsample/converter/spss.rb +6 -5
  38. data/lib/statsample/converters.rb +50 -211
  39. data/lib/statsample/crosstab.rb +26 -25
  40. data/lib/statsample/daru.rb +117 -0
  41. data/lib/statsample/dataset.rb +70 -942
  42. data/lib/statsample/dominanceanalysis.rb +16 -17
  43. data/lib/statsample/dominanceanalysis/bootstrap.rb +26 -28
  44. data/lib/statsample/factor/parallelanalysis.rb +17 -19
  45. data/lib/statsample/factor/pca.rb +21 -20
  46. data/lib/statsample/factor/principalaxis.rb +3 -3
  47. data/lib/statsample/graph/boxplot.rb +8 -16
  48. data/lib/statsample/graph/histogram.rb +4 -4
  49. data/lib/statsample/graph/scatterplot.rb +8 -7
  50. data/lib/statsample/histogram.rb +128 -119
  51. data/lib/statsample/matrix.rb +20 -16
  52. data/lib/statsample/multiset.rb +39 -38
  53. data/lib/statsample/regression.rb +3 -3
  54. data/lib/statsample/regression/multiple.rb +8 -10
  55. data/lib/statsample/regression/multiple/alglibengine.rb +96 -89
  56. data/lib/statsample/regression/multiple/baseengine.rb +32 -32
  57. data/lib/statsample/regression/multiple/gslengine.rb +33 -36
  58. data/lib/statsample/regression/multiple/matrixengine.rb +7 -9
  59. data/lib/statsample/regression/multiple/rubyengine.rb +39 -41
  60. data/lib/statsample/reliability.rb +23 -25
  61. data/lib/statsample/reliability/icc.rb +8 -7
  62. data/lib/statsample/reliability/multiscaleanalysis.rb +14 -12
  63. data/lib/statsample/reliability/scaleanalysis.rb +58 -60
  64. data/lib/statsample/reliability/skillscaleanalysis.rb +34 -29
  65. data/lib/statsample/resample.rb +1 -1
  66. data/lib/statsample/shorthand.rb +29 -25
  67. data/lib/statsample/test/kolmogorovsmirnov.rb +5 -3
  68. data/lib/statsample/test/levene.rb +28 -27
  69. data/lib/statsample/test/t.rb +7 -9
  70. data/lib/statsample/test/umannwhitney.rb +28 -28
  71. data/lib/statsample/test/wilcoxonsignedrank.rb +45 -43
  72. data/lib/statsample/vector.rb +70 -1013
  73. data/lib/statsample/version.rb +1 -1
  74. data/statsample.gemspec +12 -16
  75. data/test/helpers_tests.rb +1 -1
  76. data/test/test_analysis.rb +17 -17
  77. data/test/test_anova_contrast.rb +6 -6
  78. data/test/test_anovatwowaywithdataset.rb +8 -8
  79. data/test/test_anovawithvectors.rb +8 -8
  80. data/test/test_awesome_print_bug.rb +1 -1
  81. data/test/test_bartlettsphericity.rb +4 -4
  82. data/test/test_bivariate.rb +48 -43
  83. data/test/test_codification.rb +33 -33
  84. data/test/test_crosstab.rb +9 -9
  85. data/test/test_dataset.rb +28 -458
  86. data/test/test_factor.rb +46 -38
  87. data/test/test_factor_pa.rb +22 -13
  88. data/test/test_ggobi.rb +4 -4
  89. data/test/test_gsl.rb +4 -4
  90. data/test/test_histogram.rb +3 -3
  91. data/test/test_matrix.rb +13 -13
  92. data/test/test_multiset.rb +103 -91
  93. data/test/test_regression.rb +57 -52
  94. data/test/test_reliability.rb +55 -45
  95. data/test/test_reliability_icc.rb +8 -8
  96. data/test/test_reliability_skillscale.rb +26 -24
  97. data/test/test_resample.rb +1 -1
  98. data/test/test_statistics.rb +3 -13
  99. data/test/test_stest.rb +9 -9
  100. data/test/test_stratified.rb +3 -3
  101. data/test/test_test_t.rb +12 -12
  102. data/test/test_umannwhitney.rb +2 -2
  103. data/test/test_vector.rb +76 -613
  104. data/test/test_wilcoxonsignedrank.rb +4 -4
  105. metadata +57 -28
  106. data/lib/statsample/rserve_extension.rb +0 -20
  107. data/lib/statsample/vector/gsl.rb +0 -106
  108. data/test/fixtures/repeated_fields.csv +0 -7
  109. data/test/fixtures/scientific_notation.csv +0 -4
  110. data/test/fixtures/test_csv.csv +0 -7
  111. data/test/fixtures/test_xls.xls +0 -0
  112. data/test/test_csv.rb +0 -63
  113. data/test/test_rserve_extension.rb +0 -42
  114. data/test/test_xls.rb +0 -52
@@ -1,42 +0,0 @@
1
- require(File.expand_path(File.dirname(__FILE__) + '/helpers_tests.rb'))
2
- begin
3
- require 'rserve'
4
- require 'statsample/rserve_extension'
5
-
6
- class StatsampleRserveExtensionTestCase < Minitest::Test
7
- context 'Statsample Rserve extensions' do
8
- setup do
9
- @r = Rserve::Connection.new
10
- end
11
- teardown do
12
- @r.close
13
- end
14
- should 'return a valid rexp for numeric vector' do
15
- a = 100.times.map { |i| rand > 0.9 ? nil : i + rand }.to_numeric
16
- rexp = a.to_REXP
17
- assert(rexp.is_a? Rserve::REXP::Double)
18
- assert_equal(rexp.to_ruby, a.data_with_nils)
19
- @r.assign 'a', rexp
20
- assert_equal(a.data_with_nils, @r.eval('a').to_ruby)
21
- end
22
- should 'return a valid rserve dataframe for statsample datasets' do
23
- a = 100.times.map { |i| rand > 0.9 ? nil : i + rand }.to_numeric
24
- b = 100.times.map { |i| rand > 0.9 ? nil : i + rand }.to_numeric
25
- c = 100.times.map { |i| rand > 0.9 ? nil : i + rand }.to_numeric
26
- ds = { 'a' => a, 'b' => b, 'c' => c }.to_dataset
27
- rexp = ds.to_REXP
28
- assert(rexp.is_a? Rserve::REXP::GenericVector)
29
- ret = rexp.to_ruby
30
- assert_equal(a.data_with_nils, ret['a'])
31
- @r.assign 'df', rexp
32
- out_df = @r.eval('df').to_ruby
33
- assert_equal('data.frame', out_df.attributes['class'])
34
- assert_equal(%w(a b c), out_df.attributes['names'])
35
- assert_equal(a.data_with_nils, out_df['a'])
36
- end
37
- end
38
- end
39
-
40
- rescue LoadError
41
- puts 'Require rserve extension'
42
- end
@@ -1,52 +0,0 @@
1
- require(File.expand_path(File.dirname(__FILE__) + '/helpers_tests.rb'))
2
- class StatsampleExcelTestCase < Minitest::Test
3
- context 'Excel reader' do
4
- setup do
5
- @ds = Statsample::Excel.read(File.dirname(__FILE__) + '/fixtures/test_xls.xls')
6
- end
7
- should 'set the number of cases' do
8
- assert_equal(6, @ds.cases)
9
- end
10
- should 'set correct field names' do
11
- assert_equal(%w(id name age city a1), @ds.fields)
12
- end
13
- should 'set a dataset equal to expected' do
14
- id = [1, 2, 3, 4, 5, 6].to_vector(:numeric)
15
- name = %w(Alex Claude Peter Franz George Fernand).to_vector(:object)
16
- age = [20, 23, 25, nil, 5.5, nil].to_vector(:numeric)
17
- city = ['New York', 'London', 'London', 'Paris', 'Tome', nil].to_vector(:object)
18
- a1 = ['a,b', 'b,c', 'a', nil, 'a,b,c', nil].to_vector(:object)
19
- ds_exp = Statsample::Dataset.new({ 'id' => id, 'name' => name, 'age' => age, 'city' => city, 'a1' => a1 }, %w(id name age city a1))
20
- ds_exp.fields.each{|f|
21
- assert_equal(ds_exp[f], @ds[f])
22
- }
23
- assert_equal(ds_exp, @ds)
24
- end
25
- should 'set to nil empty cells' do
26
- assert_equal(nil, @ds['age'][5])
27
- end
28
- end
29
- context 'Excel writer' do
30
- setup do
31
- a = 100.times.map { rand(100) }.to_numeric
32
- b = (['b'] * 100).to_vector
33
- @ds = { 'b' => b, 'a' => a }.to_dataset(%w(b a))
34
- tempfile = Tempfile.new('test_write.xls')
35
- Statsample::Excel.write(@ds, tempfile.path)
36
- @ds2 = Statsample::Excel.read(tempfile.path)
37
- end
38
- should 'return same fields as original' do
39
- assert_equal(@ds.fields, @ds2.fields)
40
- end
41
- should 'return same number of cases as original' do
42
- assert_equal(@ds.cases, @ds2.cases)
43
- end
44
- should 'return same cases as original' do
45
- i = 0
46
- @ds2.each_array do |row|
47
- assert_equal(@ds.case_as_array(i), row)
48
- i += 1
49
- end
50
- end
51
- end
52
- end