我试图使用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