2012-09-28 141 views
2

我開始與CSV文件,這是我讀入CSV ::表,104列,並希望對其進行過濾減少到3:紅寶石陣列和地圖方法

filtered_data = csv.map { |row| row.fields(:x,:y:,:z) } 

然後我想將x從時代轉換爲常規GMT。我這樣做是使用:

filtered_data.each do |thing| 
    thing[0] = Time.at(thing[0]).to_datetime 
end 

由此產生:

[[converted_x, y,z],[converted_x, y, z]] 

是否有這樣做使用地圖功能的另一種方法或者這是首選的解決方案?


使用傑里米的答案,我現在有:

filtered_data.map { |x,y,z| [Time.at(x).to_datetime,y,z] } 

,然後用拒絕進一步過濾:

filtered_data.reject { |x,y,z| [x,y, z == '\\ '] } 

回答

2
filtered_data.map do |x, y, z| 
    [Time.at(x).to_datetime, y, z] 
end