mdarray-jcsv 0.6.3-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +23 -0
- data/README.md +2 -0
- data/Rakefile +46 -0
- data/config.rb +104 -0
- data/lib/constraints.rb +205 -0
- data/lib/date_filters.rb +252 -0
- data/lib/dimensions.rb +276 -0
- data/lib/filters.rb +332 -0
- data/lib/jcsv.rb +107 -0
- data/lib/list_reader.rb +200 -0
- data/lib/locale.rb +192 -0
- data/lib/map_reader.rb +192 -0
- data/lib/mdarray-jcsv.rb +24 -0
- data/lib/mdarray_reader.rb +110 -0
- data/lib/numeric_filters.rb +225 -0
- data/lib/reader.rb +547 -0
- data/lib/supercsv_interface.rb +231 -0
- data/test/test_complete.rb +37 -0
- data/test/test_critbit.rb +442 -0
- data/test/test_customer_list.rb +436 -0
- data/test/test_customer_map.rb +209 -0
- data/test/test_customer_nhlist.rb +161 -0
- data/test/test_deep_map.rb +264 -0
- data/test/test_del.rb +73 -0
- data/test/test_dimensions.rb +231 -0
- data/test/test_example.rb +79 -0
- data/test/test_filters.rb +374 -0
- data/test/test_list_dimensions.rb +110 -0
- data/test/test_mdarray.rb +227 -0
- data/test/test_missing_data.rb +57 -0
- data/vendor/commons-beanutils-1.8.3.jar +0 -0
- data/vendor/commons-lang3-3.1.jar +0 -0
- data/vendor/dozer-5.4.0.jar +0 -0
- data/vendor/jcl-over-slf4j-1.6.6.jar +0 -0
- data/vendor/joda-time-2.7.jar +0 -0
- data/vendor/slf4j-api-1.7.5.jar +0 -0
- data/vendor/snakeyaml-1.14.jar +0 -0
- data/vendor/super-csv-2.4.0.jar +0 -0
- data/vendor/super-csv-dozer-2.4.0.jar +0 -0
- data/vendor/super-csv-java8-2.4.0.jar +0 -0
- data/vendor/super-csv-joda-2.4.0.jar +0 -0
- data/version.rb +2 -0
- metadata +196 -0
@@ -0,0 +1,110 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
##########################################################################################
|
4
|
+
# Copyright © 2015 Rodrigo Botafogo. All Rights Reserved. Permission to use, copy, modify,
|
5
|
+
# and distribute this software and its documentation for educational, research, and
|
6
|
+
# not-for-profit purposes, without fee and without a signed licensing agreement, is hereby
|
7
|
+
# granted, provided that the above copyright notice, this paragraph and the following two
|
8
|
+
# paragraphs appear in all copies, modifications, and distributions. Contact Rodrigo
|
9
|
+
# Botafogo - rodrigo.a.botafogo@gmail.com for commercial licensing opportunities.
|
10
|
+
#
|
11
|
+
# IN NO EVENT SHALL RODRIGO BOTAFOGO BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
|
12
|
+
# INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF
|
13
|
+
# THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF RODRIGO BOTAFOGO HAS BEEN ADVISED OF THE
|
14
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
15
|
+
#
|
16
|
+
# RODRIGO BOTAFOGO SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
17
|
+
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
|
18
|
+
# SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS IS".
|
19
|
+
# RODRIGO BOTAFOGO HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
|
20
|
+
# OR MODIFICATIONS.
|
21
|
+
##########################################################################################
|
22
|
+
|
23
|
+
require 'test/unit'
|
24
|
+
require 'shoulda'
|
25
|
+
|
26
|
+
require_relative '../config'
|
27
|
+
|
28
|
+
require 'jcsv'
|
29
|
+
|
30
|
+
class CSVTest < Test::Unit::TestCase
|
31
|
+
|
32
|
+
context "CSV test" do
|
33
|
+
|
34
|
+
setup do
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
#-------------------------------------------------------------------------------------
|
39
|
+
# Read data into a list.
|
40
|
+
#-------------------------------------------------------------------------------------
|
41
|
+
|
42
|
+
should "read panel data into a list" do
|
43
|
+
|
44
|
+
reader = Jcsv.reader("../data/epilepsy.csv",
|
45
|
+
dimensions: [:treatment, :subject, :period],
|
46
|
+
default_filter: Jcsv.int)
|
47
|
+
|
48
|
+
# remove the :patient field from the data, as this field is already given by the
|
49
|
+
# :subject field.
|
50
|
+
reader.mapping = {:patient => false}
|
51
|
+
|
52
|
+
# read all the data into a flat map (hash) with keys the dimensions values
|
53
|
+
# concatenated with '.'.
|
54
|
+
treatment = reader.read
|
55
|
+
# p treatment
|
56
|
+
|
57
|
+
assert_equal(["placebo", "1", "1"], treatment[0][0])
|
58
|
+
assert_equal([1, 11, 31, 5], treatment[0][1..-1])
|
59
|
+
assert_equal(["placebo", "2", "2"], treatment[5][0])
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
#-------------------------------------------------------------------------------------
|
64
|
+
# Read data into a list with chunk_size
|
65
|
+
#-------------------------------------------------------------------------------------
|
66
|
+
|
67
|
+
should "read panel data into a list with chunk size" do
|
68
|
+
|
69
|
+
# deep_map is ignored if reading into a list
|
70
|
+
reader = Jcsv.reader("../data/epilepsy.csv", chunk_size: 20, deep_map: true,
|
71
|
+
dimensions: [:treatment, :subject, :period],
|
72
|
+
default_filter: Jcsv.int)
|
73
|
+
|
74
|
+
# remove the :patient field from the data, as this field is already given by the
|
75
|
+
# :subject field.
|
76
|
+
reader.mapping = {:patient => false}
|
77
|
+
|
78
|
+
# read all the data into a flat map (hash) with keys the dimensions values
|
79
|
+
# concatenated with '.'.
|
80
|
+
treatment = reader.read
|
81
|
+
# p treatment[0]
|
82
|
+
# p treatment[10]
|
83
|
+
|
84
|
+
assert_equal(["placebo", "1", "1"], treatment[0][0][0])
|
85
|
+
assert_equal(["placebo", "2", "2"], treatment[0][5][0])
|
86
|
+
assert_equal(["placebo", "16", "1"], treatment[3][0][0])
|
87
|
+
assert_equal(["Progabide", "52", "4"], treatment[10][7][0])
|
88
|
+
|
89
|
+
end
|
90
|
+
|
91
|
+
#-------------------------------------------------------------------------------------
|
92
|
+
# Read data into a list.
|
93
|
+
#-------------------------------------------------------------------------------------
|
94
|
+
|
95
|
+
should "read more panel data" do
|
96
|
+
|
97
|
+
reader = Jcsv.reader("../data/GoodOrder.csv", col_sep: ";",
|
98
|
+
dimensions: [:dim_1, :dim_2, :dim_3])
|
99
|
+
reader.filters = {
|
100
|
+
:data => Jcsv.int,
|
101
|
+
}
|
102
|
+
|
103
|
+
table = reader.read
|
104
|
+
# p table
|
105
|
+
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
@@ -0,0 +1,227 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
##########################################################################################
|
4
|
+
# Copyright © 2015 Rodrigo Botafogo. All Rights Reserved. Permission to use, copy, modify,
|
5
|
+
# and distribute this software and its documentation for educational, research, and
|
6
|
+
# not-for-profit purposes, without fee and without a signed licensing agreement, is hereby
|
7
|
+
# granted, provided that the above copyright notice, this paragraph and the following two
|
8
|
+
# paragraphs appear in all copies, modifications, and distributions. Contact Rodrigo
|
9
|
+
# Botafogo - rodrigo.a.botafogo@gmail.com for commercial licensing opportunities.
|
10
|
+
#
|
11
|
+
# IN NO EVENT SHALL RODRIGO BOTAFOGO BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
|
12
|
+
# INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF
|
13
|
+
# THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF RODRIGO BOTAFOGO HAS BEEN ADVISED OF THE
|
14
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
15
|
+
#
|
16
|
+
# RODRIGO BOTAFOGO SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
17
|
+
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
|
18
|
+
# SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS IS".
|
19
|
+
# RODRIGO BOTAFOGO HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
|
20
|
+
# OR MODIFICATIONS.
|
21
|
+
##########################################################################################
|
22
|
+
|
23
|
+
require 'rubygems'
|
24
|
+
require 'test/unit'
|
25
|
+
require 'shoulda'
|
26
|
+
require 'matrix'
|
27
|
+
require 'mdarray'
|
28
|
+
|
29
|
+
require_relative '../config'
|
30
|
+
|
31
|
+
require 'mdarray-jcsv'
|
32
|
+
|
33
|
+
class CSVTest < Test::Unit::TestCase
|
34
|
+
|
35
|
+
context "CSV test" do
|
36
|
+
|
37
|
+
setup do
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
#-------------------------------------------------------------------------------------
|
42
|
+
#
|
43
|
+
#-------------------------------------------------------------------------------------
|
44
|
+
|
45
|
+
should "read data without dimensions" do
|
46
|
+
|
47
|
+
vale = Jcsv.reader("../data/VALE_2014.csv", format: :mdarray, dtype: :double)
|
48
|
+
# need to drop date, as this is not a double and we did not make it a
|
49
|
+
# dimension
|
50
|
+
vale.mapping = {:date => false}
|
51
|
+
data = vale.read
|
52
|
+
assert_equal(8.24, data[0, 0])
|
53
|
+
assert_equal(7.79, data[15, 2])
|
54
|
+
assert_equal(13.512299, data[251, 5])
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
#-------------------------------------------------------------------------------------
|
59
|
+
#
|
60
|
+
#-------------------------------------------------------------------------------------
|
61
|
+
|
62
|
+
should "read data with one dimension" do
|
63
|
+
|
64
|
+
vale = Jcsv.reader("../data/VALE_2014.csv", format: :mdarray, dtype: :double,
|
65
|
+
dimensions: [:date])
|
66
|
+
data = vale.read
|
67
|
+
assert_equal(8.24, data[0, 0])
|
68
|
+
assert_equal(7.79, data[15, 2])
|
69
|
+
assert_equal(13.512299, data[251, 5])
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
#-------------------------------------------------------------------------------------
|
75
|
+
#
|
76
|
+
#-------------------------------------------------------------------------------------
|
77
|
+
|
78
|
+
should "read balanced panel data" do
|
79
|
+
|
80
|
+
# person,year,income,age,sex
|
81
|
+
# 1,2001,1300,27,1
|
82
|
+
# 1,2002,1600,28,1
|
83
|
+
# 1,2003,2000,29,1
|
84
|
+
# 2,2001,2000,38,2
|
85
|
+
# 2,2002,2300,39,2
|
86
|
+
# 2,2003,2400,40,2
|
87
|
+
|
88
|
+
reader = Jcsv.reader("../data/balanced_panel.csv", format: :mdarray, dtype: :double,
|
89
|
+
dimensions: [:person, :year])
|
90
|
+
balanced_panel = reader.read
|
91
|
+
|
92
|
+
# method [] of reader returns the labels of the given dimension. Headers can be
|
93
|
+
# obtained by doing reader[:_data_], _data_ is the header dimension
|
94
|
+
assert_equal(["1", "2"], reader[:person])
|
95
|
+
assert_equal(["2001", "2002", "2003"], reader[:year])
|
96
|
+
assert_equal([:income, :age, :sex], reader[:_data_])
|
97
|
+
|
98
|
+
# Take a section of the MDArray. Get all data values from person 1
|
99
|
+
balanced_panel.section([0, 0, 0],
|
100
|
+
[1, reader[:year].size, reader[:_data_].size]).print
|
101
|
+
|
102
|
+
# Get the income for both persons for year 2001 and calculate their mean
|
103
|
+
puts balanced_panel.section([0, 0, 0],
|
104
|
+
[reader[:person].size, 1, 1], true).
|
105
|
+
reset_statistics.mean
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
#-------------------------------------------------------------------------------------
|
110
|
+
#
|
111
|
+
#-------------------------------------------------------------------------------------
|
112
|
+
|
113
|
+
should "read unbalanced panel data" do
|
114
|
+
|
115
|
+
# Note that in this case the data is unbalanced, i.e., there are two entries for
|
116
|
+
# person 1, 3 entries for person 2 and one entry for person 3. jCSV will
|
117
|
+
# automatically fill the missing data with NaN.
|
118
|
+
|
119
|
+
# person,year,income,age,sex
|
120
|
+
# 1,2001,1600,23,1
|
121
|
+
# 1,2002,1500,24,1
|
122
|
+
# 2,2001,1900,41,2
|
123
|
+
# 2,2002,2000,42,2
|
124
|
+
# 2,2003,2100,43,2
|
125
|
+
# 3,2002,3300,34,1
|
126
|
+
|
127
|
+
reader = Jcsv.reader("../data/unbalanced_panel.csv", format: :mdarray,
|
128
|
+
dtype: :double, dimensions: [:person, :year])
|
129
|
+
ub_panel = reader.read
|
130
|
+
|
131
|
+
assert_equal(["1", "2", "3"], reader[:person])
|
132
|
+
assert_equal(["2001", "2002", "2003"], reader[:year])
|
133
|
+
assert_equal([:income, :age, :sex], reader[:_data_])
|
134
|
+
|
135
|
+
# The following data is expected after reading the unbalanced data
|
136
|
+
|
137
|
+
# person,year,income,age,sex
|
138
|
+
# 1,2001,1600,23,1
|
139
|
+
# 1,2002,1500,24,1
|
140
|
+
# 1,2003,NaN,NaN,NaN
|
141
|
+
# 2,2001,1900,41,2
|
142
|
+
# 2,2002,2000,42,2
|
143
|
+
# 2,2003,2100,43,2
|
144
|
+
# 3,2001,NaN,NaN,NaN
|
145
|
+
# 3,2002,3300,34,1
|
146
|
+
# 3,2003,NaN,NaN,NaN
|
147
|
+
|
148
|
+
assert_equal(1600, ub_panel[0, 0, 0])
|
149
|
+
assert_equal(true, ub_panel[0, 2, 0].nan?)
|
150
|
+
assert_equal(34, ub_panel[2, 1, 1])
|
151
|
+
assert_equal(true, ub_panel[2, 2, 2].nan?)
|
152
|
+
|
153
|
+
end
|
154
|
+
|
155
|
+
|
156
|
+
#-------------------------------------------------------------------------------------
|
157
|
+
#
|
158
|
+
#-------------------------------------------------------------------------------------
|
159
|
+
|
160
|
+
should "convert to MDArray" do
|
161
|
+
|
162
|
+
# Data which show the effect of two soporific drugs (increase in hours of sleep
|
163
|
+
# compared to control) on 10 patients.
|
164
|
+
|
165
|
+
reader = Jcsv.reader("../data/sleep.csv", format: :mdarray, col_sep: ";",
|
166
|
+
comment_starts: "#", dtype: :float,
|
167
|
+
dimensions: [:group, :id])
|
168
|
+
reader.mapping = {:row => false}
|
169
|
+
ssleep = reader.read
|
170
|
+
# ssleep.print
|
171
|
+
|
172
|
+
group1 = ssleep.slice(0, 0)
|
173
|
+
group2 = ssleep.slice(0, 1)
|
174
|
+
|
175
|
+
# Print many statistics about group1. Need to call reset_statistics on group1 to
|
176
|
+
# prepare it for calculations and clear all the caches. Calculations are
|
177
|
+
# cached, for example, when the mean is calculated it will be cached. When the
|
178
|
+
# standard deviation is calculated, there is no need to calculate the mean again,
|
179
|
+
# since it has already been calculated. Thre problem with this approach is that
|
180
|
+
# if the array is changed in any way, then reset_statistics needs to be called
|
181
|
+
# again or all cached values will be returned again.
|
182
|
+
group1.reset_statistics
|
183
|
+
|
184
|
+
puts "correlation group1 vs group2: " + group1.correlation(group2).to_s
|
185
|
+
puts "auto correlation: " + group1.auto_correlation(1).to_s
|
186
|
+
puts "durbin watson: " + group1.durbin_watson.to_s
|
187
|
+
puts "geometric mean: " + group1.geometric_mean.to_s
|
188
|
+
puts "harmonic mean: " + group1.harmonic_mean.to_s
|
189
|
+
puts "kurtosis: " + group1.kurtosis.to_s
|
190
|
+
puts "lag1: " + group1.lag1.to_s
|
191
|
+
puts "max: " + group1.max.to_s
|
192
|
+
puts "mean: " + group1.mean.to_s
|
193
|
+
puts "mean deviation: " + group1.mean_deviation.to_s
|
194
|
+
puts "median: " + group1.median.to_s
|
195
|
+
puts "min: " + group1.min.to_s
|
196
|
+
puts "moment3: " + group1.moment3.to_s
|
197
|
+
puts "moment4: " + group1.moment4.to_s
|
198
|
+
puts "product: " + group1.product.to_s
|
199
|
+
puts "quantile(0.2): " + group1.quantile(0.2).to_s
|
200
|
+
puts "quantile inverse(35.0): " + group1.quantile_inverse(35.0).to_s
|
201
|
+
puts "rank interpolated(33.0): " + group1.rank_interpolated(33.0).to_s
|
202
|
+
puts "rms: " + group1.rms.to_s
|
203
|
+
puts "sample kurtosis: " + group1.sample_kurtosis.to_s
|
204
|
+
puts "sample kurtosis standard error: " + group1.sample_kurtosis_standard_error.to_s
|
205
|
+
puts "sample skew: " + group1.sample_skew.to_s
|
206
|
+
puts "sample skew standard error: " + group1.sample_skew_standard_error.to_s
|
207
|
+
puts "sample standard deviation: " + group1.sample_standard_deviation.to_s
|
208
|
+
puts "sample variance: " + group1.sample_variance.to_s
|
209
|
+
puts "skew: " + group1.skew.to_s
|
210
|
+
puts "standard deviation: " + group1.standard_deviation.to_s
|
211
|
+
puts "standard error: " + group1.standard_error.to_s
|
212
|
+
puts "sum: " + group1.sum.to_s
|
213
|
+
puts "sum of inversions: " + group1.sum_of_inversions.to_s
|
214
|
+
puts "sum of logarithms: " + group1.sum_of_logarithms.to_s
|
215
|
+
puts "sum of power deviations: " + group1.sum_of_power_deviations(2, group1.mean).to_s
|
216
|
+
puts "sum of powers(3): " + group1.sum_of_powers(3).to_s
|
217
|
+
puts "sum of squares: " + group1.sum_of_squares.to_s
|
218
|
+
puts "sum of squared deviations: " + group1.sum_of_squared_deviations.to_s
|
219
|
+
puts "trimmed_mean(2, 2): " + group1.trimmed_mean(2, 2).to_s
|
220
|
+
puts "variance: " + group1.variance.to_s
|
221
|
+
puts "winsorized mean: " + group1.winsorized_mean(1, 1).to_s
|
222
|
+
|
223
|
+
end
|
224
|
+
|
225
|
+
end
|
226
|
+
|
227
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
##########################################################################################
|
4
|
+
# Copyright © 2015 Rodrigo Botafogo. All Rights Reserved. Permission to use, copy, modify,
|
5
|
+
# and distribute this software and its documentation for educational, research, and
|
6
|
+
# not-for-profit purposes, without fee and without a signed licensing agreement, is hereby
|
7
|
+
# granted, provided that the above copyright notice, this paragraph and the following two
|
8
|
+
# paragraphs appear in all copies, modifications, and distributions. Contact Rodrigo
|
9
|
+
# Botafogo - rodrigo.a.botafogo@gmail.com for commercial licensing opportunities.
|
10
|
+
#
|
11
|
+
# IN NO EVENT SHALL RODRIGO BOTAFOGO BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
|
12
|
+
# INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF
|
13
|
+
# THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF RODRIGO BOTAFOGO HAS BEEN ADVISED OF THE
|
14
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
15
|
+
#
|
16
|
+
# RODRIGO BOTAFOGO SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
17
|
+
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
|
18
|
+
# SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS IS".
|
19
|
+
# RODRIGO BOTAFOGO HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
|
20
|
+
# OR MODIFICATIONS.
|
21
|
+
##########################################################################################
|
22
|
+
|
23
|
+
require 'rubygems'
|
24
|
+
require 'test/unit'
|
25
|
+
require 'shoulda'
|
26
|
+
require 'matrix'
|
27
|
+
|
28
|
+
require_relative '../config'
|
29
|
+
|
30
|
+
require 'jcsv'
|
31
|
+
|
32
|
+
class CSVTest < Test::Unit::TestCase
|
33
|
+
|
34
|
+
context "CSV test" do
|
35
|
+
|
36
|
+
setup do
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
#-------------------------------------------------------------------------------------
|
41
|
+
#
|
42
|
+
#-------------------------------------------------------------------------------------
|
43
|
+
|
44
|
+
should "identify missing data" do
|
45
|
+
|
46
|
+
reader = Jcsv.reader("VALE_PETRA.csv", format: :map, chunk_size: :all, col_sep: ';',
|
47
|
+
comment_starts: '#', default_filter: Jcsv.double,
|
48
|
+
dimensions: [:symbol, :date], deep: true)
|
49
|
+
|
50
|
+
ticks = reader.read[0]
|
51
|
+
# p ticks
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/version.rb
ADDED
metadata
ADDED
@@ -0,0 +1,196 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mdarray-jcsv
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.6.3
|
5
|
+
platform: java
|
6
|
+
authors:
|
7
|
+
- Rodrigo Botafogo
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-06-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - "~>"
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: '0.5'
|
19
|
+
name: mdarray
|
20
|
+
prerelease: false
|
21
|
+
type: :runtime
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.5'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.5'
|
33
|
+
name: critbit
|
34
|
+
prerelease: false
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.5'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0.1'
|
47
|
+
name: CodeWriter
|
48
|
+
prerelease: false
|
49
|
+
type: :development
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.1'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '3.5'
|
61
|
+
name: shoulda
|
62
|
+
prerelease: false
|
63
|
+
type: :development
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3.5'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0.11'
|
75
|
+
name: simplecov
|
76
|
+
prerelease: false
|
77
|
+
type: :development
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.11'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0.8'
|
89
|
+
name: yard
|
90
|
+
prerelease: false
|
91
|
+
type: :development
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.8'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '1.0'
|
103
|
+
name: kramdown
|
104
|
+
prerelease: false
|
105
|
+
type: :development
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.0'
|
111
|
+
description: "\n"
|
112
|
+
email: rodrigo.a.botafogo@gmail.com
|
113
|
+
executables: []
|
114
|
+
extensions: []
|
115
|
+
extra_rdoc_files: []
|
116
|
+
files:
|
117
|
+
- LICENSE.txt
|
118
|
+
- README.md
|
119
|
+
- Rakefile
|
120
|
+
- config.rb
|
121
|
+
- lib/constraints.rb
|
122
|
+
- lib/date_filters.rb
|
123
|
+
- lib/dimensions.rb
|
124
|
+
- lib/filters.rb
|
125
|
+
- lib/jcsv.rb
|
126
|
+
- lib/list_reader.rb
|
127
|
+
- lib/locale.rb
|
128
|
+
- lib/map_reader.rb
|
129
|
+
- lib/mdarray-jcsv.rb
|
130
|
+
- lib/mdarray_reader.rb
|
131
|
+
- lib/numeric_filters.rb
|
132
|
+
- lib/reader.rb
|
133
|
+
- lib/supercsv_interface.rb
|
134
|
+
- test/test_complete.rb
|
135
|
+
- test/test_critbit.rb
|
136
|
+
- test/test_customer_list.rb
|
137
|
+
- test/test_customer_map.rb
|
138
|
+
- test/test_customer_nhlist.rb
|
139
|
+
- test/test_deep_map.rb
|
140
|
+
- test/test_del.rb
|
141
|
+
- test/test_dimensions.rb
|
142
|
+
- test/test_example.rb
|
143
|
+
- test/test_filters.rb
|
144
|
+
- test/test_list_dimensions.rb
|
145
|
+
- test/test_mdarray.rb
|
146
|
+
- test/test_missing_data.rb
|
147
|
+
- vendor/commons-beanutils-1.8.3.jar
|
148
|
+
- vendor/commons-lang3-3.1.jar
|
149
|
+
- vendor/dozer-5.4.0.jar
|
150
|
+
- vendor/jcl-over-slf4j-1.6.6.jar
|
151
|
+
- vendor/joda-time-2.7.jar
|
152
|
+
- vendor/slf4j-api-1.7.5.jar
|
153
|
+
- vendor/snakeyaml-1.14.jar
|
154
|
+
- vendor/super-csv-2.4.0.jar
|
155
|
+
- vendor/super-csv-dozer-2.4.0.jar
|
156
|
+
- vendor/super-csv-java8-2.4.0.jar
|
157
|
+
- vendor/super-csv-joda-2.4.0.jar
|
158
|
+
- version.rb
|
159
|
+
homepage: http://github.com/rbotafogo/jCSV/wiki
|
160
|
+
licenses:
|
161
|
+
- BSD-2-Clause
|
162
|
+
metadata: {}
|
163
|
+
post_install_message:
|
164
|
+
rdoc_options: []
|
165
|
+
require_paths:
|
166
|
+
- lib
|
167
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - ">="
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '0'
|
172
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '0'
|
177
|
+
requirements: []
|
178
|
+
rubyforge_project:
|
179
|
+
rubygems_version: 2.6.6
|
180
|
+
signing_key:
|
181
|
+
specification_version: 4
|
182
|
+
summary: MDArray-jCSV (jCSV for short) is the first and only (as far as I know) multidimensional CSV reader. Multidimensional? Yes... jCSV can read multidimensional data, also known sometimes as 'panel data'. jCSV is based on Super CSV (http://super-csv.github.io/super-csv/index.html), a java CSV library. According to Super CSV web page its motivation is 'for Super CSV is to be the foremost, fastest, and most programmer-friendly, free CSV package for Java'. jCSV motivation is to bring this view to the Ruby world, and since we are in Ruby, make it even easier and more programmer-friendly.
|
183
|
+
test_files:
|
184
|
+
- test/test_complete.rb
|
185
|
+
- test/test_critbit.rb
|
186
|
+
- test/test_customer_list.rb
|
187
|
+
- test/test_customer_map.rb
|
188
|
+
- test/test_customer_nhlist.rb
|
189
|
+
- test/test_deep_map.rb
|
190
|
+
- test/test_del.rb
|
191
|
+
- test/test_dimensions.rb
|
192
|
+
- test/test_example.rb
|
193
|
+
- test/test_filters.rb
|
194
|
+
- test/test_list_dimensions.rb
|
195
|
+
- test/test_mdarray.rb
|
196
|
+
- test/test_missing_data.rb
|