我从一个 CSV 文件开始,将其读入 CSV::Table,有 104 列,并希望将其过滤为三列:
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]]
是否有其他方法可以使用 map 函数来执行此操作,或者这是首选解决方案?
使用杰里米的答案,我现在有:
filtered_data.map { |x,y,z| [Time.at(x).to_datetime,y,z] }
然后使用拒绝进一步过滤:
filtered_data.reject { |x,y,z| [x,y, z == '\\ '] }
最佳答案
filtered_data.map do |x, y, z|
[Time.at(x).to_datetime, y, z]
end
关于Ruby 数组数组和 map 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12642133/