0

これまでのところ、ファイル全体を配列にロードしました (配列要素ごとに 1 行)。次に、必要な正しい行を検索する方法を学びました。データを使用できるように、これらの行を分割する必要があります。

1 つの配列要素 (ファイルから 1 行): data,data,data,data,data

最初のデータ列はテキストで、残りは数値です。ここから、このデータを何かに分割して、これらの列の 1 つだけ、またはプラス 2 で計算できるようにするにはどうすればよいでしょうか?

二次的なメモとして。何千行もあるファイルがあります。しかし、一度に 20 個の要素を選択しています。したがって、隣り合う 20 個の要素に対してこれを行う必要があります。したがって、配列[56]、57、58など。

したがって、行 1 列 2 - 行 3 列 4 で計算を行うことができます。(これがExcelで設定されている場合、このようになります-しかし、要点はわかります-ただし、個々のデータに到達する方法を知っている限り、どのように設定してもかまいません)

前もって感謝します。

4

2 に答える 2

1

あなたが説明したファイル構造は、csvファイルに似ています。ruby で csv ファイルを解析するには、ruby の std ライブラリの一部である驚きの ... CSV ライブラリを使用できます。

require 'CSV'
data = CSV.read(path_to_your_csv_file)

これで、データがロードされました。使用できるたびに大きなブロックを反復するにはeach_cons

data.each_cons(20) do |rows| 
  #do something
end
于 2012-08-14T13:31:33.153 に答える
1

String::splitを使用できます。

"1,2,3,4,a,b,c,d".split(',')         #=> ["1", "2", "3", "4", "a", "b", "c", "d"]

次のように、必要に応じて配列要素を整数または浮動小数点数に変換できます。

str = "1,2,3,4,a,b,c,d"
arr = str.split(",")

i = arr[0].to_i
f = arr[1].to_f

さらに、CSV ファイルを扱っている場合は、Ruby の CSV ライブラリ の使用を検討してください。

于 2012-08-14T13:29:50.423 に答える