Hi,
i'm new to ruby.
How could i read a tab-delimted textfile with two columns + header
row
and count the distinct values from the 2.column?
## my first experiments missed because i have to elimnate the header
row!?#######
filename = gets.chomp
text = String.new
File.open(filename) { |f| text = f.read }
values = text.split(/\t/)
freqs = Hash.new(0)
values.each { |values| freqs[values] += 1 }
freqs = freqs.sort_by {|x,y| y }
freqs.each {|values, freq| puts values+' '+freq.to_s}
Many thanks for a starting point.
regards, christian
Consider using either the built in CSV parser in Ruby stdlib or
FasterCSV ( http://fastercsv.rubyforge.org/ ). It'll save you time in
the long run.
V/r
Anthony Eden
···
On 3/23/07, Christian <ozric@web.de> wrote:
Hi,
i'm new to ruby.
How could i read a tab-delimted textfile with two columns + header
row
and count the distinct values from the 2.column?
## my first experiments missed because i have to elimnate the header
row!?#######
filename = gets.chomp
text = String.new
File.open(filename) { |f| text = f.read }
values = text.split(/\t/)
freqs = Hash.new(0)
values.each { |values| freqs[values] += 1 }
freqs = freqs.sort_by {|x,y| y }
freqs.each {|values, freq| puts values+' '+freq.to_s}
Many thanks for a starting point.
regards, christian
--
Cell: 808 782-5046
Current Location: Melbourne, FL
Christian Schulz wrote:
Hi,
i'm new to ruby.
How could i read a tab-delimted textfile with two columns + header
row
and count the distinct values from the 2.column?
Christian -
Strangely enough, I wrote a blog post about this very topic:
Here's the code linked to by the blog post:
require 'faster_csv'
unique_count = {}
FCSV.foreach("myfile.csv", :headers => true) do |row|
unique_count[row[1]] ||= 0
unique_count[row[1]] += 1
end
unique_count.each do |val,count|
puts "#{val} appreas #{count} time(s)"
end
···
--
Posted via http://www.ruby-forum.com/\.
many thanks , ruby is really great and i have to learn think "easy"!
christian
···
On 23 Mrz., 15:04, Drew Olson <olso...@gmail.com> wrote:
Christian Schulz wrote:
> Hi,
> i'm new to ruby.
> How could i read a tab-delimted textfile with two columns + header
> row
> and count the distinct values from the 2.column?
Christian -
Strangely enough, I wrote a blog post about this very topic:
CSV Manipulation w/ Ruby | collect{thoughts}
Here's the code linked to by the blog post:
require 'faster_csv'
unique_count = {}
FCSV.foreach("myfile.csv", :headers => true) do |row|
unique_count[row[1]] ||= 0
unique_count[row[1]] += 1
end
unique_count.each do |val,count|
puts "#{val} appreas #{count} time(s)"
end
--
Posted viahttp://www.ruby-forum.com/.