statsample 1.5.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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