我試圖使用CSV三個數字輸出它的平均值來計算一個單獨的文件。特別是,打開一個文件,取第一個值(名稱),然後計算下三個值的平均值。對文件中的每個人多次執行此操作。添加元素一起
這裏是我的Book1.csv
Tom,90,80,70
Adam,80,85,83
Mike,100,93,89
Dave,100,100,100
Rob,80,70,75
Nick,80,90,70
Justin,100,90,90
Jen,80,90,100
我試圖得到它的輸出是:
Tom,80
Adam,83
Mike,94
Dave,100
Rob,75
Nick,80
Justin,93
Jen,90
我讓每個人在數組中,我能得到這個工作與我寫的基本的「僞」代碼,但它不起作用。 這裏是我到目前爲止的代碼:
#!/usr/bin/ruby
require 'csv'
names=[]
grades1=[]
grades2=[]
grades3=[]
average=[]
i = 0
CSV.foreach('Book1.csv') do |students|
names << students.values_at(0)
grades1 << reader.values_at(1)
grades2 << reader.values_at(2)
grades3 << reader.values_at(3)
end
while i<10 do
average[i]= grades1[i] + grades2[i] + grades3[i]
i= i + 1
end
CSV.open('Book2.csv', 'w') do |writer|
rows.each { |record| writer << record }
end
while循環的部分是我最關心的部分。任何見解?
CSV文件的一個示例非常重要。 – Phrogz 2012-04-12 15:22:24
這是一個很大的額外工作 - 似乎是它可以在一個單一的迴路來完成,並且沒有所有的中間陣列。 – 2012-04-12 15:23:12