Class: Statsample::CSV
- Inherits:
-
SpreadsheetBase
- Object
- SpreadsheetBase
- Statsample::CSV
- Defined in:
- lib/statsample/converter/csv.rb
Constant Summary collapse
- CSV_klass =
::CSV
Class Method Summary collapse
-
.read(filename, empty = [''], ignore_lines = 0, fs = nil, rs = nil) ⇒ Object
Returns a Dataset based on a csv file.
-
.write(dataset, filename, convert_comma = false, *opts) ⇒ Object
Save a Dataset on a csv file.
Methods inherited from SpreadsheetBase
convert_to_scale_and_date, extract_fields, process_row
Class Method Details
.read(filename, empty = [''], ignore_lines = 0, fs = nil, rs = nil) ⇒ Object
Returns a Dataset based on a csv file
USE:
ds=Statsample::CSV.read("test_csv.csv")
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/statsample/converter/csv.rb', line 17 def read(filename, empty=[''],ignore_lines=0,fs=nil,rs=nil) first_row=true fields=[] fields_data={} ds=nil line_number=0 opts={} opts[:col_sep]=fs unless fs.nil? opts[:row_sep]=rs unless rs.nil? csv=CSV_klass.open(filename,'r',opts) csv.each do |row| line_number+=1 if(line_number<=ignore_lines) #puts "Skip line" next end row.collect!{|c| c.to_s } if first_row fields=extract_fields(row) ds=Statsample::Dataset.new(fields) first_row=false else rowa=process_row(row,empty) ds.add_case(rowa,false) end end convert_to_scale_and_date(ds,fields) ds.update_valid_data ds end |
.write(dataset, filename, convert_comma = false, *opts) ⇒ Object
Save a Dataset on a csv file
USE:
Statsample::CSV.write(ds,"test_csv.csv")
51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/statsample/converter/csv.rb', line 51 def write(dataset,filename, convert_comma=false,*opts) writer=CSV_klass.open(filename,'w',*opts) writer << dataset.fields dataset.each_array do|row| if(convert_comma) row.collect!{|v| v.to_s.gsub(".",",")} end writer << row end writer.close end |