2013-03-02 66 views
0

我有了三種類型信息的CSV: 用戶ID,的wordID,CT紅寶石:在使用過濾文本文件(條件打印)

(基本上,14K不同tweeps,不同的線路對他們使用的每個字,包括該字的計數)

我希望能夠過濾此文件僅用於具有至少2000個不同wordID的用戶標識。

我理解如何瀏覽文件並計算每個用戶ID的wordID,但我不知道如何將這與「現在把'userID,wordID,ct'僅用於真正頻繁的用戶ID」。

任何幫助,非常感謝。

回答

0

以下是我當前如何處理文件。我懷疑有更有效的方法來做到這一點,因爲該文件本身是19萬行 - 對效率的想法當然值得讚賞。

filename = ARGV[0] 

file = File.new(filename, "r") 

entry = {} 

file.each do |line| 
     user, word, ct = line.chomp.split(",") 
     entry[user] = entry[user].to_i + 1 
end 

file = File.new(filename, "r") 

file.each do |line| 
line.strip! 
     user, word, ct = line.chomp.split(",") 
     if entry[user] >= 2000 
       puts line 
     end 
end