statsample 1.4.3 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/History.txt +8 -0
  3. data/benchmarks/correlation_matrix_15_variables.rb +1 -1
  4. data/benchmarks/correlation_matrix_5_variables.rb +1 -1
  5. data/benchmarks/correlation_matrix_methods/correlation_matrix.rb +2 -2
  6. data/examples/dataset.rb +2 -2
  7. data/examples/icc.rb +1 -1
  8. data/examples/levene.rb +2 -2
  9. data/examples/parallel_analysis.rb +1 -1
  10. data/examples/u_test.rb +2 -2
  11. data/examples/vector.rb +1 -1
  12. data/examples/velicer_map_test.rb +1 -1
  13. data/lib/statsample.rb +30 -4
  14. data/lib/statsample/anova/oneway.rb +3 -3
  15. data/lib/statsample/anova/twoway.rb +3 -3
  16. data/lib/statsample/bivariate.rb +7 -7
  17. data/lib/statsample/bivariate/pearson.rb +2 -2
  18. data/lib/statsample/converter/csv.rb +1 -1
  19. data/lib/statsample/converters.rb +7 -7
  20. data/lib/statsample/dataset.rb +8 -8
  21. data/lib/statsample/dominanceanalysis.rb +4 -4
  22. data/lib/statsample/dominanceanalysis/bootstrap.rb +8 -8
  23. data/lib/statsample/factor.rb +2 -4
  24. data/lib/statsample/factor/map.rb +2 -1
  25. data/lib/statsample/factor/parallelanalysis.rb +2 -2
  26. data/lib/statsample/factor/pca.rb +2 -2
  27. data/lib/statsample/factor/principalaxis.rb +2 -2
  28. data/lib/statsample/graph/boxplot.rb +4 -4
  29. data/lib/statsample/graph/histogram.rb +2 -2
  30. data/lib/statsample/graph/scatterplot.rb +4 -4
  31. data/lib/statsample/matrix.rb +20 -6
  32. data/lib/statsample/regression.rb +2 -2
  33. data/lib/statsample/regression/multiple.rb +3 -3
  34. data/lib/statsample/regression/multiple/alglibengine.rb +5 -5
  35. data/lib/statsample/regression/multiple/baseengine.rb +3 -3
  36. data/lib/statsample/regression/multiple/gslengine.rb +5 -5
  37. data/lib/statsample/regression/multiple/rubyengine.rb +4 -4
  38. data/lib/statsample/reliability/icc.rb +1 -1
  39. data/lib/statsample/reliability/multiscaleanalysis.rb +4 -4
  40. data/lib/statsample/reliability/scaleanalysis.rb +6 -6
  41. data/lib/statsample/reliability/skillscaleanalysis.rb +1 -1
  42. data/lib/statsample/resample.rb +1 -1
  43. data/lib/statsample/shorthand.rb +1 -1
  44. data/lib/statsample/test/bartlettsphericity.rb +1 -1
  45. data/lib/statsample/test/levene.rb +4 -4
  46. data/lib/statsample/test/t.rb +3 -3
  47. data/lib/statsample/test/umannwhitney.rb +2 -2
  48. data/lib/statsample/vector.rb +103 -80
  49. data/lib/statsample/vector/gsl.rb +16 -16
  50. data/lib/statsample/version.rb +1 -1
  51. data/test/test_analysis.rb +1 -1
  52. data/test/test_anova_contrast.rb +4 -4
  53. data/test/test_anovatwowaywithdataset.rb +1 -1
  54. data/test/test_anovawithvectors.rb +6 -6
  55. data/test/test_awesome_print_bug.rb +1 -1
  56. data/test/test_bartlettsphericity.rb +3 -3
  57. data/test/test_bivariate.rb +38 -38
  58. data/test/test_crosstab.rb +2 -2
  59. data/test/test_csv.rb +6 -6
  60. data/test/test_dataset.rb +79 -79
  61. data/test/test_factor.rb +55 -49
  62. data/test/test_factor_pa.rb +4 -4
  63. data/test/test_ggobi.rb +3 -3
  64. data/test/test_gsl.rb +3 -3
  65. data/test/test_histogram.rb +3 -3
  66. data/test/test_matrix.rb +5 -5
  67. data/test/test_multiset.rb +19 -19
  68. data/test/test_regression.rb +27 -27
  69. data/test/test_reliability.rb +14 -14
  70. data/test/test_reliability_icc.rb +7 -7
  71. data/test/test_reliability_skillscale.rb +6 -6
  72. data/test/test_resample.rb +1 -1
  73. data/test/test_rserve_extension.rb +4 -4
  74. data/test/test_statistics.rb +5 -5
  75. data/test/test_stest.rb +8 -8
  76. data/test/test_stratified.rb +3 -3
  77. data/test/test_test_t.rb +5 -5
  78. data/test/test_umannwhitney.rb +2 -2
  79. data/test/test_vector.rb +153 -119
  80. data/test/test_wilcoxonsignedrank.rb +4 -4
  81. data/test/test_xls.rb +6 -6
  82. metadata +3 -53
@@ -18,7 +18,7 @@ module Statsample
18
18
  end
19
19
 
20
20
  def gsl
21
- @gsl||=GSL::Vector.alloc(@scale_data) if @scale_data.size>0
21
+ @gsl||=GSL::Vector.alloc(@numeric_data) if @numeric_data.size>0
22
22
  end
23
23
 
24
24
  alias :to_gsl :gsl
@@ -26,7 +26,7 @@ module Statsample
26
26
  if flawed?
27
27
  vector_standarized_compute_ruby(m,sd)
28
28
  else
29
- gsl.collect {|x| (x.to_f - m).quo(sd)}.to_scale
29
+ gsl.collect {|x| (x.to_f - m).quo(sd)}.to_numeric
30
30
  end
31
31
  end
32
32
 
@@ -34,20 +34,20 @@ module Statsample
34
34
  if flawed?
35
35
  vector_centered_compute_ruby(m)
36
36
  else
37
- gsl.collect {|x| (x.to_f - m)}.to_scale
37
+ gsl.collect {|x| (x.to_f - m)}.to_numeric
38
38
  end
39
39
  end
40
40
  def sample_with_replacement(sample=1)
41
- if(@type!=:scale)
41
+ if(@type!=:numeric)
42
42
  sample_with_replacement_ruby(sample)
43
43
  else
44
44
  r = GSL::Rng.alloc(GSL::Rng::MT19937,rand(10000))
45
- Statsample::Vector.new(r.sample(gsl, sample).to_a,:scale)
45
+ Statsample::Vector.new(r.sample(gsl, sample).to_a,:numeric)
46
46
  end
47
47
  end
48
48
 
49
49
  def sample_without_replacement(sample=1)
50
- if(@type!=:scale)
50
+ if(@type!=:numeric)
51
51
  sample_without_replacement_ruby(sample)
52
52
  else
53
53
  r = GSL::Rng.alloc(GSL::Rng::MT19937,rand(10000))
@@ -55,50 +55,50 @@ module Statsample
55
55
  end
56
56
  end
57
57
  def median
58
- if @type!=:scale
58
+ if @type!=:numeric
59
59
  median_ruby
60
60
  else
61
- sorted=GSL::Vector.alloc(@scale_data.sort)
61
+ sorted=GSL::Vector.alloc(@numeric_data.sort)
62
62
  GSL::Stats::median_from_sorted_data(sorted)
63
63
  end
64
64
  end
65
65
 
66
66
  def sum
67
- check_type :scale
67
+ check_type :numeric
68
68
  gsl.nil? ? nil : gsl.sum
69
69
  end
70
70
  def mean
71
- check_type :scale
71
+ check_type :numeric
72
72
  gsl.nil? ? nil : gsl.mean
73
73
  end
74
74
  def variance_sample(m=nil)
75
- check_type :scale
75
+ check_type :numeric
76
76
  m||=mean
77
77
  gsl.nil? ? nil : gsl.variance_m
78
78
  end
79
79
 
80
80
  def standard_deviation_sample(m=nil)
81
- check_type :scale
81
+ check_type :numeric
82
82
  m||=mean
83
83
  gsl.nil? ? nil : gsl.sd(m)
84
84
  end
85
85
 
86
86
  def variance_population(m=nil) # :nodoc:
87
- check_type :scale
87
+ check_type :numeric
88
88
  m||=mean
89
89
  gsl.nil? ? nil : gsl.variance_with_fixed_mean(m)
90
90
  end
91
91
  def standard_deviation_population(m=nil) # :nodoc:
92
- check_type :scale
92
+ check_type :numeric
93
93
  m||=mean
94
94
  gsl.nil? ? nil : gsl.sd_with_fixed_mean(m)
95
95
  end
96
96
  def skew # :nodoc:
97
- check_type :scale
97
+ check_type :numeric
98
98
  gsl.nil? ? nil : gsl.skew
99
99
  end
100
100
  def kurtosis # :nodoc:
101
- check_type :scale
101
+ check_type :numeric
102
102
  gsl.nil? ? nil : gsl.kurtosis
103
103
  end
104
104
  end
@@ -1,3 +1,3 @@
1
1
  module Statsample
2
- VERSION = '1.4.3'
2
+ VERSION = '1.5.0'
3
3
  end
@@ -39,7 +39,7 @@ class StatsampleAnalysisTestCase < Minitest::Test
39
39
  should 'to_text returns the same as a normal ReportBuilder object' do
40
40
  rb = ReportBuilder.new(name: :test)
41
41
  section = ReportBuilder::Section.new(name: 'first')
42
- a = [1, 2, 3].to_scale
42
+ a = [1, 2, 3].to_numeric
43
43
  section.add('first')
44
44
  section.add(a)
45
45
  rb.add(section)
@@ -2,10 +2,10 @@ require(File.expand_path(File.dirname(__FILE__) + '/helpers_tests.rb'))
2
2
  class StatsampleAnovaContrastTestCase < Minitest::Test
3
3
  context(Statsample::Anova::Contrast) do
4
4
  setup do
5
- constant = [12, 13, 11, 12, 12].to_scale
6
- frequent = [9, 10, 9, 13, 14].to_scale
7
- infrequent = [15, 16, 17, 16, 16].to_scale
8
- never = [17, 18, 12, 18, 20].to_scale
5
+ constant = [12, 13, 11, 12, 12].to_numeric
6
+ frequent = [9, 10, 9, 13, 14].to_numeric
7
+ infrequent = [15, 16, 17, 16, 16].to_numeric
8
+ never = [17, 18, 12, 18, 20].to_numeric
9
9
  @vectors = [constant, frequent, infrequent, never]
10
10
  @c = Statsample::Anova::Contrast.new(vectors: @vectors)
11
11
  end
@@ -4,7 +4,7 @@ require(File.expand_path(File.dirname(__FILE__) + '/helpers_tests.rb'))
4
4
  class StatsampleAnovaTwoWayWithVectorsTestCase < Minitest::Test
5
5
  context(Statsample::Anova::TwoWayWithVectors) do
6
6
  setup do
7
- @pa = [5, 4, 3, 4, 2, 18, 19, 14, 12, 15, 6, 7, 5, 8, 4, 6, 9, 5, 9, 3].to_scale
7
+ @pa = [5, 4, 3, 4, 2, 18, 19, 14, 12, 15, 6, 7, 5, 8, 4, 6, 9, 5, 9, 3].to_numeric
8
8
  @pa.name = 'Passive Avoidance'
9
9
  @a = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1].to_vector
10
10
  @a.labels = { 0 => '0%', 1 => '35%' }
@@ -3,9 +3,9 @@ class StatsampleAnovaOneWayWithVectorsTestCase < Minitest::Test
3
3
  context(Statsample::Anova::OneWayWithVectors) do
4
4
  context('when initializing') do
5
5
  setup do
6
- @v1 = 10.times.map { rand(100) }.to_scale
7
- @v2 = 10.times.map { rand(100) }.to_scale
8
- @v3 = 10.times.map { rand(100) }.to_scale
6
+ @v1 = 10.times.map { rand(100) }.to_numeric
7
+ @v2 = 10.times.map { rand(100) }.to_numeric
8
+ @v3 = 10.times.map { rand(100) }.to_numeric
9
9
  end
10
10
  should 'be the same using [] or args*' do
11
11
  a1 = Statsample::Anova::OneWayWithVectors.new(@v1, @v2, @v3)
@@ -28,9 +28,9 @@ class StatsampleAnovaOneWayWithVectorsTestCase < Minitest::Test
28
28
  end
29
29
  end
30
30
  setup do
31
- @v1 = [3, 3, 2, 3, 6].to_vector(:scale)
32
- @v2 = [7, 6, 5, 6, 7].to_vector(:scale)
33
- @v3 = [9, 8, 9, 7, 8].to_vector(:scale)
31
+ @v1 = [3, 3, 2, 3, 6].to_vector(:numeric)
32
+ @v2 = [7, 6, 5, 6, 7].to_vector(:numeric)
33
+ @v3 = [9, 8, 9, 7, 8].to_vector(:numeric)
34
34
  @name = 'Anova testing'
35
35
  @anova = Statsample::Anova::OneWayWithVectors.new(@v1, @v2, @v3, name: @name)
36
36
  end
@@ -5,7 +5,7 @@ class StatsampleAwesomePrintBug < Minitest::Test
5
5
  require 'awesome_print'
6
6
  end
7
7
  should 'should be flawless' do
8
- a = [1, 2, 3].to_scale
8
+ a = [1, 2, 3].to_numeric
9
9
 
10
10
  assert(a != [1, 2, 3])
11
11
  assert_nothing_raised do
@@ -4,9 +4,9 @@ class StatsampleBartlettSphericityTestCase < Minitest::Test
4
4
  include Statsample::Test
5
5
  context Statsample::Test::BartlettSphericity do
6
6
  setup do
7
- @v1 = [1, 2, 3, 4, 7, 8, 9, 10, 14, 15, 20, 50, 60, 70].to_scale
8
- @v2 = [5, 6, 11, 12, 13, 16, 17, 18, 19, 20, 30, 0, 0, 0].to_scale
9
- @v3 = [10, 3, 20, 30, 40, 50, 80, 10, 20, 30, 40, 2, 3, 4].to_scale
7
+ @v1 = [1, 2, 3, 4, 7, 8, 9, 10, 14, 15, 20, 50, 60, 70].to_numeric
8
+ @v2 = [5, 6, 11, 12, 13, 16, 17, 18, 19, 20, 30, 0, 0, 0].to_numeric
9
+ @v3 = [10, 3, 20, 30, 40, 50, 80, 10, 20, 30, 40, 2, 3, 4].to_numeric
10
10
  # KMO: 0.490
11
11
  ds = { 'v1' => @v1, 'v2' => @v2, 'v3' => @v3 }.to_dataset
12
12
  cor = Statsample::Bivariate.correlation_matrix(ds)
@@ -1,38 +1,38 @@
1
1
  require(File.expand_path(File.dirname(__FILE__) + '/helpers_tests.rb'))
2
2
  class StatsampleBivariateTestCase < Minitest::Test
3
3
  should 'method sum of squares should be correct' do
4
- v1 = [1, 2, 3, 4, 5, 6].to_vector(:scale)
5
- v2 = [6, 2, 4, 10, 12, 8].to_vector(:scale)
4
+ v1 = [1, 2, 3, 4, 5, 6].to_vector(:numeric)
5
+ v2 = [6, 2, 4, 10, 12, 8].to_vector(:numeric)
6
6
  assert_equal(23.0, Statsample::Bivariate.sum_of_squares(v1, v2))
7
7
  end
8
8
  should_with_gsl 'return same covariance with ruby and gls implementation' do
9
- v1 = 20.times.collect { |_a| rand }.to_scale
10
- v2 = 20.times.collect { |_a| rand }.to_scale
9
+ v1 = 20.times.collect { |_a| rand }.to_numeric
10
+ v2 = 20.times.collect { |_a| rand }.to_numeric
11
11
  assert_in_delta(Statsample::Bivariate.covariance(v1, v2), Statsample::Bivariate.covariance_slow(v1, v2), 0.001)
12
12
  end
13
13
 
14
14
  should_with_gsl 'return same correlation with ruby and gls implementation' do
15
- v1 = 20.times.collect { |_a| rand }.to_scale
16
- v2 = 20.times.collect { |_a| rand }.to_scale
15
+ v1 = 20.times.collect { |_a| rand }.to_numeric
16
+ v2 = 20.times.collect { |_a| rand }.to_numeric
17
17
 
18
18
  assert_in_delta(GSL::Stats.correlation(v1.gsl, v2.gsl), Statsample::Bivariate.pearson_slow(v1, v2), 1e-10)
19
19
  end
20
20
  should 'return correct pearson correlation' do
21
- v1 = [6, 5, 4, 7, 8, 4, 3, 2].to_vector(:scale)
22
- v2 = [2, 3, 7, 8, 6, 4, 3, 2].to_vector(:scale)
21
+ v1 = [6, 5, 4, 7, 8, 4, 3, 2].to_vector(:numeric)
22
+ v2 = [2, 3, 7, 8, 6, 4, 3, 2].to_vector(:numeric)
23
23
  assert_in_delta(0.525, Statsample::Bivariate.pearson(v1, v2), 0.001)
24
24
  assert_in_delta(0.525, Statsample::Bivariate.pearson_slow(v1, v2), 0.001)
25
25
 
26
- v3 = [6, 2, 1000, 1000, 5, 4, 7, 8, 4, 3, 2, nil].to_vector(:scale)
27
- v4 = [2, nil, nil, nil, 3, 7, 8, 6, 4, 3, 2, 500].to_vector(:scale)
26
+ v3 = [6, 2, 1000, 1000, 5, 4, 7, 8, 4, 3, 2, nil].to_vector(:numeric)
27
+ v4 = [2, nil, nil, nil, 3, 7, 8, 6, 4, 3, 2, 500].to_vector(:numeric)
28
28
  assert_in_delta(0.525, Statsample::Bivariate.pearson(v3, v4), 0.001)
29
29
  # Test ruby method
30
30
  v3a, v4a = Statsample.only_valid v3, v4
31
31
  assert_in_delta(0.525, Statsample::Bivariate.pearson_slow(v3a, v4a), 0.001)
32
32
  end
33
33
  should 'return correct values for t_pearson and prop_pearson' do
34
- v1 = [6, 5, 4, 7, 8, 4, 3, 2].to_vector(:scale)
35
- v2 = [2, 3, 7, 8, 6, 4, 3, 2].to_vector(:scale)
34
+ v1 = [6, 5, 4, 7, 8, 4, 3, 2].to_vector(:numeric)
35
+ v2 = [2, 3, 7, 8, 6, 4, 3, 2].to_vector(:numeric)
36
36
  r = Statsample::Bivariate::Pearson.new(v1, v2)
37
37
  assert_in_delta(0.525, r.r, 0.001)
38
38
  assert_in_delta(Statsample::Bivariate.t_pearson(v1, v2), r.t, 0.001)
@@ -40,10 +40,10 @@ class StatsampleBivariateTestCase < Minitest::Test
40
40
  assert(r.summary.size > 0)
41
41
  end
42
42
  should 'return correct correlation_matrix with nils values' do
43
- v1 = [6, 5, 4, 7, 8, 4, 3, 2].to_vector(:scale)
44
- v2 = [2, 3, 7, 8, 6, 4, 3, 2].to_vector(:scale)
45
- v3 = [6, 2, 1000, 1000, 5, 4, 7, 8].to_vector(:scale)
46
- v4 = [2, nil, nil, nil, 3, 7, 8, 6].to_vector(:scale)
43
+ v1 = [6, 5, 4, 7, 8, 4, 3, 2].to_vector(:numeric)
44
+ v2 = [2, 3, 7, 8, 6, 4, 3, 2].to_vector(:numeric)
45
+ v3 = [6, 2, 1000, 1000, 5, 4, 7, 8].to_vector(:numeric)
46
+ v4 = [2, nil, nil, nil, 3, 7, 8, 6].to_vector(:numeric)
47
47
  ds = { 'v1' => v1, 'v2' => v2, 'v3' => v3, 'v4' => v4 }.to_dataset
48
48
  c = proc { |n1, n2| Statsample::Bivariate.pearson(n1, n2) }
49
49
  expected = Matrix[[c.call(v1, v1), c.call(v1, v2), c.call(v1, v3), c.call(v1, v4)], [c.call(v2, v1), c.call(v2, v2), c.call(v2, v3), c.call(v2, v4)], [c.call(v3, v1), c.call(v3, v2), c.call(v3, v3), c.call(v3, v4)],
@@ -61,11 +61,11 @@ class StatsampleBivariateTestCase < Minitest::Test
61
61
  end
62
62
  should_with_gsl 'return same values for optimized and pairwise covariance matrix' do
63
63
  cases = 100
64
- v1 = Statsample::Vector.new_scale(cases) { rand }
65
- v2 = Statsample::Vector.new_scale(cases) { rand }
66
- v3 = Statsample::Vector.new_scale(cases) { rand }
67
- v4 = Statsample::Vector.new_scale(cases) { rand }
68
- v5 = Statsample::Vector.new_scale(cases) { rand }
64
+ v1 = Statsample::Vector.new_numeric(cases) { rand }
65
+ v2 = Statsample::Vector.new_numeric(cases) { rand }
66
+ v3 = Statsample::Vector.new_numeric(cases) { rand }
67
+ v4 = Statsample::Vector.new_numeric(cases) { rand }
68
+ v5 = Statsample::Vector.new_numeric(cases) { rand }
69
69
 
70
70
  ds = { 'v1' => v1, 'v2' => v2, 'v3' => v3, 'v4' => v4, 'v5' => v5 }.to_dataset
71
71
 
@@ -76,11 +76,11 @@ class StatsampleBivariateTestCase < Minitest::Test
76
76
  end
77
77
  should_with_gsl 'return same values for optimized and pairwise correlation matrix' do
78
78
  cases = 100
79
- v1 = Statsample::Vector.new_scale(cases) { rand }
80
- v2 = Statsample::Vector.new_scale(cases) { rand }
81
- v3 = Statsample::Vector.new_scale(cases) { rand }
82
- v4 = Statsample::Vector.new_scale(cases) { rand }
83
- v5 = Statsample::Vector.new_scale(cases) { rand }
79
+ v1 = Statsample::Vector.new_numeric(cases) { rand }
80
+ v2 = Statsample::Vector.new_numeric(cases) { rand }
81
+ v3 = Statsample::Vector.new_numeric(cases) { rand }
82
+ v4 = Statsample::Vector.new_numeric(cases) { rand }
83
+ v5 = Statsample::Vector.new_numeric(cases) { rand }
84
84
 
85
85
  ds = { 'v1' => v1, 'v2' => v2, 'v3' => v3, 'v4' => v4, 'v5' => v5 }.to_dataset
86
86
 
@@ -90,10 +90,10 @@ class StatsampleBivariateTestCase < Minitest::Test
90
90
  assert_equal_matrix(cor_opt, cor_pw, 1e-15)
91
91
  end
92
92
  should 'return correct correlation_matrix without nils values' do
93
- v1 = [6, 5, 4, 7, 8, 4, 3, 2].to_vector(:scale)
94
- v2 = [2, 3, 7, 8, 6, 4, 3, 2].to_vector(:scale)
95
- v3 = [6, 2, 1000, 1000, 5, 4, 7, 8].to_vector(:scale)
96
- v4 = [2, 4, 6, 7, 3, 7, 8, 6].to_vector(:scale)
93
+ v1 = [6, 5, 4, 7, 8, 4, 3, 2].to_vector(:numeric)
94
+ v2 = [2, 3, 7, 8, 6, 4, 3, 2].to_vector(:numeric)
95
+ v3 = [6, 2, 1000, 1000, 5, 4, 7, 8].to_vector(:numeric)
96
+ v4 = [2, 4, 6, 7, 3, 7, 8, 6].to_vector(:numeric)
97
97
  ds = { 'v1' => v1, 'v2' => v2, 'v3' => v3, 'v4' => v4 }.to_dataset
98
98
  c = proc { |n1, n2| Statsample::Bivariate.pearson(n1, n2) }
99
99
  expected = Matrix[[c.call(v1, v1), c.call(v1, v2), c.call(v1, v3), c.call(v1, v4)], [c.call(v2, v1), c.call(v2, v2), c.call(v2, v3), c.call(v2, v4)], [c.call(v3, v1), c.call(v3, v2), c.call(v3, v3), c.call(v3, v4)],
@@ -129,25 +129,25 @@ class StatsampleBivariateTestCase < Minitest::Test
129
129
  end
130
130
 
131
131
  should "return correct value for Spearman's rho" do
132
- v1 = [86, 97, 99, 100, 101, 103, 106, 110, 112, 113].to_vector(:scale)
133
- v2 = [0, 20, 28, 27, 50, 29, 7, 17, 6, 12].to_vector(:scale)
132
+ v1 = [86, 97, 99, 100, 101, 103, 106, 110, 112, 113].to_vector(:numeric)
133
+ v2 = [0, 20, 28, 27, 50, 29, 7, 17, 6, 12].to_vector(:numeric)
134
134
  assert_in_delta(-0.175758, Statsample::Bivariate.spearman(v1, v2), 0.0001)
135
135
  end
136
136
  should 'return correct value for point_biserial correlation' do
137
- c = [1, 3, 5, 6, 7, 100, 200, 300, 400, 300].to_vector(:scale)
138
- d = [1, 1, 1, 1, 1, 0, 0, 0, 0, 0].to_vector(:scale)
137
+ c = [1, 3, 5, 6, 7, 100, 200, 300, 400, 300].to_vector(:numeric)
138
+ d = [1, 1, 1, 1, 1, 0, 0, 0, 0, 0].to_vector(:numeric)
139
139
  assert_raises TypeError do
140
140
  Statsample::Bivariate.point_biserial(c, d)
141
141
  end
142
142
  assert_in_delta(Statsample::Bivariate.point_biserial(d, c), Statsample::Bivariate.pearson(d, c), 0.0001)
143
143
  end
144
144
  should 'return correct value for tau_a and tau_b' do
145
- v1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].to_vector(:ordinal)
146
- v2 = [1, 3, 4, 5, 7, 8, 2, 9, 10, 6, 11].to_vector(:ordinal)
145
+ v1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].to_vector(:numeric)
146
+ v2 = [1, 3, 4, 5, 7, 8, 2, 9, 10, 6, 11].to_vector(:numeric)
147
147
  assert_in_delta(0.6727, Statsample::Bivariate.tau_a(v1, v2), 0.001)
148
148
  assert_in_delta(0.6727, Statsample::Bivariate.tau_b((Statsample::Crosstab.new(v1, v2).to_matrix)), 0.001)
149
- v1 = [12, 14, 14, 17, 19, 19, 19, 19, 19, 20, 21, 21, 21, 21, 21, 22, 23, 24, 24, 24, 26, 26, 27].to_vector(:ordinal)
150
- v2 = [11, 4, 4, 2, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0].to_vector(:ordinal)
149
+ v1 = [12, 14, 14, 17, 19, 19, 19, 19, 19, 20, 21, 21, 21, 21, 21, 22, 23, 24, 24, 24, 26, 26, 27].to_vector(:numeric)
150
+ v2 = [11, 4, 4, 2, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0].to_vector(:numeric)
151
151
  assert_in_delta(-0.376201540231705, Statsample::Bivariate.tau_b(Statsample::Crosstab.new(v1, v2).to_matrix), 0.001)
152
152
  end
153
153
  should 'return correct value for gamma correlation' do
@@ -58,8 +58,8 @@ class StatsampleCrosstabTestCase < Minitest::Test
58
58
  end
59
59
 
60
60
  def test_crosstab_with_scale
61
- v1 = %w(1 1 1 1 1 0 0 0 0 0).to_scale
62
- v2 = %w(0 0 0 0 0 1 1 1 1 1).to_scale
61
+ v1 = %w(1 1 1 1 1 0 0 0 0 0).to_numeric
62
+ v2 = %w(0 0 0 0 0 1 1 1 1 1).to_numeric
63
63
  ct = Statsample::Crosstab.new(v1, v2)
64
64
  assert_equal(Matrix[[0, 5], [5, 0]], ct.to_matrix)
65
65
  assert_nothing_raised { ct.summary }
@@ -8,11 +8,11 @@ class StatsampleCSVTestCase < Minitest::Test
8
8
  def test_read
9
9
  header = %w(id name age city a1)
10
10
  data = {
11
- 'id' => [1, 2, 3, 4, 5, 6].to_vector(:scale),
12
- 'name' => %w(Alex Claude Peter Franz George Fernand).to_vector(:nominal),
13
- 'age' => [20, 23, 25, 27, 5.5, nil].to_vector(:scale),
14
- 'city' => ['New York', 'London', 'London', 'Paris', 'Tome', nil].to_vector(:nominal),
15
- 'a1' => ['a,b', 'b,c', 'a', nil, 'a,b,c', nil].to_vector(:nominal)
11
+ 'id' => [1, 2, 3, 4, 5, 6].to_vector(:numeric),
12
+ 'name' => %w(Alex Claude Peter Franz George Fernand).to_vector(:object),
13
+ 'age' => [20, 23, 25, 27, 5.5, nil].to_vector(:numeric),
14
+ 'city' => ['New York', 'London', 'London', 'Paris', 'Tome', nil].to_vector(:object),
15
+ 'a1' => ['a,b', 'b,c', 'a', nil, 'a,b,c', nil].to_vector(:object)
16
16
  }
17
17
 
18
18
  ds_exp = Statsample::Dataset.new(data, header)
@@ -34,7 +34,7 @@ class StatsampleCSVTestCase < Minitest::Test
34
34
  def test_repeated
35
35
  ds = Statsample::CSV.read('test/fixtures/repeated_fields.csv')
36
36
  assert_equal(%w(id name_1 age_1 city a1 name_2 age_2), ds.fields)
37
- age = [3, 4, 5, 6, nil, 8].to_vector(:scale)
37
+ age = [3, 4, 5, 6, nil, 8].to_vector(:numeric)
38
38
  assert_equal(age, ds['age_2'])
39
39
  end
40
40
 
@@ -58,9 +58,9 @@ class StatsampleDatasetTestCase < Minitest::Test
58
58
  end
59
59
 
60
60
  def test_merge
61
- a = [1, 2, 3].to_scale
61
+ a = [1, 2, 3].to_numeric
62
62
  b = [3, 4, 5].to_vector
63
- c = [4, 5, 6].to_scale
63
+ c = [4, 5, 6].to_numeric
64
64
  d = [7, 8, 9].to_vector
65
65
  e = [10, 20, 30].to_vector
66
66
  ds1 = { 'a' => a, 'b' => b }.to_dataset
@@ -117,51 +117,51 @@ class StatsampleDatasetTestCase < Minitest::Test
117
117
  end
118
118
 
119
119
  def test_vector_by_calculation
120
- a1 = [1, 2, 3, 4, 5, 6, 7].to_vector(:scale)
121
- a2 = [10, 20, 30, 40, 50, 60, 70].to_vector(:scale)
122
- a3 = [100, 200, 300, 400, 500, 600, 700].to_vector(:scale)
120
+ a1 = [1, 2, 3, 4, 5, 6, 7].to_vector(:numeric)
121
+ a2 = [10, 20, 30, 40, 50, 60, 70].to_vector(:numeric)
122
+ a3 = [100, 200, 300, 400, 500, 600, 700].to_vector(:numeric)
123
123
  ds = { 'a1' => a1, 'a2' => a2, 'a3' => a3 }.to_dataset
124
124
  total = ds.vector_by_calculation {|row|
125
125
  row['a1'] + row['a2'] + row['a3']
126
126
  }
127
- expected = [111, 222, 333, 444, 555, 666, 777].to_vector(:scale)
127
+ expected = [111, 222, 333, 444, 555, 666, 777].to_vector(:numeric)
128
128
  assert_equal(expected, total)
129
129
  end
130
130
 
131
131
  def test_vector_sum
132
- a1 = [1, 2, 3, 4, 5, nil].to_vector(:scale)
133
- a2 = [10, 10, 20, 20, 20, 30].to_vector(:scale)
134
- b1 = [nil, 1, 1, 1, 1, 2].to_vector(:scale)
135
- b2 = [2, 2, 2, nil, 2, 3].to_vector(:scale)
132
+ a1 = [1, 2, 3, 4, 5, nil].to_vector(:numeric)
133
+ a2 = [10, 10, 20, 20, 20, 30].to_vector(:numeric)
134
+ b1 = [nil, 1, 1, 1, 1, 2].to_vector(:numeric)
135
+ b2 = [2, 2, 2, nil, 2, 3].to_vector(:numeric)
136
136
  ds = { 'a1' => a1, 'a2' => a2, 'b1' => b1, 'b2' => b2 }.to_dataset
137
137
  total = ds.vector_sum
138
138
  a = ds.vector_sum(%w(a1 a2))
139
139
  b = ds.vector_sum(%w(b1 b2))
140
- expected_a = [11, 12, 23, 24, 25, nil].to_vector(:scale)
141
- expected_b = [nil, 3, 3, nil, 3, 5].to_vector(:scale)
142
- expected_total = [nil, 15, 26, nil, 28, nil].to_vector(:scale)
140
+ expected_a = [11, 12, 23, 24, 25, nil].to_vector(:numeric)
141
+ expected_b = [nil, 3, 3, nil, 3, 5].to_vector(:numeric)
142
+ expected_total = [nil, 15, 26, nil, 28, nil].to_vector(:numeric)
143
143
  assert_equal(expected_a, a)
144
144
  assert_equal(expected_b, b)
145
145
  assert_equal(expected_total, total)
146
146
  end
147
147
 
148
148
  def test_vector_missing_values
149
- a1 = [1, nil, 3, 4, 5, nil].to_vector(:scale)
150
- a2 = [10, nil, 20, 20, 20, 30].to_vector(:scale)
151
- b1 = [nil, nil, 1, 1, 1, 2].to_vector(:scale)
152
- b2 = [2, 2, 2, nil, 2, 3].to_vector(:scale)
153
- c = [nil, 2, 4, 2, 2, 2].to_vector(:scale)
149
+ a1 = [1, nil, 3, 4, 5, nil].to_vector(:numeric)
150
+ a2 = [10, nil, 20, 20, 20, 30].to_vector(:numeric)
151
+ b1 = [nil, nil, 1, 1, 1, 2].to_vector(:numeric)
152
+ b2 = [2, 2, 2, nil, 2, 3].to_vector(:numeric)
153
+ c = [nil, 2, 4, 2, 2, 2].to_vector(:numeric)
154
154
  ds = { 'a1' => a1, 'a2' => a2, 'b1' => b1, 'b2' => b2, 'c' => c }.to_dataset
155
- mva = [2, 3, 0, 1, 0, 1].to_vector(:scale)
155
+ mva = [2, 3, 0, 1, 0, 1].to_vector(:numeric)
156
156
  assert_equal(mva, ds.vector_missing_values)
157
157
  end
158
158
 
159
159
  def test_has_missing_values
160
- a1 = [1, nil, 3, 4, 5, nil].to_vector(:scale)
161
- a2 = [10, nil, 20, 20, 20, 30].to_vector(:scale)
162
- b1 = [nil, nil, 1, 1, 1, 2].to_vector(:scale)
163
- b2 = [2, 2, 2, nil, 2, 3].to_vector(:scale)
164
- c = [nil, 2, 4, 2, 2, 2].to_vector(:scale)
160
+ a1 = [1, nil, 3, 4, 5, nil].to_vector(:numeric)
161
+ a2 = [10, nil, 20, 20, 20, 30].to_vector(:numeric)
162
+ b1 = [nil, nil, 1, 1, 1, 2].to_vector(:numeric)
163
+ b2 = [2, 2, 2, nil, 2, 3].to_vector(:numeric)
164
+ c = [nil, 2, 4, 2, 2, 2].to_vector(:numeric)
165
165
  ds = { 'a1' => a1, 'a2' => a2, 'b1' => b1, 'b2' => b2, 'c' => c }.to_dataset
166
166
  assert(ds.has_missing_data?)
167
167
  clean = ds.dup_only_valid
@@ -169,31 +169,31 @@ class StatsampleDatasetTestCase < Minitest::Test
169
169
  end
170
170
 
171
171
  def test_vector_count_characters
172
- a1 = [1, 'abcde', 3, 4, 5, nil].to_vector(:scale)
173
- a2 = [10, 20.3, 20, 20, 20, 30].to_vector(:scale)
174
- b1 = [nil, '343434', 1, 1, 1, 2].to_vector(:scale)
175
- b2 = [2, 2, 2, nil, 2, 3].to_vector(:scale)
176
- c = [nil, 2, 'This is a nice example', 2, 2, 2].to_vector(:scale)
172
+ a1 = [1, 'abcde', 3, 4, 5, nil].to_vector(:numeric)
173
+ a2 = [10, 20.3, 20, 20, 20, 30].to_vector(:numeric)
174
+ b1 = [nil, '343434', 1, 1, 1, 2].to_vector(:numeric)
175
+ b2 = [2, 2, 2, nil, 2, 3].to_vector(:numeric)
176
+ c = [nil, 2, 'This is a nice example', 2, 2, 2].to_vector(:numeric)
177
177
  ds = { 'a1' => a1, 'a2' => a2, 'b1' => b1, 'b2' => b2, 'c' => c }.to_dataset
178
- exp = [4, 17, 27, 5, 6, 5].to_vector(:scale)
178
+ exp = [4, 17, 27, 5, 6, 5].to_vector(:numeric)
179
179
  assert_equal(exp, ds.vector_count_characters)
180
180
  end
181
181
 
182
182
  def test_vector_mean
183
- a1 = [1, 2, 3, 4, 5, nil].to_vector(:scale)
184
- a2 = [10, 10, 20, 20, 20, 30].to_vector(:scale)
185
- b1 = [nil, 1, 1, 1, 1, 2].to_vector(:scale)
186
- b2 = [2, 2, 2, nil, 2, 3].to_vector(:scale)
187
- c = [nil, 2, 4, 2, 2, 2].to_vector(:scale)
183
+ a1 = [1, 2, 3, 4, 5, nil].to_vector(:numeric)
184
+ a2 = [10, 10, 20, 20, 20, 30].to_vector(:numeric)
185
+ b1 = [nil, 1, 1, 1, 1, 2].to_vector(:numeric)
186
+ b2 = [2, 2, 2, nil, 2, 3].to_vector(:numeric)
187
+ c = [nil, 2, 4, 2, 2, 2].to_vector(:numeric)
188
188
  ds = { 'a1' => a1, 'a2' => a2, 'b1' => b1, 'b2' => b2, 'c' => c }.to_dataset
189
189
  total = ds.vector_mean
190
190
  a = ds.vector_mean(%w(a1 a2), 1)
191
191
  b = ds.vector_mean(%w(b1 b2), 1)
192
192
  c = ds.vector_mean(%w(b1 b2 c), 1)
193
- expected_a = [5.5, 6, 11.5, 12, 12.5, 30].to_vector(:scale)
194
- expected_b = [2, 1.5, 1.5, 1, 1.5, 2.5].to_vector(:scale)
195
- expected_c = [nil, 5.0 / 3, 7.0 / 3, 1.5, 5.0 / 3, 7.0 / 3].to_vector(:scale)
196
- expected_total = [nil, 3.4, 6, nil, 6.0, nil].to_vector(:scale)
193
+ expected_a = [5.5, 6, 11.5, 12, 12.5, 30].to_vector(:numeric)
194
+ expected_b = [2, 1.5, 1.5, 1, 1.5, 2.5].to_vector(:numeric)
195
+ expected_c = [nil, 5.0 / 3, 7.0 / 3, 1.5, 5.0 / 3, 7.0 / 3].to_vector(:numeric)
196
+ expected_total = [nil, 3.4, 6, nil, 6.0, nil].to_vector(:numeric)
197
197
  assert_equal(expected_a, a)
198
198
  assert_equal(expected_b, b)
199
199
  assert_equal(expected_c, c)
@@ -210,9 +210,9 @@ class StatsampleDatasetTestCase < Minitest::Test
210
210
  end
211
211
 
212
212
  def test_recode
213
- @ds['age'].type = :scale
213
+ @ds['age'].type = :numeric
214
214
  @ds.recode!('age') { |c| c['id'] * 2 }
215
- expected = [2, 4, 6, 8, 10].to_vector(:scale)
215
+ expected = [2, 4, 6, 8, 10].to_vector(:numeric)
216
216
  assert_equal(expected, @ds['age'])
217
217
  end
218
218
 
@@ -231,8 +231,8 @@ class StatsampleDatasetTestCase < Minitest::Test
231
231
  end
232
232
 
233
233
  def test_change_type
234
- @ds.col('age').type = :scale
235
- assert_equal(:scale, @ds.col('age').type)
234
+ @ds.col('age').type = :numeric
235
+ assert_equal(:numeric, @ds.col('age').type)
236
236
  end
237
237
 
238
238
  def test_split_by_separator_recode
@@ -255,13 +255,13 @@ class StatsampleDatasetTestCase < Minitest::Test
255
255
  end
256
256
 
257
257
  def test_percentiles
258
- v1 = (1..100).to_a.to_scale
258
+ v1 = (1..100).to_a.to_numeric
259
259
  assert_equal(50.5, v1.median)
260
260
  assert_equal(25.5, v1.percentil(25))
261
- v2 = (1..99).to_a.to_scale
261
+ v2 = (1..99).to_a.to_numeric
262
262
  assert_equal(50, v2.median)
263
263
  assert_equal(25, v2.percentil(25))
264
- v3 = (1..50).to_a.to_scale
264
+ v3 = (1..50).to_a.to_numeric
265
265
  assert_equal(25.5, v3.median)
266
266
  assert_equal(13, v3.percentil(25))
267
267
  end
@@ -336,7 +336,7 @@ class StatsampleDatasetTestCase < Minitest::Test
336
336
 
337
337
  assert_equal(ds1.fields, ds2.fields)
338
338
  assert_not_same(ds1.fields, ds2.fields)
339
- ds1['v1'].type = :scale
339
+ ds1['v1'].type = :numeric
340
340
  # dup partial
341
341
  ds3 = ds1.dup('v1')
342
342
  ds_exp = Statsample::Dataset.new({ 'v1' => v1 }, %w(v1))
@@ -355,7 +355,7 @@ class StatsampleDatasetTestCase < Minitest::Test
355
355
  assert_not_equal(ds1['v1'], ds3['v1'])
356
356
  assert_equal([], ds3['v1'].data)
357
357
  assert_equal([], ds3['v2'].data)
358
- assert_equal(:scale, ds3['v1'].type)
358
+ assert_equal(:numeric, ds3['v1'].type)
359
359
  assert_equal(ds1.fields, ds2.fields)
360
360
  assert_not_same(ds1.fields, ds2.fields)
361
361
  end
@@ -368,9 +368,9 @@ class StatsampleDatasetTestCase < Minitest::Test
368
368
  end
369
369
 
370
370
  def test_each_array_with_nils
371
- v1 = [1, -99, 3, 4, 'na'].to_vector(:scale, missing_values: [-99, 'na'])
372
- v2 = [5, 6, -99, 8, 20].to_vector(:scale, missing_values: [-99])
373
- v3 = [9, 10, 11, 12, 20].to_vector(:scale, missing_values: [-99])
371
+ v1 = [1, -99, 3, 4, 'na'].to_vector(:numeric, missing_values: [-99, 'na'])
372
+ v2 = [5, 6, -99, 8, 20].to_vector(:numeric, missing_values: [-99])
373
+ v3 = [9, 10, 11, 12, 20].to_vector(:numeric, missing_values: [-99])
374
374
  ds1 = Statsample::Dataset.new('v1' => v1, 'v2' => v2, 'v3' => v3)
375
375
  ds2 = ds1.dup_empty
376
376
  ds1.each_array_with_nils {|row|
@@ -382,40 +382,40 @@ class StatsampleDatasetTestCase < Minitest::Test
382
382
  end
383
383
 
384
384
  def test_dup_only_valid
385
- v1 = [1, nil, 3, 4].to_vector(:scale)
386
- v2 = [5, 6, nil, 8].to_vector(:scale)
387
- v3 = [9, 10, 11, 12].to_vector(:scale)
385
+ v1 = [1, nil, 3, 4].to_vector(:numeric)
386
+ v2 = [5, 6, nil, 8].to_vector(:numeric)
387
+ v3 = [9, 10, 11, 12].to_vector(:numeric)
388
388
  ds1 = Statsample::Dataset.new('v1' => v1, 'v2' => v2, 'v3' => v3)
389
389
  ds2 = ds1.dup_only_valid
390
- expected = Statsample::Dataset.new('v1' => [1, 4].to_vector(:scale), 'v2' => [5, 8].to_vector(:scale), 'v3' => [9, 12].to_vector(:scale))
390
+ expected = Statsample::Dataset.new('v1' => [1, 4].to_vector(:numeric), 'v2' => [5, 8].to_vector(:numeric), 'v3' => [9, 12].to_vector(:numeric))
391
391
  assert_equal(expected, ds2)
392
392
  assert_equal(expected.vectors.values, Statsample.only_valid(v1, v2, v3))
393
- expected_partial = Statsample::Dataset.new('v1' => [1, 3, 4].to_vector(:scale), 'v3' => [9, 11, 12].to_vector(:scale))
393
+ expected_partial = Statsample::Dataset.new('v1' => [1, 3, 4].to_vector(:numeric), 'v3' => [9, 11, 12].to_vector(:numeric))
394
394
  assert_equal(expected_partial, ds1.dup_only_valid(%w(v1 v3)))
395
395
  end
396
396
 
397
397
  def test_filter
398
- @ds['age'].type = :scale
398
+ @ds['age'].type = :numeric
399
399
  filtered = @ds.filter { |c| c['id'] == 2 or c['id'] == 4 }
400
- expected = Statsample::Dataset.new({ 'id' => Statsample::Vector.new([2, 4]), 'name' => Statsample::Vector.new(%w(Claude Franz)), 'age' => Statsample::Vector.new([23, 27], :scale),
400
+ expected = Statsample::Dataset.new({ 'id' => Statsample::Vector.new([2, 4]), 'name' => Statsample::Vector.new(%w(Claude Franz)), 'age' => Statsample::Vector.new([23, 27], :numeric),
401
401
  'city' => Statsample::Vector.new(%w(London Paris)),
402
402
  'a1' => Statsample::Vector.new(['b,c', nil]) }, %w(id name age city a1))
403
403
  assert_equal(expected, filtered)
404
404
  end
405
405
 
406
406
  def test_filter_field
407
- @ds['age'].type = :scale
407
+ @ds['age'].type = :numeric
408
408
  filtered = @ds.filter_field('id') { |c| c['id'] == 2 or c['id'] == 4 }
409
409
  expected = [2, 4].to_vector
410
410
  assert_equal(expected, filtered)
411
411
  end
412
412
 
413
413
  def test_verify
414
- name = %w(r1 r2 r3 r4).to_vector(:nominal)
415
- v1 = [1, 2, 3, 4].to_vector(:scale)
416
- v2 = [4, 3, 2, 1].to_vector(:scale)
417
- v3 = [10, 20, 30, 40].to_vector(:scale)
418
- v4 = %w(a b a b).to_vector(:nominal)
414
+ name = %w(r1 r2 r3 r4).to_vector(:object)
415
+ v1 = [1, 2, 3, 4].to_vector(:numeric)
416
+ v2 = [4, 3, 2, 1].to_vector(:numeric)
417
+ v3 = [10, 20, 30, 40].to_vector(:numeric)
418
+ v4 = %w(a b a b).to_vector(:object)
419
419
  ds = { 'v1' => v1, 'v2' => v2, 'v3' => v3, 'v4' => v4, 'id' => name }.to_dataset
420
420
  ds.fields = %w(v1 v2 v3 v4 id)
421
421
  # Correct
@@ -432,14 +432,14 @@ class StatsampleDatasetTestCase < Minitest::Test
432
432
  end
433
433
 
434
434
  def test_compute_operation
435
- v1 = [1, 2, 3, 4].to_vector(:scale)
436
- v2 = [4, 3, 2, 1].to_vector(:scale)
437
- v3 = [10, 20, 30, 40].to_vector(:scale)
438
- vscale = [1.quo(2), 1, 3.quo(2), 2].to_vector(:scale)
439
- vsum = [1 + 4 + 10.0, 2 + 3 + 20.0, 3 + 2 + 30.0, 4 + 1 + 40.0].to_vector(:scale)
440
- vmult = [1 * 4, 2 * 3, 3 * 2, 4 * 1].to_vector(:scale)
435
+ v1 = [1, 2, 3, 4].to_vector(:numeric)
436
+ v2 = [4, 3, 2, 1].to_vector(:numeric)
437
+ v3 = [10, 20, 30, 40].to_vector(:numeric)
438
+ vnumeric = [1.quo(2), 1, 3.quo(2), 2].to_vector(:numeric)
439
+ vsum = [1 + 4 + 10.0, 2 + 3 + 20.0, 3 + 2 + 30.0, 4 + 1 + 40.0].to_vector(:numeric)
440
+ vmult = [1 * 4, 2 * 3, 3 * 2, 4 * 1].to_vector(:numeric)
441
441
  ds = { 'v1' => v1, 'v2' => v2, 'v3' => v3 }.to_dataset
442
- assert_equal(vscale, ds.compute('v1/2'))
442
+ assert_equal(vnumeric, ds.compute('v1/2'))
443
443
  assert_equal(vsum, ds.compute('v1+v2+v3'))
444
444
  assert_equal(vmult, ds.compute('v1*v2'))
445
445
  end
@@ -447,15 +447,15 @@ class StatsampleDatasetTestCase < Minitest::Test
447
447
  def test_crosstab_with_asignation
448
448
  v1 = %w(a a a b b b c c c).to_vector
449
449
  v2 = %w(a b c a b c a b c).to_vector
450
- v3 = %w(0 1 0 0 1 1 0 0 1).to_scale
450
+ v3 = %w(0 1 0 0 1 1 0 0 1).to_numeric
451
451
  ds = Statsample::Dataset.crosstab_by_asignation(v1, v2, v3)
452
- assert_equal(:nominal, ds['_id'].type)
453
- assert_equal(:scale, ds['a'].type)
454
- assert_equal(:scale, ds['b'].type)
452
+ assert_equal(:object, ds['_id'].type)
453
+ assert_equal(:numeric, ds['a'].type)
454
+ assert_equal(:numeric, ds['b'].type)
455
455
  ev_id = %w(a b c).to_vector
456
- ev_a = %w(0 0 0).to_scale
457
- ev_b = %w(1 1 0).to_scale
458
- ev_c = %w(0 1 1).to_scale
456
+ ev_a = %w(0 0 0).to_numeric
457
+ ev_b = %w(1 1 0).to_numeric
458
+ ev_c = %w(0 1 1).to_numeric
459
459
  ds2 = { '_id' => ev_id, 'a' => ev_a, 'b' => ev_b, 'c' => ev_c }.to_dataset
460
460
  assert_equal(ds, ds2)
461
461
  end
@@ -472,7 +472,7 @@ class StatsampleDatasetTestCase < Minitest::Test
472
472
  ids = %w(1 1 2 2 2).to_vector
473
473
  colors = %w(red blue green orange white).to_vector
474
474
  values = [10, 20, 15, 30, 20].to_vector
475
- col_ids = [1, 2, 1, 2, 3].to_scale
475
+ col_ids = [1, 2, 1, 2, 3].to_numeric
476
476
  ds_expected = { 'id' => ids, '_col_id' => col_ids, 'color' => colors, 'value' => values }.to_dataset(%w(id _col_id color value))
477
477
  assert_equal(ds_expected, ds.one_to_many(%w(id), 'car_%v%n'))
478
478
  end