(Railsの)データセットから多次元ハッシュ/配列を作成していますか...?
-
11-09-2019 - |
質問
私は何かのまわりで私の頭をラップ問題のビットを持っています。私は現在、「散布図」を収容するために、粗野のハッキングされたバージョンを使用しています。それは言った、データ構造の形で入力されます:
g.data("Person1",[12,32,34,55,23],[323,43,23,43,22])
最初の項目は、エンティティである。ここで、...、2番目の項目は、X-COORDSであり、第3項は、Y-COORDSである。
POINT、VALUE、TIMESTAMP:私は現在のカラムを持つテーブルからのアイテムのレコードを持っています。私は、単一のクエリを使用して、すべてをつかむか、あまりにも多くのDBの活動を危険にさらす必要がありますかかわる「複雑」な計算によるもの。それは私が動的データ項目を作成するためのハッシュ(または配列の配列)にレコードから全てのデータを収集する必要のある項目のリストを持っている、と述べました。私は、次のようなものを考えていた。
@h={}
e = Events.find_by_sql(my_query)
e.each do |event|
@h["#{event.Point}"][x] = event.timestamp
@h["#{event.Point}"][y] = event.value
end
もちろんそれは正しい構文ではありませんが、私の脳が起こっているところです。誰かが私のためにこれをクリーンアップするか、これを達成するためにすることによって、より適切なメカニズムを示唆してもらえますか?基本的には主な目標は、グループ化された各pointnameのためのデータを保持する(しかし、レコードはそれらすべてを持って覚えている)することです。
感謝ます。
EDIT 1
g = Gruff::Scatter.new("600x350")
g.title = self.name
e = Event.find_by_sql(@sql)
h ={}
e.each do |event|
h[event.Point.to_s] ||= {}
h[event.Point.to_s].merge!({event.Timestamp.to_i,event.Value})
end
h.each do |p|
logger.info p[1].values.inspect
g.data(p[0],p[1].keys,p[1].values)
end
g.write(@chart_file)
解決
まず最初に、簡単なo.to_sがどうなるとき、文字列の補間を使用しないでください。
@h[event.Point.to_s]
あなたのデータの構造は、説明から明らかではありません。私はあなたのイベントのコレクションを操作したい)あなたは1)2)各イベントは、時間と値3を持っているポイント名を持つイベントがあることを意味だと思います。
ハッシュは、問題の罰金選択肢です。
所属していません StackOverflow