1
最大數值我有一個看起來像這樣的數據文件:建立哈希散列值來確定紅寶石
FBpp0070000 acyr193594273 acyr 866
FBpp0070000 acyr193577824 acyr 536
FBpp0070000 acyr193693009 acyr 445
FBpp0070000 bomb193605819 bomb 503
FBpp0070000 bomb193676398 bomb 101
FBpp0070001 acyr193618043 acyr 316
FBpp0070001 acyr193617997 acyr 313
FBpp0070001 bomb193638865 bomb 482
FBpp0070001 locu193695159 locu 220
FBpp0070001 locu193638863 locu 220
數據文件是〜45000線長。
我的目標是有這樣的:
FBpp0070000 acyr193594273 acyr 866
FBpp0070000 bomb193605819 bomb 503
FBpp0070001 acyr193618043 acyr 316
FBpp0070001 bomb193638865 bomb 482
FBpp0070001 locu193695159 locu 220
也就是說,僅保留在第4列得分最高的線路,每個不同的值在第3列,在第1列的每個值。
此外,我看到的問題是1)多重,在第1列和第2列中重複的「鍵」)等於第4列中的「分數」我只想保留一個重複「分數」的實例。
我在過去在perl中構建了一個可以處理多個重複鍵的散列。
這是我到目前爲止的紅寶石。
hash = Hash.new{|h,k| h[k]=Hash.new(&h.default_proc) }
title = ''
File.open('test1.txt', 'r').each do |line|
line.chomp!
query, hit, taxa, score = line.split(/\s/)
hash[query][hit][taxa] = score
# end
#p "#{query}: #{taxa}: #{score}"
end
p hash
所以,我希望有人可以幫助我判斷1)如果我是,事實上,正確的要對此,和2)如果是這樣,如何提取我所需要的線。
謝謝。
DJ2,非常感謝您的幫助!我會弄清楚如何在明天排序。對此,我真的非常感激。 – user511038 2010-11-17 22:10:22